From a63f43554beee87131e7be5bc95fb7e20bfdb66c Mon Sep 17 00:00:00 2001 From: Benjamin Gilbert Date: Sun, 7 Jun 2026 20:10:11 -0500 Subject: [PATCH 1/5] news: trim Signed-off-by: Benjamin Gilbert --- _includes/news.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_includes/news.md b/_includes/news.md index 9b6e0d5..7c9ef88 100644 --- a/_includes/news.md +++ b/_includes/news.md @@ -49,6 +49,8 @@ built with Java newer than 22. [java-0.13.1]: https://github.com/openslide/openslide-java/releases/tag/v0.13.1 +{% if page.news_show_extended %} + ## OpenSlide Python version 1.4.2, 2025-04-28 [OpenSlide Python 1.4.2][python-1.4.2] drops support for Python 3.8 and adds @@ -158,8 +160,6 @@ users to easily install the latest OpenSlide and OpenSlide Python releases before they reach Ubuntu. -{% if page.news_show_extended %} - ## OpenSlide Python version 1.3.1, 2023-10-08 OpenSlide Python 1.3.1 updates the docs and example tools to transform From ff63e361295091f7744a9d8fce8a55342295ca55 Mon Sep 17 00:00:00 2001 From: Benjamin Gilbert Date: Sun, 7 Jun 2026 19:41:32 -0500 Subject: [PATCH 2/5] OpenSlide Java 0.13.3 Signed-off-by: Benjamin Gilbert --- _data/releases.yaml | 1 + _includes/news.md | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/_data/releases.yaml b/_data/releases.yaml index cb0f35a..7ef1868 100644 --- a/_data/releases.yaml +++ b/_data/releases.yaml @@ -44,6 +44,7 @@ python: - {version: 0.3.0, date: 2011-12-16, gz: 1, xz: 1} - {version: 0.2.0, date: 2011-09-02, gz: 1, xz: 1} java: + - {version: 0.13.3, date: 2026-06-07, gh: 1, jar: 1} - {version: 0.13.1, date: 2025-12-02, gh: 1, jar: 1} - {version: 0.13.0, date: 2024-05-04, gh: 1, jar: 1} - {version: 0.12.4, date: 2023-11-07, xz: 1} diff --git a/_includes/news.md b/_includes/news.md index 7c9ef88..c89358d 100644 --- a/_includes/news.md +++ b/_includes/news.md @@ -1,5 +1,13 @@ {% include links.md %} +## OpenSlide Java version 0.13.3, 2026-06-07 + +[OpenSlide Java 0.13.3][java-0.13.3] adds a constant for the +`openslide.barcode` property. + +[java-0.13.3]: https://github.com/openslide/openslide-java/releases/tag/v0.13.3 + + ## Binary build 4.0.0.13, 2026-03-18 [Binary build 4.0.0.13][bin-4.0.0.13] adds a build fix and updates glib. From 8dcb5395316c5ebb81ff4fcacd345c5d16c28edd Mon Sep 17 00:00:00 2001 From: Benjamin Gilbert Date: Sun, 7 Jun 2026 20:43:46 -0500 Subject: [PATCH 3/5] OpenSlide Python 1.4.6 Signed-off-by: Benjamin Gilbert --- _data/releases.yaml | 1 + _includes/news.md | 6 +- api/python/index.html | 137 +++++++++++---------- api/python/objects.inv | Bin 743 -> 751 bytes api/python/search.html | 10 +- api/python/searchindex.js | 2 +- api/python/sources/index.rst.txt | 58 +++++---- api/python/static/documentation_options.js | 2 +- 8 files changed, 118 insertions(+), 98 deletions(-) diff --git a/_data/releases.yaml b/_data/releases.yaml index 7ef1868..4ca101c 100644 --- a/_data/releases.yaml +++ b/_data/releases.yaml @@ -26,6 +26,7 @@ c: - {version: 2.1.0, date: 2009-08-18, gz: 1} - {version: 2.0.0, date: 2009-07-16, gz: 1} python: + - {version: 1.4.6, date: 2026-06-07, gz: 1, xz: 1, whl: 1, src_: 1} - {version: 1.4.3, date: 2025-12-03, gz: 1, xz: 1, whl: 1, src_: 1} - {version: 1.4.2, date: 2025-04-28, gz: 1, xz: 1, whl: 1, src_: 1} - {version: 1.4.1, date: 2024-10-30, gz: 1, xz: 1, whl: 1, src_: 1} diff --git a/_includes/news.md b/_includes/news.md index c89358d..b47af1f 100644 --- a/_includes/news.md +++ b/_includes/news.md @@ -1,11 +1,13 @@ {% include links.md %} -## OpenSlide Java version 0.13.3, 2026-06-07 +## OpenSlide Python 1.4.6 and OpenSlide Java 0.13.3, 2026-06-07 -[OpenSlide Java 0.13.3][java-0.13.3] adds a constant for the +[OpenSlide Python 1.4.6][python-1.4.6] and +[OpenSlide Java 0.13.3][java-0.13.3] add a constant for the `openslide.barcode` property. [java-0.13.3]: https://github.com/openslide/openslide-java/releases/tag/v0.13.3 +[python-1.4.6]: https://github.com/openslide/openslide-python/releases/tag/v1.4.6 ## Binary build 4.0.0.13, 2026-03-18 diff --git a/api/python/index.html b/api/python/index.html index f9150a1..3a75333 100644 --- a/api/python/index.html +++ b/api/python/index.html @@ -5,11 +5,11 @@ - OpenSlide Python — OpenSlide Python 1.4.3 documentation + OpenSlide Python — OpenSlide Python 1.4.6 documentation - + @@ -18,7 +18,7 @@ @@ -42,8 +42,10 @@

OpenSlide Python
  • Aperio (.svs, .tif)

  • +
  • ARGOS (.avs)

  • DICOM (.dcm)

  • Hamamatsu (.ndpi, .vms, .vmu)

  • +
  • Huron (.tif)

  • Leica (.scn)

  • MIRAX (.mrxs)

  • Philips (.tiff)

  • @@ -191,11 +193,11 @@

    Basic usageassociated_images

    Images, such as label or macro images, which are associated with this slide. This is a Mapping from image -name to RGBA Image.

    +name to RGBA Image.

    Unlike in the C interface, these images are not premultiplied.

    Type:
    -

    Mapping[str, Image]

    +

    Mapping[str, Image]

    @@ -207,15 +209,15 @@

    Basic usageNone if not available.

    Type:
    -

    ImageCmsProfile | None

    +

    ImageCmsProfile | None

    -read_region(location: tuple[int, int], level: int, size: tuple[int, int]) Image
    -

    Return an RGBA Image containing the contents of +read_region(location: tuple[int, int], level: int, size: tuple[int, int]) Image +

    Return an RGBA Image containing the contents of the specified region.

    Unlike in the C interface, the image data is not premultiplied.

    @@ -243,8 +245,8 @@

    Basic usage
    -get_thumbnail(size: tuple[int, int]) Image
    -

    Return an Image containing an RGB thumbnail of the +get_thumbnail(size: tuple[int, int]) Image +

    Return an Image containing an RGB thumbnail of the slide.

    Parameters:
    @@ -285,14 +287,14 @@

    Basic usagebytes object in -Image.info['icc_profile']. If no +Image.info['icc_profile']. If no profile is available, the icc_profile dictionary key is absent.

    To include the profile in an image file when saving the image to disk:

    image.save(filename, icc_profile=image.info.get('icc_profile'))
     

    To perform color conversions using the profile, import it into -ImageCms. For example, to synthesize an sRGB profile +ImageCms. For example, to synthesize an sRGB profile and use it to transform an image for display, with the default rendering intent of the image’s profile:

    from io import BytesIO
    @@ -310,8 +312,8 @@ 

    Basic usageOpenSlide.color_profile, already parsed into an -ImageCmsProfile object. You can save processing time -by building an ImageCmsTransform for the slide and +ImageCmsProfile object. You can save processing time +by building an ImageCmsTransform for the slide and reusing it for multiple slide regions:

    toProfile = ImageCms.createProfile('sRGB')
     intent = ImageCms.getDefaultIntent(slide.color_profile)
    @@ -348,34 +350,50 @@ 

    Caching

    The openslide module provides attributes containing the names of some commonly-used OpenSlide properties.

    -
    -openslide.PROPERTY_NAME_COMMENT
    -

    The name of the property containing a slide’s comment, if any.

    +
    +openslide.PROPERTY_NAME_BACKGROUND_COLOR
    +

    The name of the property containing a slide’s background color, if any. +It is represented as an RGB hex triplet.

    -
    -openslide.PROPERTY_NAME_VENDOR
    -

    The name of the property containing an identification of the vendor.

    +
    +openslide.PROPERTY_NAME_BARCODE
    +

    The name of the property containing a slide’s barcode, if any.

    -
    -openslide.PROPERTY_NAME_QUICKHASH1
    -

    The name of the property containing the “quickhash-1” sum.

    +
    +openslide.PROPERTY_NAME_BOUNDS_HEIGHT
    +

    The name of the property containing the height of the rectangle bounding +the non-empty region of the slide, if available.

    -
    -openslide.PROPERTY_NAME_BACKGROUND_COLOR
    -

    The name of the property containing a slide’s background color, if any. -It is represented as an RGB hex triplet.

    +
    +openslide.PROPERTY_NAME_BOUNDS_WIDTH
    +

    The name of the property containing the width of the rectangle bounding +the non-empty region of the slide, if available.

    -
    -openslide.PROPERTY_NAME_OBJECTIVE_POWER
    -

    The name of the property containing a slide’s objective power, if known.

    +
    +openslide.PROPERTY_NAME_BOUNDS_X
    +

    The name of the property containing the X coordinate of the rectangle +bounding the non-empty region of the slide, if available.

    +
    + +
    +
    +openslide.PROPERTY_NAME_BOUNDS_Y
    +

    The name of the property containing the Y coordinate of the rectangle +bounding the non-empty region of the slide, if available.

    +
    + +
    +
    +openslide.PROPERTY_NAME_COMMENT
    +

    The name of the property containing a slide’s comment, if any.

    @@ -393,31 +411,21 @@

    Caching

    -
    -openslide.PROPERTY_NAME_BOUNDS_X
    -

    The name of the property containing the X coordinate of the rectangle -bounding the non-empty region of the slide, if available.

    -
    - -
    -
    -openslide.PROPERTY_NAME_BOUNDS_Y
    -

    The name of the property containing the Y coordinate of the rectangle -bounding the non-empty region of the slide, if available.

    +
    +openslide.PROPERTY_NAME_OBJECTIVE_POWER
    +

    The name of the property containing a slide’s objective power, if known.

    -
    -openslide.PROPERTY_NAME_BOUNDS_WIDTH
    -

    The name of the property containing the width of the rectangle bounding -the non-empty region of the slide, if available.

    +
    +openslide.PROPERTY_NAME_QUICKHASH1
    +

    The name of the property containing the “quickhash-1” sum.

    -
    -openslide.PROPERTY_NAME_BOUNDS_HEIGHT
    -

    The name of the property containing the height of the rectangle bounding -the non-empty region of the slide, if available.

    +
    +openslide.PROPERTY_NAME_VENDOR
    +

    The name of the property containing an identification of the vendor.

    @@ -459,12 +467,12 @@

    Exceptions
    -class openslide.ImageSlide(file: str | bytes | PathLike[Any] | Image)
    -

    A wrapper around an Image object that provides an +class openslide.ImageSlide(file: str | bytes | PathLike[Any] | Image) +

    A wrapper around an Image object that provides an OpenSlide-compatible API.

    Parameters:
    -

    file – a filename or Image object

    +

    file – a filename or Image object

    Raises:

    OSError – if the file cannot be opened

    @@ -577,8 +585,8 @@

    Exceptions
    -get_tile(level: int, address: tuple[int, int]) Image
    -

    Return an RGB Image for a tile.

    +get_tile(level: int, address: tuple[int, int]) Image +

    Return an RGB Image for a tile.

    Parameters:
  • Standard properties
  • Exceptions
      @@ -745,13 +754,13 @@

      This Page

      \ No newline at end of file diff --git a/api/python/objects.inv b/api/python/objects.inv index b1642397fe45a3baf5922caa297644ad33c03b6b..2845345db54267c88c01dfbec5848700ae60b518 100644 GIT binary patch delta 592 zcmV-W0?Up4+rg@d6T1)K_crHL$?`#unF3eUbsaAkMCdilD1NHgTIyDAs(`d!uZfq#nJVO!b+>__;uJzZ@@@%BAmbzgBwglqX+1}rj` z-g2@8j^cle6K{%6rqLQiWpK$HXDbX1{V+P2QCVCHqf^70@7<{okt@VEWYs=CeyF)o zUBmSPXJ4;i^&*$F0iugP%_UgR)y%a1p1Z&!V~L|cFVqzVW eSTP<~-S&SZ76)@gP|i4)J5>DSI?b5QZ}fNbPS+Nw*x(H^c;m=g!8K z{7XF-e?@U5kG7re(pXIjJ3W#GC&r+gbMTTFmShdh%`-O&uU4nJNZJsRTxzVeTrmy-n^Le)SiF+DB)0A5l$CChNf8q68Z2Iag0Yyx zAK=~tOyy1(QYzj$4PMM{w&hX~#@oWR1BKiQ8xTiLe<&3PiPz{uG~5+Xpe+l6H4ut5 zteyXDlV@D!3sP*_9$9i^n!mDCYpFc~&jl#!oo#~6h1n`4wR@c3t7{&p^8nf(a63Am zWO+K7J>hY8l;XQ?a^Ih1^KlP_a;4HM>j{K)py= zwyL^EsMB+U-)_(c0h-wQ8C-q8@8i|COGmjR26rMH|cfur~z zglJ!syg@=6iQ5MC2ag8?tI29~WwFRKMYRgR|8u zSiQ+5ZGh-va|zaSH8ZU@*K-$mWGoSsXd0h&9q;FCday<(>u9HmQcSF45-Y~zs%id@ W#NuF%2+A4fa)+wMKKctjfKz6es1%3* diff --git a/api/python/search.html b/api/python/search.html index ecabaff..205b76e 100644 --- a/api/python/search.html +++ b/api/python/search.html @@ -4,12 +4,12 @@ - Search — OpenSlide Python 1.4.3 documentation + Search — OpenSlide Python 1.4.6 documentation - + @@ -24,7 +24,7 @@ @@ -75,13 +75,13 @@

      Search

      \ No newline at end of file diff --git a/api/python/searchindex.js b/api/python/searchindex.js index d3e6b68..7e7d61e 100644 --- a/api/python/searchindex.js +++ b/api/python/searchindex.js @@ -1 +1 @@ -Search.setIndex({"alltitles":{"Basic usage":[[0,"basic-usage"]],"Caching":[[0,"caching"]],"Color management":[[0,"color-management"]],"Deep Zoom support":[[0,"module-openslide.deepzoom"]],"Example programs":[[0,"example-programs"]],"Exceptions":[[0,"exceptions"]],"Installing":[[0,"installing"]],"OpenSlide Python":[[0,null]],"OpenSlide objects":[[0,"module-openslide"]],"Standard properties":[[0,"standard-properties"]],"Wrapping a Pillow Image":[[0,"wrapping-a-pillow-image"]]},"docnames":["index"],"envversion":{"sphinx":66,"sphinx.domains.c":3,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":9,"sphinx.domains.index":1,"sphinx.domains.javascript":3,"sphinx.domains.math":2,"sphinx.domains.python":4,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.intersphinx":1},"filenames":["index.rst"],"indexentries":{"abstractslide (class in openslide)":[[0,"openslide.AbstractSlide",false]],"associated_images (openslide.openslide attribute)":[[0,"openslide.OpenSlide.associated_images",false]],"close() (openslide.openslide method)":[[0,"openslide.OpenSlide.close",false]],"color_profile (openslide.openslide attribute)":[[0,"openslide.OpenSlide.color_profile",false]],"deepzoomgenerator (class in openslide.deepzoom)":[[0,"openslide.deepzoom.DeepZoomGenerator",false]],"detect_format() (openslide.openslide class method)":[[0,"openslide.OpenSlide.detect_format",false]],"dimensions (openslide.openslide attribute)":[[0,"openslide.OpenSlide.dimensions",false]],"get_best_level_for_downsample() (openslide.openslide method)":[[0,"openslide.OpenSlide.get_best_level_for_downsample",false]],"get_dzi() (openslide.deepzoom.deepzoomgenerator method)":[[0,"openslide.deepzoom.DeepZoomGenerator.get_dzi",false]],"get_thumbnail() (openslide.openslide method)":[[0,"openslide.OpenSlide.get_thumbnail",false]],"get_tile() (openslide.deepzoom.deepzoomgenerator method)":[[0,"openslide.deepzoom.DeepZoomGenerator.get_tile",false]],"get_tile_coordinates() (openslide.deepzoom.deepzoomgenerator method)":[[0,"openslide.deepzoom.DeepZoomGenerator.get_tile_coordinates",false]],"get_tile_dimensions() (openslide.deepzoom.deepzoomgenerator method)":[[0,"openslide.deepzoom.DeepZoomGenerator.get_tile_dimensions",false]],"imageslide (class in openslide)":[[0,"openslide.ImageSlide",false]],"level_count (openslide.deepzoom.deepzoomgenerator attribute)":[[0,"openslide.deepzoom.DeepZoomGenerator.level_count",false]],"level_count (openslide.openslide attribute)":[[0,"openslide.OpenSlide.level_count",false]],"level_dimensions (openslide.deepzoom.deepzoomgenerator attribute)":[[0,"openslide.deepzoom.DeepZoomGenerator.level_dimensions",false]],"level_dimensions (openslide.openslide attribute)":[[0,"openslide.OpenSlide.level_dimensions",false]],"level_downsamples (openslide.openslide attribute)":[[0,"openslide.OpenSlide.level_downsamples",false]],"level_tiles (openslide.deepzoom.deepzoomgenerator attribute)":[[0,"openslide.deepzoom.DeepZoomGenerator.level_tiles",false]],"module":[[0,"module-openslide",false],[0,"module-openslide.deepzoom",false]],"open_slide() (in module openslide)":[[0,"openslide.open_slide",false]],"openslide":[[0,"module-openslide",false]],"openslide (class in openslide)":[[0,"openslide.OpenSlide",false]],"openslide.deepzoom":[[0,"module-openslide.deepzoom",false]],"openslidecache (class in openslide)":[[0,"openslide.OpenSlideCache",false]],"openslideerror":[[0,"openslide.OpenSlideError",false]],"openslideunsupportedformaterror":[[0,"openslide.OpenSlideUnsupportedFormatError",false]],"openslideversionerror":[[0,"openslide.OpenSlideVersionError",false]],"properties (openslide.openslide attribute)":[[0,"openslide.OpenSlide.properties",false]],"property_name_background_color (in module openslide)":[[0,"openslide.PROPERTY_NAME_BACKGROUND_COLOR",false]],"property_name_bounds_height (in module openslide)":[[0,"openslide.PROPERTY_NAME_BOUNDS_HEIGHT",false]],"property_name_bounds_width (in module openslide)":[[0,"openslide.PROPERTY_NAME_BOUNDS_WIDTH",false]],"property_name_bounds_x (in module openslide)":[[0,"openslide.PROPERTY_NAME_BOUNDS_X",false]],"property_name_bounds_y (in module openslide)":[[0,"openslide.PROPERTY_NAME_BOUNDS_Y",false]],"property_name_comment (in module openslide)":[[0,"openslide.PROPERTY_NAME_COMMENT",false]],"property_name_mpp_x (in module openslide)":[[0,"openslide.PROPERTY_NAME_MPP_X",false]],"property_name_mpp_y (in module openslide)":[[0,"openslide.PROPERTY_NAME_MPP_Y",false]],"property_name_objective_power (in module openslide)":[[0,"openslide.PROPERTY_NAME_OBJECTIVE_POWER",false]],"property_name_quickhash1 (in module openslide)":[[0,"openslide.PROPERTY_NAME_QUICKHASH1",false]],"property_name_vendor (in module openslide)":[[0,"openslide.PROPERTY_NAME_VENDOR",false]],"read_region() (openslide.openslide method)":[[0,"openslide.OpenSlide.read_region",false]],"set_cache() (openslide.openslide method)":[[0,"openslide.OpenSlide.set_cache",false]],"tile_count (openslide.deepzoom.deepzoomgenerator attribute)":[[0,"openslide.deepzoom.DeepZoomGenerator.tile_count",false]]},"objects":{"":[[0,0,0,"-","openslide"]],"openslide":[[0,1,1,"","AbstractSlide"],[0,1,1,"","ImageSlide"],[0,1,1,"","OpenSlide"],[0,1,1,"","OpenSlideCache"],[0,4,1,"","OpenSlideError"],[0,4,1,"","OpenSlideUnsupportedFormatError"],[0,4,1,"","OpenSlideVersionError"],[0,5,1,"","PROPERTY_NAME_BACKGROUND_COLOR"],[0,5,1,"","PROPERTY_NAME_BOUNDS_HEIGHT"],[0,5,1,"","PROPERTY_NAME_BOUNDS_WIDTH"],[0,5,1,"","PROPERTY_NAME_BOUNDS_X"],[0,5,1,"","PROPERTY_NAME_BOUNDS_Y"],[0,5,1,"","PROPERTY_NAME_COMMENT"],[0,5,1,"","PROPERTY_NAME_MPP_X"],[0,5,1,"","PROPERTY_NAME_MPP_Y"],[0,5,1,"","PROPERTY_NAME_OBJECTIVE_POWER"],[0,5,1,"","PROPERTY_NAME_QUICKHASH1"],[0,5,1,"","PROPERTY_NAME_VENDOR"],[0,0,0,"-","deepzoom"],[0,6,1,"","open_slide"]],"openslide.OpenSlide":[[0,2,1,"","associated_images"],[0,3,1,"","close"],[0,2,1,"","color_profile"],[0,3,1,"","detect_format"],[0,2,1,"","dimensions"],[0,3,1,"","get_best_level_for_downsample"],[0,3,1,"","get_thumbnail"],[0,2,1,"","level_count"],[0,2,1,"","level_dimensions"],[0,2,1,"","level_downsamples"],[0,2,1,"","properties"],[0,3,1,"","read_region"],[0,3,1,"","set_cache"]],"openslide.deepzoom":[[0,1,1,"","DeepZoomGenerator"]],"openslide.deepzoom.DeepZoomGenerator":[[0,3,1,"","get_dzi"],[0,3,1,"","get_tile"],[0,3,1,"","get_tile_coordinates"],[0,3,1,"","get_tile_dimensions"],[0,2,1,"","level_count"],[0,2,1,"","level_dimensions"],[0,2,1,"","level_tiles"],[0,2,1,"","tile_count"]]},"objnames":{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","attribute","Python attribute"],"3":["py","method","Python method"],"4":["py","exception","Python exception"],"5":["py","data","Python data"],"6":["py","function","Python function"]},"objtypes":{"0":"py:module","1":"py:class","2":"py:attribute","3":"py:method","4":"py:exception","5":"py:data","6":"py:function"},"terms":{"A":0,"All":0,"An":0,"As":0,"By":0,"For":0,"If":0,"It":0,"Most":0,"On":0,"Or":0,"The":0,"Then":0,"These":0,"This":0,"To":0,"When":0,"You":0,"abil":0,"absent":0,"abstract":0,"abstractslid":0,"access":0,"add":0,"add_dll_directori":0,"addit":0,"address":0,"allow":0,"alreadi":0,"also":0,"amount":0,"anaconda":0,"ani":0,"aperio":0,"api":0,"applic":0,"applytransform":0,"apt":0,"argument":0,"around":0,"associ":0,"associated_imag":0,"attach":0,"attribut":0,"automat":0,"avail":0,"background":0,"base":0,"best":0,"bif":0,"bin":0,"binari":0,"bool":0,"bound":0,"browser":0,"build":0,"buildtransform":0,"byte":0,"bytesio":0,"c":0,"call":0,"can":0,"capac":0,"case":0,"class":0,"classmethod":0,"close":0,"closest":0,"color_profil":0,"column":0,"comfort":0,"comment":0,"common":0,"compat":0,"complet":0,"config":0,"conflict":0,"consid":0,"contain":0,"content":0,"context":0,"conveni":0,"convers":0,"convert":0,"coordin":0,"correspond":0,"count":0,"createprofil":0,"czi":0,"data":0,"dcm":0,"decod":0,"deepzoom":0,"deepzoom_multiserv":0,"deepzoom_serv":0,"deepzoom_til":0,"deepzoomgener":0,"default":0,"delet":0,"deliveri":0,"describ":0,"design":0,"desir":0,"detect_format":0,"dicom":0,"dictionari":0,"differ":0,"digit":0,"dimens":0,"directori":0,"disk":0,"display":0,"dnf":0,"doe":0,"download":0,"downsampl":0,"dzi":0,"easiest":0,"easili":0,"edg":0,"els":0,"embed":0,"empti":0,"entir":0,"error":0,"etc":0,"everi":0,"examin":0,"exit":0,"extra":0,"extract":0,"factor":0,"fail":0,"fals":0,"file":0,"filenam":0,"float":0,"form":0,"format":0,"former":0,"frame":0,"fromprofil":0,"function":0,"futur":0,"general":0,"generat":0,"generic":0,"get":0,"get_best_level_for_downsampl":0,"get_dzi":0,"get_thumbnail":0,"get_til":0,"get_tile_coordin":0,"get_tile_dimens":0,"getdefaultint":0,"getopenprofil":0,"gigabyt":0,"give":0,"given":0,"gnu":0,"hamamatsu":0,"hasattr":0,"height":0,"hex":0,"high":0,"highest":0,"html":0,"icc":0,"icc_profil":0,"identif":0,"imagecm":0,"imagecmsprofil":0,"imagecmstransform":0,"imageslid":0,"import":0,"includ":0,"index":0,"individu":0,"info":0,"insid":0,"instanc":0,"instead":0,"int":0,"intend":0,"intent":0,"interfac":0,"interior":0,"io":0,"jpeg":0,"k":0,"key":0,"known":0,"label":0,"latch":0,"left":0,"leica":0,"lesser":0,"level":0,"level_count":0,"level_dimens":0,"level_downsampl":0,"level_til":0,"librari":0,"licens":0,"limit_bound":0,"link":0,"linux":0,"list":0,"ll":0,"locat":0,"lowest":0,"maco":0,"macport":0,"macro":0,"map":0,"maximum":0,"may":0,"memori":0,"metadata":0,"micron":0,"mirax":0,"mix":0,"modul":0,"mrxs":0,"multi":0,"multipl":0,"must":0,"name":0,"ndpi":0,"need":0,"non":0,"none":0,"number":0,"occupi":0,"occur":0,"older":0,"onc":0,"one":0,"onli":0,"open":0,"open_slid":0,"openslide_path":0,"openslidecach":0,"openslideerror":0,"openslideunsupportedformaterror":0,"openslideversionerror":0,"oper":0,"option":0,"os":0,"oserror":0,"osr":0,"overlap":0,"packag":0,"page":0,"paramet":0,"pars":0,"particular":0,"path":0,"pathlik":0,"patholog":0,"per":0,"perform":0,"philip":0,"pil":0,"pip":0,"pixel":0,"pixels_i":0,"pixels_x":0,"plus":0,"png":0,"power":0,"premultipli":0,"privat":0,"process":0,"produc":0,"product":0,"profil":0,"profiletoprofil":0,"property_name_background_color":0,"property_name_bounds_height":0,"property_name_bounds_i":0,"property_name_bounds_width":0,"property_name_bounds_x":0,"property_name_com":0,"property_name_mpp_i":0,"property_name_mpp_x":0,"property_name_objective_pow":0,"property_name_quickhash1":0,"property_name_vendor":0,"provid":0,"public":0,"py":0,"pyramid":0,"quickhash":0,"r":0,"rais":0,"ram":0,"read":0,"read_region":0,"recent":0,"recogn":0,"rectangl":0,"refer":0,"region":0,"releas":0,"render":0,"repres":0,"request":0,"requir":0,"resolut":0,"return":0,"reus":0,"rgb":0,"rgba":0,"row":0,"s":0,"sakura":0,"save":0,"scn":0,"semant":0,"separ":0,"serv":0,"server":0,"set_cach":0,"sever":0,"similar":0,"simpl":0,"sinc":0,"singl":0,"size":0,"slide":0,"small":0,"sourc":0,"specifi":0,"srgb":0,"statement":0,"store":0,"str":0,"string":0,"subclass":0,"sum":0,"svs":0,"svslide":0,"synthes":0,"system":0,"ten":0,"term":0,"thumbnail":0,"tif":0,"tiff":0,"tile":0,"tile_count":0,"tile_s":0,"tiles_i":0,"tiles_x":0,"time":0,"tool":0,"top":0,"toprofil":0,"total":0,"transform":0,"tree":0,"trestl":0,"triplet":0,"true":0,"tupl":0,"two":0,"type":0,"typic":0,"uncompress":0,"underlying":0,"unlik":0,"upon":0,"use":0,"user":0,"valu":0,"vari":0,"vendor":0,"ventana":0,"version":0,"via":0,"view":0,"viewer":0,"vip":0,"virtual":0,"vms":0,"vmu":0,"way":0,"web":0,"whenev":0,"whole":0,"width":0,"will":0,"win64":0,"window":0,"within":0,"without":0,"wrapper":0,"x":0,"xml":0,"y":0,"zeiss":0,"zoomabl":0},"titles":["OpenSlide Python"],"titleterms":{"basic":0,"cach":0,"color":0,"deep":0,"exampl":0,"except":0,"imag":0,"instal":0,"manag":0,"object":0,"openslid":0,"pillow":0,"program":0,"properti":0,"python":0,"standard":0,"support":0,"usag":0,"wrap":0,"zoom":0}}) \ No newline at end of file +Search.setIndex({"alltitles":{"Basic usage":[[0,"basic-usage"]],"Caching":[[0,"caching"]],"Color management":[[0,"color-management"]],"Deep Zoom support":[[0,"module-openslide.deepzoom"]],"Example programs":[[0,"example-programs"]],"Exceptions":[[0,"exceptions"]],"Installing":[[0,"installing"]],"OpenSlide Python":[[0,null]],"OpenSlide objects":[[0,"module-openslide"]],"Standard properties":[[0,"standard-properties"]],"Wrapping a Pillow Image":[[0,"wrapping-a-pillow-image"]]},"docnames":["index"],"envversion":{"sphinx":66,"sphinx.domains.c":3,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":9,"sphinx.domains.index":1,"sphinx.domains.javascript":3,"sphinx.domains.math":2,"sphinx.domains.python":4,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.intersphinx":1},"filenames":["index.rst"],"indexentries":{"abstractslide (class in openslide)":[[0,"openslide.AbstractSlide",false]],"associated_images (openslide.openslide attribute)":[[0,"openslide.OpenSlide.associated_images",false]],"close() (openslide.openslide method)":[[0,"openslide.OpenSlide.close",false]],"color_profile (openslide.openslide attribute)":[[0,"openslide.OpenSlide.color_profile",false]],"deepzoomgenerator (class in openslide.deepzoom)":[[0,"openslide.deepzoom.DeepZoomGenerator",false]],"detect_format() (openslide.openslide class method)":[[0,"openslide.OpenSlide.detect_format",false]],"dimensions (openslide.openslide attribute)":[[0,"openslide.OpenSlide.dimensions",false]],"get_best_level_for_downsample() (openslide.openslide method)":[[0,"openslide.OpenSlide.get_best_level_for_downsample",false]],"get_dzi() (openslide.deepzoom.deepzoomgenerator method)":[[0,"openslide.deepzoom.DeepZoomGenerator.get_dzi",false]],"get_thumbnail() (openslide.openslide method)":[[0,"openslide.OpenSlide.get_thumbnail",false]],"get_tile() (openslide.deepzoom.deepzoomgenerator method)":[[0,"openslide.deepzoom.DeepZoomGenerator.get_tile",false]],"get_tile_coordinates() (openslide.deepzoom.deepzoomgenerator method)":[[0,"openslide.deepzoom.DeepZoomGenerator.get_tile_coordinates",false]],"get_tile_dimensions() (openslide.deepzoom.deepzoomgenerator method)":[[0,"openslide.deepzoom.DeepZoomGenerator.get_tile_dimensions",false]],"imageslide (class in openslide)":[[0,"openslide.ImageSlide",false]],"level_count (openslide.deepzoom.deepzoomgenerator attribute)":[[0,"openslide.deepzoom.DeepZoomGenerator.level_count",false]],"level_count (openslide.openslide attribute)":[[0,"openslide.OpenSlide.level_count",false]],"level_dimensions (openslide.deepzoom.deepzoomgenerator attribute)":[[0,"openslide.deepzoom.DeepZoomGenerator.level_dimensions",false]],"level_dimensions (openslide.openslide attribute)":[[0,"openslide.OpenSlide.level_dimensions",false]],"level_downsamples (openslide.openslide attribute)":[[0,"openslide.OpenSlide.level_downsamples",false]],"level_tiles (openslide.deepzoom.deepzoomgenerator attribute)":[[0,"openslide.deepzoom.DeepZoomGenerator.level_tiles",false]],"module":[[0,"module-openslide",false],[0,"module-openslide.deepzoom",false]],"open_slide() (in module openslide)":[[0,"openslide.open_slide",false]],"openslide":[[0,"module-openslide",false]],"openslide (class in openslide)":[[0,"openslide.OpenSlide",false]],"openslide.deepzoom":[[0,"module-openslide.deepzoom",false]],"openslidecache (class in openslide)":[[0,"openslide.OpenSlideCache",false]],"openslideerror":[[0,"openslide.OpenSlideError",false]],"openslideunsupportedformaterror":[[0,"openslide.OpenSlideUnsupportedFormatError",false]],"openslideversionerror":[[0,"openslide.OpenSlideVersionError",false]],"properties (openslide.openslide attribute)":[[0,"openslide.OpenSlide.properties",false]],"property_name_background_color (in module openslide)":[[0,"openslide.PROPERTY_NAME_BACKGROUND_COLOR",false]],"property_name_barcode (in module openslide)":[[0,"openslide.PROPERTY_NAME_BARCODE",false]],"property_name_bounds_height (in module openslide)":[[0,"openslide.PROPERTY_NAME_BOUNDS_HEIGHT",false]],"property_name_bounds_width (in module openslide)":[[0,"openslide.PROPERTY_NAME_BOUNDS_WIDTH",false]],"property_name_bounds_x (in module openslide)":[[0,"openslide.PROPERTY_NAME_BOUNDS_X",false]],"property_name_bounds_y (in module openslide)":[[0,"openslide.PROPERTY_NAME_BOUNDS_Y",false]],"property_name_comment (in module openslide)":[[0,"openslide.PROPERTY_NAME_COMMENT",false]],"property_name_mpp_x (in module openslide)":[[0,"openslide.PROPERTY_NAME_MPP_X",false]],"property_name_mpp_y (in module openslide)":[[0,"openslide.PROPERTY_NAME_MPP_Y",false]],"property_name_objective_power (in module openslide)":[[0,"openslide.PROPERTY_NAME_OBJECTIVE_POWER",false]],"property_name_quickhash1 (in module openslide)":[[0,"openslide.PROPERTY_NAME_QUICKHASH1",false]],"property_name_vendor (in module openslide)":[[0,"openslide.PROPERTY_NAME_VENDOR",false]],"read_region() (openslide.openslide method)":[[0,"openslide.OpenSlide.read_region",false]],"set_cache() (openslide.openslide method)":[[0,"openslide.OpenSlide.set_cache",false]],"tile_count (openslide.deepzoom.deepzoomgenerator attribute)":[[0,"openslide.deepzoom.DeepZoomGenerator.tile_count",false]]},"objects":{"":[[0,0,0,"-","openslide"]],"openslide":[[0,1,1,"","AbstractSlide"],[0,1,1,"","ImageSlide"],[0,1,1,"","OpenSlide"],[0,1,1,"","OpenSlideCache"],[0,4,1,"","OpenSlideError"],[0,4,1,"","OpenSlideUnsupportedFormatError"],[0,4,1,"","OpenSlideVersionError"],[0,5,1,"","PROPERTY_NAME_BACKGROUND_COLOR"],[0,5,1,"","PROPERTY_NAME_BARCODE"],[0,5,1,"","PROPERTY_NAME_BOUNDS_HEIGHT"],[0,5,1,"","PROPERTY_NAME_BOUNDS_WIDTH"],[0,5,1,"","PROPERTY_NAME_BOUNDS_X"],[0,5,1,"","PROPERTY_NAME_BOUNDS_Y"],[0,5,1,"","PROPERTY_NAME_COMMENT"],[0,5,1,"","PROPERTY_NAME_MPP_X"],[0,5,1,"","PROPERTY_NAME_MPP_Y"],[0,5,1,"","PROPERTY_NAME_OBJECTIVE_POWER"],[0,5,1,"","PROPERTY_NAME_QUICKHASH1"],[0,5,1,"","PROPERTY_NAME_VENDOR"],[0,0,0,"-","deepzoom"],[0,6,1,"","open_slide"]],"openslide.OpenSlide":[[0,2,1,"","associated_images"],[0,3,1,"","close"],[0,2,1,"","color_profile"],[0,3,1,"","detect_format"],[0,2,1,"","dimensions"],[0,3,1,"","get_best_level_for_downsample"],[0,3,1,"","get_thumbnail"],[0,2,1,"","level_count"],[0,2,1,"","level_dimensions"],[0,2,1,"","level_downsamples"],[0,2,1,"","properties"],[0,3,1,"","read_region"],[0,3,1,"","set_cache"]],"openslide.deepzoom":[[0,1,1,"","DeepZoomGenerator"]],"openslide.deepzoom.DeepZoomGenerator":[[0,3,1,"","get_dzi"],[0,3,1,"","get_tile"],[0,3,1,"","get_tile_coordinates"],[0,3,1,"","get_tile_dimensions"],[0,2,1,"","level_count"],[0,2,1,"","level_dimensions"],[0,2,1,"","level_tiles"],[0,2,1,"","tile_count"]]},"objnames":{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","attribute","Python attribute"],"3":["py","method","Python method"],"4":["py","exception","Python exception"],"5":["py","data","Python data"],"6":["py","function","Python function"]},"objtypes":{"0":"py:module","1":"py:class","2":"py:attribute","3":"py:method","4":"py:exception","5":"py:data","6":"py:function"},"terms":{"A":0,"All":0,"An":0,"As":0,"By":0,"For":0,"If":0,"It":0,"Most":0,"On":0,"Or":0,"The":0,"Then":0,"These":0,"This":0,"To":0,"When":0,"You":0,"abil":0,"absent":0,"abstract":0,"abstractslid":0,"access":0,"add":0,"add_dll_directori":0,"addit":0,"address":0,"allow":0,"alreadi":0,"also":0,"amount":0,"anaconda":0,"ani":0,"aperio":0,"api":0,"applic":0,"applytransform":0,"apt":0,"argo":0,"argument":0,"around":0,"associ":0,"associated_imag":0,"attach":0,"attribut":0,"automat":0,"av":0,"avail":0,"background":0,"barcod":0,"base":0,"best":0,"bif":0,"bin":0,"binari":0,"bool":0,"bound":0,"browser":0,"build":0,"buildtransform":0,"byte":0,"bytesio":0,"c":0,"call":0,"can":0,"capac":0,"case":0,"class":0,"classmethod":0,"close":0,"closest":0,"color_profil":0,"column":0,"comfort":0,"comment":0,"common":0,"compat":0,"complet":0,"config":0,"conflict":0,"consid":0,"contain":0,"content":0,"context":0,"conveni":0,"convers":0,"convert":0,"coordin":0,"correspond":0,"count":0,"createprofil":0,"czi":0,"data":0,"dcm":0,"decod":0,"deepzoom":0,"deepzoom_multiserv":0,"deepzoom_serv":0,"deepzoom_til":0,"deepzoomgener":0,"default":0,"delet":0,"deliveri":0,"describ":0,"design":0,"desir":0,"detect_format":0,"dicom":0,"dictionari":0,"differ":0,"digit":0,"dimens":0,"directori":0,"disk":0,"display":0,"dnf":0,"doe":0,"download":0,"downsampl":0,"dzi":0,"easiest":0,"easili":0,"edg":0,"els":0,"embed":0,"empti":0,"entir":0,"error":0,"etc":0,"everi":0,"examin":0,"exit":0,"extra":0,"extract":0,"factor":0,"fail":0,"fals":0,"file":0,"filenam":0,"float":0,"form":0,"format":0,"former":0,"frame":0,"fromprofil":0,"function":0,"futur":0,"general":0,"generat":0,"generic":0,"get":0,"get_best_level_for_downsampl":0,"get_dzi":0,"get_thumbnail":0,"get_til":0,"get_tile_coordin":0,"get_tile_dimens":0,"getdefaultint":0,"getopenprofil":0,"gigabyt":0,"give":0,"given":0,"gnu":0,"hamamatsu":0,"hasattr":0,"height":0,"hex":0,"high":0,"highest":0,"html":0,"huron":0,"icc":0,"icc_profil":0,"identif":0,"imagecm":0,"imagecmsprofil":0,"imagecmstransform":0,"imageslid":0,"import":0,"includ":0,"index":0,"individu":0,"info":0,"insid":0,"instanc":0,"instead":0,"int":0,"intend":0,"intent":0,"interfac":0,"interior":0,"io":0,"jpeg":0,"k":0,"key":0,"known":0,"label":0,"latch":0,"left":0,"leica":0,"lesser":0,"level":0,"level_count":0,"level_dimens":0,"level_downsampl":0,"level_til":0,"librari":0,"licens":0,"limit_bound":0,"link":0,"linux":0,"list":0,"ll":0,"locat":0,"lowest":0,"maco":0,"macport":0,"macro":0,"map":0,"maximum":0,"may":0,"memori":0,"metadata":0,"micron":0,"mirax":0,"mix":0,"modul":0,"mrxs":0,"multi":0,"multipl":0,"must":0,"name":0,"ndpi":0,"need":0,"non":0,"none":0,"number":0,"occupi":0,"occur":0,"older":0,"onc":0,"one":0,"onli":0,"open":0,"open_slid":0,"openslide_path":0,"openslidecach":0,"openslideerror":0,"openslideunsupportedformaterror":0,"openslideversionerror":0,"oper":0,"option":0,"os":0,"oserror":0,"osr":0,"overlap":0,"packag":0,"page":0,"paramet":0,"pars":0,"particular":0,"path":0,"pathlik":0,"patholog":0,"per":0,"perform":0,"philip":0,"pil":0,"pip":0,"pixel":0,"pixels_i":0,"pixels_x":0,"plus":0,"png":0,"power":0,"premultipli":0,"privat":0,"process":0,"produc":0,"product":0,"profil":0,"profiletoprofil":0,"property_name_background_color":0,"property_name_barcod":0,"property_name_bounds_height":0,"property_name_bounds_i":0,"property_name_bounds_width":0,"property_name_bounds_x":0,"property_name_com":0,"property_name_mpp_i":0,"property_name_mpp_x":0,"property_name_objective_pow":0,"property_name_quickhash1":0,"property_name_vendor":0,"provid":0,"public":0,"py":0,"pyramid":0,"quickhash":0,"r":0,"rais":0,"ram":0,"read":0,"read_region":0,"recent":0,"recogn":0,"rectangl":0,"refer":0,"region":0,"releas":0,"render":0,"repres":0,"request":0,"requir":0,"resolut":0,"return":0,"reus":0,"rgb":0,"rgba":0,"row":0,"s":0,"sakura":0,"save":0,"scn":0,"semant":0,"separ":0,"serv":0,"server":0,"set_cach":0,"sever":0,"similar":0,"simpl":0,"sinc":0,"singl":0,"size":0,"slide":0,"small":0,"sourc":0,"specifi":0,"srgb":0,"statement":0,"store":0,"str":0,"string":0,"subclass":0,"sum":0,"svs":0,"svslide":0,"synthes":0,"system":0,"ten":0,"term":0,"thumbnail":0,"tif":0,"tiff":0,"tile":0,"tile_count":0,"tile_s":0,"tiles_i":0,"tiles_x":0,"time":0,"tool":0,"top":0,"toprofil":0,"total":0,"transform":0,"tree":0,"trestl":0,"triplet":0,"true":0,"tupl":0,"two":0,"type":0,"typic":0,"uncompress":0,"underlying":0,"unlik":0,"upon":0,"use":0,"user":0,"valu":0,"vari":0,"vendor":0,"ventana":0,"version":0,"via":0,"view":0,"viewer":0,"vip":0,"virtual":0,"vms":0,"vmu":0,"way":0,"web":0,"whenev":0,"whole":0,"width":0,"will":0,"win64":0,"window":0,"within":0,"without":0,"wrapper":0,"x":0,"xml":0,"y":0,"zeiss":0,"zoomabl":0},"titles":["OpenSlide Python"],"titleterms":{"basic":0,"cach":0,"color":0,"deep":0,"exampl":0,"except":0,"imag":0,"instal":0,"manag":0,"object":0,"openslid":0,"pillow":0,"program":0,"properti":0,"python":0,"standard":0,"support":0,"usag":0,"wrap":0,"zoom":0}}) \ No newline at end of file diff --git a/api/python/sources/index.rst.txt b/api/python/sources/index.rst.txt index 9efdc64..ccbd4f6 100644 --- a/api/python/sources/index.rst.txt +++ b/api/python/sources/index.rst.txt @@ -16,8 +16,10 @@ closest to a desired zoom level. OpenSlide can read virtual slides in several formats: * Aperio_ (``.svs``, ``.tif``) +* ARGOS_ (``.avs``) * DICOM_ (``.dcm``) * Hamamatsu_ (``.ndpi``, ``.vms``, ``.vmu``) +* Huron_ (``.tif``) * Leica_ (``.scn``) * MIRAX_ (``.mrxs``) * Philips_ (``.tiff``) @@ -32,8 +34,10 @@ Public License, version 2.1`_. .. _OpenSlide: https://openslide.org/ .. _Aperio: https://openslide.org/formats/aperio/ +.. _ARGOS: https://openslide.org/formats/argos/ .. _DICOM: https://openslide.org/formats/dicom/ .. _Hamamatsu: https://openslide.org/formats/hamamatsu/ +.. _Huron: https://openslide.org/formats/huron/ .. _Leica: https://openslide.org/formats/leica/ .. _MIRAX: https://openslide.org/formats/mirax/ .. _Philips: https://openslide.org/formats/philips/ @@ -286,26 +290,38 @@ Standard properties The :mod:`openslide` module provides attributes containing the names of some commonly-used OpenSlide properties. -.. data:: PROPERTY_NAME_COMMENT +.. data:: PROPERTY_NAME_BACKGROUND_COLOR - The name of the property containing a slide's comment, if any. + The name of the property containing a slide's background color, if any. + It is represented as an RGB hex triplet. -.. data:: PROPERTY_NAME_VENDOR +.. data:: PROPERTY_NAME_BARCODE - The name of the property containing an identification of the vendor. + The name of the property containing a slide's barcode, if any. -.. data:: PROPERTY_NAME_QUICKHASH1 +.. data:: PROPERTY_NAME_BOUNDS_HEIGHT - The name of the property containing the "quickhash-1" sum. + The name of the property containing the height of the rectangle bounding + the non-empty region of the slide, if available. -.. data:: PROPERTY_NAME_BACKGROUND_COLOR +.. data:: PROPERTY_NAME_BOUNDS_WIDTH - The name of the property containing a slide's background color, if any. - It is represented as an RGB hex triplet. + The name of the property containing the width of the rectangle bounding + the non-empty region of the slide, if available. -.. data:: PROPERTY_NAME_OBJECTIVE_POWER +.. data:: PROPERTY_NAME_BOUNDS_X - The name of the property containing a slide's objective power, if known. + The name of the property containing the X coordinate of the rectangle + bounding the non-empty region of the slide, if available. + +.. data:: PROPERTY_NAME_BOUNDS_Y + + The name of the property containing the Y coordinate of the rectangle + bounding the non-empty region of the slide, if available. + +.. data:: PROPERTY_NAME_COMMENT + + The name of the property containing a slide's comment, if any. .. data:: PROPERTY_NAME_MPP_X @@ -317,25 +333,17 @@ some commonly-used OpenSlide properties. The name of the property containing the number of microns per pixel in the Y dimension of level 0, if known. -.. data:: PROPERTY_NAME_BOUNDS_X - - The name of the property containing the X coordinate of the rectangle - bounding the non-empty region of the slide, if available. - -.. data:: PROPERTY_NAME_BOUNDS_Y +.. data:: PROPERTY_NAME_OBJECTIVE_POWER - The name of the property containing the Y coordinate of the rectangle - bounding the non-empty region of the slide, if available. + The name of the property containing a slide's objective power, if known. -.. data:: PROPERTY_NAME_BOUNDS_WIDTH +.. data:: PROPERTY_NAME_QUICKHASH1 - The name of the property containing the width of the rectangle bounding - the non-empty region of the slide, if available. + The name of the property containing the "quickhash-1" sum. -.. data:: PROPERTY_NAME_BOUNDS_HEIGHT +.. data:: PROPERTY_NAME_VENDOR - The name of the property containing the height of the rectangle bounding - the non-empty region of the slide, if available. + The name of the property containing an identification of the vendor. Exceptions diff --git a/api/python/static/documentation_options.js b/api/python/static/documentation_options.js index 4229cbf..98748de 100644 --- a/api/python/static/documentation_options.js +++ b/api/python/static/documentation_options.js @@ -1,5 +1,5 @@ const DOCUMENTATION_OPTIONS = { - VERSION: '1.4.3', + VERSION: '1.4.6', LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', From e759fa2af123546e573a4fbeb428d7e11279a26a Mon Sep 17 00:00:00 2001 From: Benjamin Gilbert Date: Sun, 7 Jun 2026 23:29:33 -0500 Subject: [PATCH 4/5] openslide-bin 4.0.0.14 Signed-off-by: Benjamin Gilbert --- _data/releases.yaml | 1 + _includes/news.md | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/_data/releases.yaml b/_data/releases.yaml index 4ca101c..1364858 100644 --- a/_data/releases.yaml +++ b/_data/releases.yaml @@ -66,6 +66,7 @@ java: - {version: 0.6.0, date: 2009-08-17, gz: 1} - {version: 0.5.0, date: 2009-07-15, gz: 1} bin: + - {version: 4.0.0.14, date: 2026-06-07, linux_aarch64: 1} - {version: 4.0.0.13, date: 2026-03-18, linux_aarch64: 1} - {version: 4.0.0.12, date: 2026-03-08, linux_aarch64: 1} - {version: 4.0.0.11, date: 2026-01-04, linux_aarch64: 1} diff --git a/_includes/news.md b/_includes/news.md index b47af1f..887dfdd 100644 --- a/_includes/news.md +++ b/_includes/news.md @@ -1,5 +1,15 @@ {% include links.md %} +## Binary build 4.0.0.14, 2026-06-07 + +[Binary build 4.0.0.14][bin-4.0.0.14] fixes an arbitrary memory write with +a crafted Ventana BIF file ([CVE-2026-48977][CVE-2026-48977]) and updates +various dependencies. + +[bin-4.0.0.14]: https://github.com/openslide/openslide-bin/releases/tag/v4.0.0.14 +[CVE-2026-48977]: https://github.com/openslide/openslide/security/advisories/GHSA-mxg2-48g7-fmwc + + ## OpenSlide Python 1.4.6 and OpenSlide Java 0.13.3, 2026-06-07 [OpenSlide Python 1.4.6][python-1.4.6] and From 878a6d6059b7611392605cb4fe9a85958bf82fb8 Mon Sep 17 00:00:00 2001 From: Benjamin Gilbert Date: Mon, 8 Jun 2026 00:16:14 -0500 Subject: [PATCH 5/5] OpenSlide 4.0.1 Signed-off-by: Benjamin Gilbert --- _data/releases.yaml | 2 + _includes/news.md | 18 + api/bc_s.png | Bin 664 -> 0 bytes api/bc_sd.png | Bin 628 -> 0 bytes api/bdwn.png | Bin 143 -> 0 bytes api/clipboard.js | 61 + api/closed.png | Bin 128 -> 0 bytes api/dir_68267d1309a1af8e8297ef4c3efbcdba.html | 23 +- api/doc.png | Bin 745 -> 0 bytes api/docd.png | Bin 747 -> 0 bytes api/doxygen.css | 1713 +++++++++++------ api/doxygen.svg | 4 +- api/doxygen_crawl.html | 60 + api/dynsections.js | 248 ++- api/files.html | 22 +- api/folderclosed.png | Bin 618 -> 0 bytes api/folderopen.png | Bin 616 -> 0 bytes api/globals.html | 19 +- api/globals_defs.html | 19 +- api/globals_func.html | 18 +- api/globals_type.html | 18 +- api/index.html | 17 +- api/jquery.js | 190 +- api/menu.js | 51 +- api/nav_f.png | Bin 156 -> 0 bytes api/nav_fd.png | Bin 164 -> 0 bytes api/nav_g.png | Bin 95 -> 0 bytes api/nav_h.png | Bin 95 -> 0 bytes api/nav_hd.png | Bin 110 -> 0 bytes api/navtree.css | 327 ++++ api/open.png | Bin 118 -> 0 bytes api/openslide_8h.html | 541 +++--- api/openslide_8h_source.html | 330 ++-- api/splitbar.png | Bin 300 -> 0 bytes api/splitbard.png | Bin 279 -> 0 bytes api/sync_off.png | Bin 846 -> 0 bytes api/sync_on.png | Bin 836 -> 0 bytes api/tab_a.png | Bin 139 -> 0 bytes api/tab_ad.png | Bin 132 -> 0 bytes api/tab_b.png | Bin 168 -> 0 bytes api/tab_bd.png | Bin 164 -> 0 bytes api/tab_h.png | Bin 176 -> 0 bytes api/tab_hd.png | Bin 171 -> 0 bytes api/tab_s.png | Bin 182 -> 0 bytes api/tab_sd.png | Bin 179 -> 0 bytes api/tabs.css | 2 +- 46 files changed, 2463 insertions(+), 1220 deletions(-) delete mode 100644 api/bc_s.png delete mode 100644 api/bc_sd.png delete mode 100644 api/bdwn.png create mode 100644 api/clipboard.js delete mode 100644 api/closed.png delete mode 100644 api/doc.png delete mode 100644 api/docd.png create mode 100644 api/doxygen_crawl.html delete mode 100644 api/folderclosed.png delete mode 100644 api/folderopen.png delete mode 100644 api/nav_f.png delete mode 100644 api/nav_fd.png delete mode 100644 api/nav_g.png delete mode 100644 api/nav_h.png delete mode 100644 api/nav_hd.png create mode 100644 api/navtree.css delete mode 100644 api/open.png delete mode 100644 api/splitbar.png delete mode 100644 api/splitbard.png delete mode 100644 api/sync_off.png delete mode 100644 api/sync_on.png delete mode 100644 api/tab_a.png delete mode 100644 api/tab_ad.png delete mode 100644 api/tab_b.png delete mode 100644 api/tab_bd.png delete mode 100644 api/tab_h.png delete mode 100644 api/tab_hd.png delete mode 100644 api/tab_s.png delete mode 100644 api/tab_sd.png diff --git a/_data/releases.yaml b/_data/releases.yaml index 1364858..2e04301 100644 --- a/_data/releases.yaml +++ b/_data/releases.yaml @@ -1,4 +1,5 @@ c: + - {version: 4.0.1, date: 2026-06-07, xz: 1} - {version: 4.0.0, date: 2023-10-11, xz: 1} - {version: 3.4.1, date: 2015-04-20, gz: 1, xz: 1} - {version: 3.4.0, date: 2014-01-25, gz: 1, xz: 1} @@ -66,6 +67,7 @@ java: - {version: 0.6.0, date: 2009-08-17, gz: 1} - {version: 0.5.0, date: 2009-07-15, gz: 1} bin: + - {version: 4.0.1.1, date: 2026-06-07, linux_aarch64: 1} - {version: 4.0.0.14, date: 2026-06-07, linux_aarch64: 1} - {version: 4.0.0.13, date: 2026-03-18, linux_aarch64: 1} - {version: 4.0.0.12, date: 2026-03-08, linux_aarch64: 1} diff --git a/_includes/news.md b/_includes/news.md index 887dfdd..6d9cb70 100644 --- a/_includes/news.md +++ b/_includes/news.md @@ -1,5 +1,23 @@ {% include links.md %} +## OpenSlide version 4.0.1, 2026-06-07 + +[OpenSlide 4.0.1][openslide-4.0.1] adds support for +[ARGOS AVS][format-argos], +[Huron TIFF][format-huron], and some +[Zeiss CZI][format-zeiss] files, improves support for +[Aperio][format-aperio], +[DICOM][format-dicom], +[Hamamatsu][format-hamamatsu], and +[MIRAX][format-mirax] files, +fixes two security issues, and adds other improvements. + +[Binary build 4.0.1.1][bin-4.0.1.1] updates to OpenSlide 4.0.1. + +[openslide-4.0.1]: https://github.com/openslide/openslide/releases/tag/v4.0.1 +[bin-4.0.1.1]: https://github.com/openslide/openslide-bin/releases/tag/v4.0.1.1 + + ## Binary build 4.0.0.14, 2026-06-07 [Binary build 4.0.0.14][bin-4.0.0.14] fixes an arbitrary memory write with diff --git a/api/bc_s.png b/api/bc_s.png deleted file mode 100644 index 167f27c38f10bcfa5f8acd6447f1f945c21f4e9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 664 zcmV;J0%!e+P)HUFQQ-;jS$pONsB2WwH5_8S#?+F-i1iJ zRVntnwc6OOs)?BR;--~?(r2QJRuRPB_aGsY_Ad-)xHH@{XXc){KY%2@CXQPjt$@R~ zsc!xP019l^aF=Z1Eu4WhaQnaalK?=0%&gB`H*ux~zukX^doQY-Q-tZ{v=);AF(4XQ zFU5(dO*X^+#kq!WW%J~T2aFu8I zRWkB+1OO-qn(YB8p!W!gzKH?=h5JskbFju-liSX3_miR5LjXV_<+J;&=tDG<&%7s* zSCR7MO$%pvR&T36#nZZzZ2LfaIU!M7Rcpadn^jNLb=~Ula=4h3(4gHWu}NF|QC@Fg zwr!xTNQj9h@e20Cmuw+h>M9a?5h|{;_&Ckx@J?Z8t<+KSZCQ)A@MOPW6izTnH3;cj z>eJ%9yV~u?3g(o8@`NJvF7;l*U)%KwK5g$&j+8t_=vnM}fX;;^qqK#|K>(mYx)-{0 y9>HVc2p7s7<@DOi2ZxrPGQi}Oyz);{8-D?Sf3jPi^yw`C0000PB?qO7U+f z6bc31=*q1iF=9n=A%TKmik++qaU+O==c*Gk^FIvdH}{-x4)>mO@14C+xKKd(N*QCP z#vn#SB+3aFu$HV|?Ov@n`*>EfmMnN-6Xzz@0--=z+plc^c(l{p0r1~gZZTJ-@tI!H zfB0p8juL)(6ZqIv3?-)K)I0WT`?)J&{OmX%FESsyZA=?B6WBZ@4J4fTlOPfu)lvmT zSL$}t{?t#%p3XY{17EI)`=)66(z0DzZ=azd`h3bB_$*bD=J7ny1}Ac(?GrXAD(zy)pl zYO0#rOYT#a+?NF4GBunIclgZRH(d+yQrye(WMlF}>2m1_j}a|IT~N^}-uQ@tXQi@akiZNw0=uWih z3>y8GgF4??K#EB1STPo)*7(O){idau#F?W*>(K3L|BL%TR7J>1d7b{OO=6kHgCGzN zXo)?EUgl(`M}C~(S|13KaEqpYn?9ai6(j*(_&QtWQFEIv$zkSa@bVjcw}&xWmT77L O0000_E)H!3HEvS)PKZFi#i9kP61Pb5HX&C`Q zD8BmvQ_PDqyQUbfkQT~FRR5i3AI$tA+~RQRUnYY~HIa*j9Q4nAmHgfO?C~r9_bhAQ ruU~(v>HQ^}=bNUgi#4*9DehntnkzM_-K8oFXaj?%tDnm{r-UW|_fs-q diff --git a/api/clipboard.js b/api/clipboard.js new file mode 100644 index 0000000..9da9f3c --- /dev/null +++ b/api/clipboard.js @@ -0,0 +1,61 @@ +/** + +The code below is based on the Doxygen Awesome project, see +https://github.com/jothepro/doxygen-awesome-css + +MIT License + +Copyright (c) 2021 - 2022 jothepro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +*/ + +let clipboard_title = "Copy to clipboard" +let clipboard_icon = `` +let clipboard_successIcon = `` +let clipboard_successDuration = 1000 + +$(function() { + if(navigator.clipboard) { + const fragments = document.getElementsByClassName("fragment") + for(const fragment of fragments) { + const clipboard_div = document.createElement("div") + clipboard_div.classList.add("clipboard") + clipboard_div.innerHTML = clipboard_icon + clipboard_div.title = clipboard_title + $(clipboard_div).click(function() { + const content = this.parentNode.cloneNode(true) + // filter out line number and folded fragments from file listings + content.querySelectorAll(".lineno, .ttc, .foldclosed").forEach((node) => { node.remove() }) + let text = content.textContent + // remove trailing newlines and trailing spaces from empty lines + text = text.replace(/^\s*\n/gm,'\n').replace(/\n*$/,'') + navigator.clipboard.writeText(text); + this.classList.add("success") + this.innerHTML = clipboard_successIcon + window.setTimeout(() => { // switch back to normal icon after timeout + this.classList.remove("success") + this.innerHTML = clipboard_icon + }, clipboard_successDuration); + }) + fragment.insertBefore(clipboard_div, fragment.firstChild) + } + } +}) diff --git a/api/closed.png b/api/closed.png deleted file mode 100644 index 4e9916048419a3962c90467472fa52da0d053e56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 128 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{V?w&4=Ar*{o=U(JwP~dQhUwbu; z??KwxP!SfbRAHI&c)PD|3GrhB!j1`pUXO@geCwWdnJPa diff --git a/api/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/api/dir_68267d1309a1af8e8297ef4c3efbcdba.html index f06d2de..f0f9312 100644 --- a/api/dir_68267d1309a1af8e8297ef4c3efbcdba.html +++ b/api/dir_68267d1309a1af8e8297ef4c3efbcdba.html @@ -3,12 +3,13 @@ - + OpenSlide: src Directory Reference + @@ -26,37 +27,39 @@ - + +
    +
    src Directory Reference
    - - + -

    +

    Files

    file  openslide.h [code]
     
    openslide.h
     The API for the OpenSlide library.
     
    +
    diff --git a/api/doc.png b/api/doc.png deleted file mode 100644 index ab0cba0efb305aac01e21ec0b286309b3139f459..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 745 zcmVNKjMJrdw$%yWN6@pAe;{qE16W zq-13w1Qd}-q9v<9ydh@UU=!oaIg%qSGqWioiWD9_^1Yrr=gfQFbFW*Y-EITi7%qUD zD@4lXjD9M^>DP?|_rguXzZwlctV92H1# z`D`6+vH$lz*+`Z*XK%DsU)5hxNE9@9E|%k}eMPg?1hDYGJ6V!U-@%y zQ5BW33dK~BfyjU+jQAn|wm2q``pb3j;ee-qKIO^56V|KiI^OVs7lvJ2#U@;ZO?^CML$>j3O<^gw&q)76ruF!MH?0*R$2V3XhONZ0yjTkE%u5)&^ z+ARPJjtL6C7Pvcgm!Y|#ujJ-(N`5}C49^df{UuBBw<6K5D1Zf94@#MmQTn|E@ZJ3Q bf0ls(6 diff --git a/api/docd.png b/api/docd.png deleted file mode 100644 index c4003d9c0c25b084b39781433cbd1ba8a6157924..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 747 zcmVa6_g~7#_t!~9XA$3{7mEfWQw|<-A zM$(1o#!Z8z*y5^+(5O@~T7S?QHBNi4RcbTS7K)25GV?%&JKQtpJ@37Ds~Cm>aB0{8 zE|W_aPyv2s@YSGkbaF)gI4_^Y|Ly!XpYosZX+BES5`0b{K~FH%f49F6zzS0b*}W{f zL&xv(pA*)@M7$C9kM?n@P6F-#nU9&?q1Qvt0jw|;P;DwU#fDw6qbLfRU6X>krW4Xb z@&iJi5REq)nOmRheKz;ZQp7TYA4LQXn*)!-gIDviwY(+Y5hBfjX685Ndq>}nnu=Ho zh)IQrm{^L~>^SXC+zvN-SZCzr2*dvmlYWdWgX7zGXshX6(V zawQ8F(MXi8mM%K0J4rlD&~dwif&T`igWA$sT&hdD05HQ+K-6EbkXvACX^Qd8IAiHC zrkAFfU7O{_{0kmMP+k&{Ww(yfIGVaf0rKZW^vO&~vYczG$Cx zDMSFwuparIgUDcYaaCrp`C+ptgO-XG084(`MIwXPgBVY$o|tB!DyJ(Rzzow7(G_BH z(f^{~#YQIR^-7tI+)drVbEihZ{NOSz(TQ&%238595;"); /** search field */ --search-background-color: white; --search-foreground-color: #909090; ---search-magnification-image: url('mag.svg'); ---search-magnification-select-image: url('mag_sel.svg'); --search-active-color: black; ---search-filter-background-color: #F9FCF9; +--search-filter-background-color: rgba(255,255,255,.7); +--search-filter-backdrop-filter: blur(4px); --search-filter-foreground-color: black; ---search-filter-border-color: #90CE90; +--search-filter-border-color: rgba(150,150,150,.4); --search-filter-highlight-text-color: white; --search-filter-highlight-bg-color: #3D8C3D; --search-results-foreground-color: #429742; ---search-results-background-color: #EEF7EE; ---search-results-border-color: black; ---search-box-shadow: inset 0.5px 0.5px 3px 0px #555; +--search-results-background-color: rgba(255,255,255,.8); +--search-results-backdrop-filter: blur(4px); +--search-results-border-color: rgba(150,150,150,.4); +--search-box-border-color: #B6DFB6; +--search-close-icon-bg-color: #A0A0A0; +--search-close-icon-fg-color: white; /** code fragments */ --code-keyword-color: #008000; @@ -125,12 +127,11 @@ html { --code-preprocessor-color: #806020; --code-string-literal-color: #002080; --code-char-literal-color: #008080; +--code-xml-cdata-color: black; --code-vhdl-digit-color: #FF00FF; --code-vhdl-char-color: #000000; --code-vhdl-keyword-color: #700070; --code-vhdl-logic-color: #FF0000; ---code-link-color: #46A246; ---code-external-link-color: #46A246; --fragment-foreground-color: black; --fragment-background-color: #FBFDFB; --fragment-border-color: #C4E5C4; @@ -141,24 +142,56 @@ html { --fragment-lineno-link-bg-color: #D8D8D8; --fragment-lineno-link-hover-fg-color: #46A246; --fragment-lineno-link-hover-bg-color: #C8C8C8; +--fragment-copy-ok-color: #2EC82E; +--fragment-highlight-filter: -3; --tooltip-foreground-color: black; ---tooltip-background-color: white; ---tooltip-border-color: gray; +--tooltip-background-color: rgba(255,255,255,0.8); +--tooltip-arrow-background-color: white; +--tooltip-border-color: rgba(150,150,150,0.7); +--tooltip-backdrop-filter: blur(3px); --tooltip-doc-color: grey; --tooltip-declaration-color: #006318; --tooltip-link-color: #46A246; ---tooltip-shadow: 1px 1px 7px gray; +--tooltip-shadow: 0 4px 8px 0 rgba(0,0,0,.25); +--fold-line-color: #808080; /** font-family */ ---font-family-normal: Roboto,sans-serif; ---font-family-monospace: monospace,fixed; +--font-family-normal: system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"; +--font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; --font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; ---font-family-title: Tahoma,Arial,sans-serif; +--font-family-title: system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"; --font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; --font-family-search: Arial,Verdana,sans-serif; --font-family-icon: Arial,Helvetica; --font-family-tooltip: Roboto,sans-serif; +/** special sections */ +--warning-color-bg: #f8d1cc; +--warning-color-hl: #b61825; +--warning-color-text: #75070f; +--note-color-bg: #faf3d8; +--note-color-hl: #f3a600; +--note-color-text: #5f4204; +--todo-color-bg: #e4f3ff; +--todo-color-hl: #1879C4; +--todo-color-text: #274a5c; +--test-color-bg: #e8e8ff; +--test-color-hl: #3939C4; +--test-color-text: #1a1a5c; +--deprecated-color-bg: #ecf0f3; +--deprecated-color-hl: #5b6269; +--deprecated-color-text: #43454a; +--bug-color-bg: #e4dafd; +--bug-color-hl: #5b2bdd; +--bug-color-text: #2a0d72; +--invariant-color-bg: #d8f1e3; +--invariant-color-hl: #44b86f; +--invariant-color-text: #265532; +--satisfies-color-hl: #b61825; +--satisfies-color-bg: #f8d1cc; +--verifies-color-hl: #b61825; +--verifies-color-bg: #f8d1cc; + } @media (prefers-color-scheme: dark) { @@ -169,7 +202,8 @@ html { --page-background-color: black; --page-foreground-color: #C9D1D9; --page-link-color: #90CE90; ---page-visited-link-color: #A3D7A3; +--page-visited-link-color: #90CE90; +--page-external-link-color: #A3D7A3; /* index */ --index-odd-item-bg-color: #0B1A0B; @@ -180,10 +214,8 @@ html { /* header */ --header-background-color: #071107; --header-separator-color: #142E14; ---header-gradient-image: url('nav_hd.png'); ---group-header-separator-color: #285D28; +--group-header-separator-color: #1D431D; --group-header-color: #90CE90; ---inherit-header-color: #A0A0A0; --footer-foreground-color: #5BB75B; --footer-logo-width: 60px; @@ -191,34 +223,33 @@ html { --glow-color: cyan; --title-background-color: #091609; ---title-separator-color: #357935; ---directory-separator-color: #285D28; ---separator-color: #285D28; +--title-separator-color: #214B21; --blockquote-background-color: #102610; --blockquote-border-color: #285D28; ---scrollbar-thumb-color: #285D28; +--scrollbar-thumb-color: #2C652C; --scrollbar-background-color: #071107; --icon-background-color: #337533; --icon-foreground-color: #C4E5C4; ---icon-doc-image: url('docd.png'); +--icon-folder-open-fill-color: #46A246; +--icon-folder-fill-color: #53B453; +--icon-folder-border-color: #C4E5C4; +--icon-doc-fill-color: #68BD68; +--icon-doc-border-color: #C4E5C4; /* brief member declaration list */ --memdecl-background-color: #0B1A0B; ---memdecl-separator-color: #2C652C; --memdecl-foreground-color: #BBB; --memdecl-template-color: #7CC67C; +--memdecl-border-color: #235023; /* detailed member list */ --memdef-border-color: #235023; --memdef-title-background-color: #1B401B; ---memdef-title-gradient-image: url('nav_fd.png'); --memdef-proto-background-color: #193A19; --memdef-proto-text-color: #9DD49D; ---memdef-proto-text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.9); ---memdef-doc-background-color: black; --memdef-param-name-color: #D28757; --memdef-template-color: #7CC67C; @@ -236,50 +267,54 @@ html { /** navigation bar/tree/menu */ --nav-background-color: #102610; --nav-foreground-color: #367C36; ---nav-gradient-image: url('tab_bd.png'); ---nav-gradient-hover-image: url('tab_hd.png'); ---nav-gradient-active-image: url('tab_ad.png'); ---nav-gradient-active-image-parent: url("../tab_ad.png"); ---nav-separator-image: url('tab_sd.png'); ---nav-breadcrumb-image: url('bc_sd.png'); ---nav-breadcrumb-border-color: #2A612A; ---nav-splitbar-image: url('splitbard.png'); +--nav-border-color: #214B21; +--nav-breadcrumb-separator-color: #214B21; +--nav-breadcrumb-active-bg: #1D431D; +--nav-breadcrumb-color: #90CE90; +--nav-splitbar-bg-color: #285D28; +--nav-splitbar-handle-color: #46A246; --nav-font-size-level1: 13px; --nav-font-size-level2: 10px; --nav-font-size-level3: 9px; --nav-text-normal-color: #B6DFB6; ---nav-text-hover-color: #DCEFDC; ---nav-text-active-color: #DCEFDC; ---nav-text-normal-shadow: 0px 1px 1px black; ---nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); ---nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); --nav-menu-button-color: #B6DFB6; --nav-menu-background-color: #050C05; --nav-menu-foreground-color: #BBBBBB; ---nav-menu-toggle-color: rgba(255, 255, 255, 0.2); ---nav-arrow-color: #337533; ---nav-arrow-selected-color: #90CE90; +--nav-menu-active-bg: #1D431D; +--nav-menu-active-color: #C9E7C9; +--nav-arrow-color: #46A246; +--nav-arrow-selected-color: #68BD68; + +/* sync icon */ +--sync-icon-border-color: #214B21; +--sync-icon-background-color: #102610; +--sync-icon-selected-background-color: #1D431D; +--sync-icon-color: #46A246; +--sync-icon-selected-color: #53B453; /* table of contents */ --toc-background-color: #153015; --toc-border-color: #204A20; --toc-header-color: #A3D7A3; +--toc-down-arrow-image: url("data:image/svg+xml;utf8,&%238595;"); /** search field */ --search-background-color: black; --search-foreground-color: #C5C5C5; ---search-magnification-image: url('mag_d.svg'); ---search-magnification-select-image: url('mag_seld.svg'); ---search-active-color: #C5C5C5; +--search-active-color: #F5F5F5; --search-filter-background-color: #102610; --search-filter-foreground-color: #90CE90; +--search-filter-backdrop-filter: none; --search-filter-border-color: #7CC67C; --search-filter-highlight-text-color: #BCE2BC; --search-filter-highlight-bg-color: #285D28; ---search-results-background-color: #102610; +--search-results-background-color: black; --search-results-foreground-color: #90CE90; ---search-results-border-color: #7CC67C; ---search-box-shadow: inset 0.5px 0.5px 3px 0px #2F6C2F; +--search-results-backdrop-filter: none; +--search-results-border-color: #337533; +--search-box-border-color: #337533; +--search-close-icon-bg-color: #909090; +--search-close-icon-fg-color: black; /** code fragments */ --code-keyword-color: #CC99CD; @@ -289,14 +324,13 @@ html { --code-preprocessor-color: #65CABE; --code-string-literal-color: #7EC699; --code-char-literal-color: #00E0F0; +--code-xml-cdata-color: #C9D1D9; --code-vhdl-digit-color: #FF00FF; ---code-vhdl-char-color: #000000; ---code-vhdl-keyword-color: #700070; +--code-vhdl-char-color: #C0C0C0; +--code-vhdl-keyword-color: #CF53C9; --code-vhdl-logic-color: #FF0000; ---code-link-color: #79C0FF; ---code-external-link-color: #79C0FF; --fragment-foreground-color: #C9D1D9; ---fragment-background-color: black; +--fragment-background-color: #091609; --fragment-border-color: #30363D; --fragment-lineno-border-color: #30363D; --fragment-lineno-background-color: black; @@ -305,28 +339,60 @@ html { --fragment-lineno-link-bg-color: #303030; --fragment-lineno-link-hover-fg-color: #8E96A1; --fragment-lineno-link-hover-bg-color: #505050; +--fragment-copy-ok-color: #0EA80E; +--fragment-highlight-filter: 5; --tooltip-foreground-color: #C9D1D9; --tooltip-background-color: #202020; +--tooltip-arrow-background-color: #202020; +--tooltip-backdrop-filter: none; --tooltip-border-color: #C9D1D9; --tooltip-doc-color: #D9E1E9; --tooltip-declaration-color: #20C348; --tooltip-link-color: #79C0FF; --tooltip-shadow: none; +--fold-line-color: #808080; /** font-family */ ---font-family-normal: Roboto,sans-serif; ---font-family-monospace: monospace,fixed; +--font-family-normal: system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"; +--font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; --font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; ---font-family-title: Tahoma,Arial,sans-serif; +--font-family-title: system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"; --font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; --font-family-search: Arial,Verdana,sans-serif; --font-family-icon: Arial,Helvetica; --font-family-tooltip: Roboto,sans-serif; +/** special sections */ +--warning-color-bg: #2e1917; +--warning-color-hl: #ad2617; +--warning-color-text: #f5b1aa; +--note-color-bg: #3b2e04; +--note-color-hl: #f1b602; +--note-color-text: #ceb670; +--todo-color-bg: #163750; +--todo-color-hl: #1982D2; +--todo-color-text: #dcf0fa; +--test-color-bg: #121258; +--test-color-hl: #4242cf; +--test-color-text: #c0c0da; +--deprecated-color-bg: #2e323b; +--deprecated-color-hl: #738396; +--deprecated-color-text: #abb0bd; +--bug-color-bg: #2a2536; +--bug-color-hl: #7661b3; +--bug-color-text: #ae9ed6; +--invariant-color-bg: #303a35; +--invariant-color-hl: #76ce96; +--invariant-color-text: #cceed5; +--satisfies-color-hl: #ad2617; +--satisfies-color-bg: #2e1917; +--verifies-color-hl: #ad2617; +--verifies-color-bg: #2e1917; + }} body { - background-color: var(--page-background-color); - color: var(--page-foreground-color); + background-color: var(--page-background-color); + color: var(--page-foreground-color); } body, table, div, p, dl { @@ -336,15 +402,22 @@ body, table, div, p, dl { line-height: 22px; } +body.resizing { + user-select: none; + -webkit-user-select: none; +} + +#doc-content { + scrollbar-width: thin; +} + /* @group Heading Levels */ .title { - font-weight: 400; - font-size: 14px; font-family: var(--font-family-normal); line-height: 28px; - font-size: 150%; - font-weight: bold; + font-size: 160%; + font-weight: 400; margin: 10px 2px; } @@ -353,7 +426,10 @@ h1.groupheader { } h2.groupheader { - border-bottom: 1px solid var(--group-header-separator-color); + box-shadow: 12px 0 var(--page-background-color), + -12px 0 var(--page-background-color), + 12px 1px var(--group-header-separator-color), + -12px 1px var(--group-header-separator-color); color: var(--group-header-color); font-size: 150%; font-weight: normal; @@ -363,6 +439,13 @@ h2.groupheader { width: 100%; } +td h2.groupheader { + box-shadow: 13px 0 var(--page-background-color), + -13px 0 var(--page-background-color), + 13px 1px var(--group-header-separator-color), + -13px 1px var(--group-header-separator-color); +} + h3.groupheader { font-size: 100%; } @@ -386,11 +469,12 @@ dt { p.startli, p.startdd { margin-top: 2px; + margin-bottom: 0px; } th p.starttd, th p.intertd, th p.endtd { - font-size: 100%; - font-weight: 700; + font-size: 100%; + font-weight: 700; } p.starttd { @@ -435,9 +519,11 @@ h3.version { } div.navtab { - padding-right: 15px; + margin-right: 6px; + padding-right: 6px; text-align: right; line-height: 110%; + background-color: var(--nav-background-color); } div.navtab table { @@ -450,19 +536,10 @@ td.navtab { } td.navtabHL { - background-image: var(--nav-gradient-active-image); - background-repeat:repeat-x; padding-right: 6px; padding-left: 6px; -} - -td.navtabHL a, td.navtabHL a:visited { - color: var(--nav-text-hover-color); - text-shadow: var(--nav-text-hover-shadow); -} - -a.navtab { - font-weight: bold; + border-radius: 0 6px 6px 0; + background-color: var(--nav-menu-active-bg); } div.qindex{ @@ -473,6 +550,12 @@ div.qindex{ color: var(--index-separator-color); } +#main-menu a:focus { + outline: auto; + z-index: 10; + position: relative; +} + dt.alphachar{ font-size: 180%; font-weight: bold; @@ -531,8 +614,9 @@ a { color: var(--page-visited-link-color); } -a:hover { - text-decoration: underline; +span.label a:hover { + text-decoration: none; + background: linear-gradient(to bottom, transparent 0,transparent calc(100% - 1px), currentColor 100%); } a.el { @@ -542,12 +626,12 @@ a.el { a.elRef { } -a.code, a.code:visited, a.line, a.line:visited { - color: var(--code-link-color); +a.el, a.el:visited, a.code, a.code:visited, a.line, a.line:visited { + color: var(--page-link-color); } a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { - color: var(--code-external-link-color); + color: var(--page-external-link-color); } a.code.hl_class { /* style for links to class names in code snippets */ } @@ -577,76 +661,157 @@ a.code.hl_event { /* style for links to event names in code snippets */ } a.code.hl_sequence { /* style for links to sequence names in code snippets */ } a.code.hl_dictionary { /* style for links to dictionary names in code snippets */ } +div.embeddoc { + font-family: var(--font-family-monospace); + padding-left: 10px; +} + /* @end */ dl.el { margin-left: -1cm; } +ul.check { + list-style: none; + padding-left: 40px; + margin: 0; +} + +ul.check li { + position: relative; +} + +li.unchecked::before, li.checked::before { + position: absolute; + left: -18px; + top: 0; +} + +li.unchecked::before { + content: "☐"; +} + +li.checked::before { + content: "☑"; +} + +ul.check li > p { + display: inline; +} + +ul.check li > p:not(:first-child) { + display: block; +} + +ol { + text-indent: 0px; +} + ul { - overflow: visible; + text-indent: 0px; + overflow: visible; } ul.multicol { - -moz-column-gap: 1em; - -webkit-column-gap: 1em; - column-gap: 1em; - -moz-column-count: 3; - -webkit-column-count: 3; - column-count: 3; - list-style-type: none; + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; + list-style-type: none; } #side-nav ul { - overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ + overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ } #main-nav ul { - overflow: visible; /* reset ul rule for the navigation bar drop down lists */ + overflow: visible; /* reset ul rule for the navigation bar drop down lists */ } .fragment { - text-align: left; - direction: ltr; - overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ - overflow-y: hidden; + text-align: left; + direction: ltr; + overflow-x: auto; + overflow-y: hidden; + position: relative; + min-height: 12px; + margin: 10px 0px; + padding: 10px 10px; + border: 1px solid var(--fragment-border-color); + border-radius: 4px; + background-color: var(--fragment-background-color); + color: var(--fragment-foreground-color); } pre.fragment { - border: 1px solid var(--fragment-border-color); - background-color: var(--fragment-background-color); - color: var(--fragment-foreground-color); - padding: 4px 6px; - margin: 4px 8px 4px 2px; - overflow: auto; - word-wrap: break-word; - font-size: 9pt; - line-height: 125%; - font-family: var(--font-family-monospace); - font-size: 105%; -} - -div.fragment { - padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ - margin: 4px 8px 4px 2px; - color: var(--fragment-foreground-color); + word-wrap: break-word; + font-size: 10pt; + line-height: 125%; + font-family: var(--font-family-monospace); +} + +span.tt { + white-space: pre; + font-family: var(--font-family-monospace); background-color: var(--fragment-background-color); - border: 1px solid var(--fragment-border-color); +} + +.clipboard { + width: 24px; + height: 24px; + right: 5px; + top: 5px; + opacity: 0; + position: absolute; + display: inline; + overflow: hidden; + justify-content: center; + align-items: center; + cursor: pointer; +} + +.clipboard.success { + border: 1px solid var(--fragment-foreground-color); + border-radius: 4px; +} + +.fragment:hover .clipboard, .clipboard.success { + opacity: .4; +} + +.clipboard:hover, .clipboard.success { + opacity: 1 !important; +} + +.clipboard:active:not([class~=success]) svg { + transform: scale(.91); +} + +.clipboard.success svg { + fill: var(--fragment-copy-ok-color); +} + +.clipboard.success { + border-color: var(--fragment-copy-ok-color); } div.line { font-family: var(--font-family-monospace); - font-size: 13px; + font-size: 13px; min-height: 13px; - line-height: 1.0; - text-wrap: unrestricted; + line-height: 1.2; + text-wrap: wrap; + word-break: break-all; white-space: -moz-pre-wrap; /* Moz */ white-space: -pre-wrap; /* Opera 4-6 */ white-space: -o-pre-wrap; /* Opera 7 */ white-space: pre-wrap; /* CSS3 */ word-wrap: break-word; /* IE 5.5+ */ - text-indent: -53px; - padding-left: 53px; + text-indent: -62px; + padding-left: 62px; padding-bottom: 0px; margin: 0px; -webkit-transition-property: background-color, box-shadow; @@ -662,8 +827,8 @@ div.line { } div.line:after { - content:"\000A"; - white-space: pre; + content:"\000A"; + white-space: pre; } div.line.glow { @@ -671,15 +836,68 @@ div.line.glow { box-shadow: 0 0 10px var(--glow-color); } +span.fold { + display: inline-block; + width: 12px; + height: 12px; + margin-left: 4px; + margin-right: 1px; +} + +span.foldnone { + display: inline-block; + position: relative; + cursor: pointer; + user-select: none; +} + +span.fold.plus, span.fold.minus { + width: 10px; + height: 10px; + background-color: var(--fragment-background-color); + position: relative; + border: 1px solid var(--fold-line-color); + margin-right: 1px; +} + +span.fold.plus::before, span.fold.minus::before { + content: ''; + position: absolute; + background-color: var(--fold-line-color); +} + +span.fold.plus::before { + width: 2px; + height: 6px; + top: 2px; + left: 4px; +} + +span.fold.plus::after { + content: ''; + position: absolute; + width: 6px; + height: 2px; + top: 4px; + left: 2px; + background-color: var(--fold-line-color); +} + +span.fold.minus::before { + width: 6px; + height: 2px; + top: 4px; + left: 2px; +} span.lineno { padding-right: 4px; - margin-right: 9px; + margin-right: 9px; text-align: right; border-right: 2px solid var(--fragment-lineno-border-color); color: var(--fragment-lineno-foreground-color); background-color: var(--fragment-lineno-background-color); - white-space: pre; + white-space: pre; } span.lineno a, span.lineno a:visited { color: var(--fragment-lineno-link-fg-color); @@ -701,18 +919,27 @@ span.lineno a:hover { } div.classindex ul { - list-style: none; - padding-left: 0; + list-style: none; + padding-left: 0; } div.classindex span.ai { - display: inline-block; + display: inline-block; } div.groupHeader { - margin-left: 16px; - margin-top: 12px; - font-weight: bold; + box-shadow: 13px 0 var(--page-background-color), + -13px 0 var(--page-background-color), + 13px 1px var(--group-header-separator-color), + -13px 1px var(--group-header-separator-color); + color: var(--group-header-color); + font-size: 110%; + font-weight: 500; + margin-left: 0px; + margin-top: 0em; + margin-bottom: 6px; + padding-top: 8px; + padding-bottom: 4px; } div.groupText { @@ -722,13 +949,13 @@ div.groupText { body { color: var(--page-foreground-color); - margin: 0; + margin: 0; } div.contents { margin-top: 10px; margin-left: 12px; - margin-right: 8px; + margin-right: 12px; } p.formulaDsp { @@ -742,19 +969,15 @@ img.light-mode-visible { display: none; } -img.formulaDsp { - -} - img.formulaInl, img.inline { vertical-align: middle; } div.center { text-align: center; - margin-top: 0px; - margin-bottom: 0px; - padding: 0px; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; } div.center img { @@ -808,6 +1031,10 @@ span.charliteral { color: var(--code-char-literal-color); } +span.xmlcdata { + color: var(--code-xml-cdata-color); +} + span.vhdldigit { color: var(--code-vhdl-digit-color); } @@ -825,10 +1052,10 @@ span.vhdllogic { } blockquote { - background-color: var(--blockquote-background-color); - border-left: 2px solid var(--blockquote-border-color); - margin: 0 24px 0 4px; - padding: 0 12px 0 16px; + background-color: var(--blockquote-background-color); + border-left: 2px solid var(--blockquote-border-color); + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; } /* @end */ @@ -850,9 +1077,14 @@ th.dirtab { } hr { - height: 0px; border: none; - border-top: 1px solid var(--separator-color); + margin-top: 16px; + margin-bottom: 16px; + height: 1px; + box-shadow: 13px 0 var(--page-background-color), + -13px 0 var(--page-background-color), + 13px 1px var(--group-header-separator-color), + -13px 1px var(--group-header-separator-color); } hr.footer { @@ -867,14 +1099,6 @@ table.memberdecls { } .memberdecls td, .fieldtable tr { - -webkit-transition-property: background-color, box-shadow; - -webkit-transition-duration: 0.5s; - -moz-transition-property: background-color, box-shadow; - -moz-transition-duration: 0.5s; - -ms-transition-property: background-color, box-shadow; - -ms-transition-duration: 0.5s; - -o-transition-property: background-color, box-shadow; - -o-transition-duration: 0.5s; transition-property: background-color, box-shadow; transition-duration: 0.5s; } @@ -884,13 +1108,23 @@ table.memberdecls { box-shadow: 0 0 15px var(--glow-color); } +.memberdecls tr[class^='memitem'] { + font-family: var(--font-family-monospace); +} + .mdescLeft, .mdescRight, -.memItemLeft, .memItemRight, -.memTemplItemLeft, .memTemplItemRight, .memTemplParams { +.memItemLeft, .memItemRight { + padding-top: 2px; + padding-bottom: 2px; +} + +.memTemplParams { + padding-left: 10px; + padding-top: 5px; +} + +.memItemLeft, .memItemRight, .memTemplParams { background-color: var(--memdecl-background-color); - border: none; - margin: 4px; - padding: 1px 0 0 8px; } .mdescLeft, .mdescRight { @@ -898,27 +1132,107 @@ table.memberdecls { color: var(--memdecl-foreground-color); } -.memSeparator { - border-bottom: 1px solid var(--memdecl-separator-color); - line-height: 1px; - margin: 0px; - padding: 0px; +tr[class^='memdesc'] { + box-shadow: inset 0px 1px 3px 0px rgba(0,0,0,.075); } -.memItemLeft, .memTemplItemLeft { - white-space: nowrap; +.mdescLeft { + border-left: 1px solid var(--memdecl-border-color); + border-bottom: 1px solid var(--memdecl-border-color); } -.memItemRight, .memTemplItemRight { - width: 100%; +.mdescRight { + border-right: 1px solid var(--memdecl-border-color); + border-bottom: 1px solid var(--memdecl-border-color); } .memTemplParams { color: var(--memdecl-template-color); - white-space: nowrap; + white-space: nowrap; font-size: 80%; + border-left: 1px solid var(--memdecl-border-color); + border-right: 1px solid var(--memdecl-border-color); +} + +td.ititle { + border: 1px solid var(--memdecl-border-color); + border-top-left-radius: 4px; + border-top-right-radius: 4px; + padding-left: 10px; +} + +tr:not(:first-child) > td.ititle { + border-top: 0; + border-radius: 0; +} + +.memItemLeft { + white-space: nowrap; + border-left: 1px solid var(--memdecl-border-color); + border-bottom: 1px solid var(--memdecl-border-color); + padding-left: 10px; + transition: none; + vertical-align: top; + text-align: right; +} + +.memItemRight { + width: 100%; + border-right: 1px solid var(--memdecl-border-color); + border-bottom: 1px solid var(--memdecl-border-color); + padding-right: 10px; + transition: none; + vertical-align: bottom; +} + +tr.heading + tr[class^='memitem'] td.memItemLeft, +tr.groupHeader + tr[class^='memitem'] td.memItemLeft, +tr.inherit_header + tr[class^='memitem'] td.memItemLeft { + border-top: 1px solid var(--memdecl-border-color); + border-top-left-radius: 4px; +} + +tr.heading + tr[class^='memitem'] td.memItemRight, +tr.groupHeader + tr[class^='memitem'] td.memItemRight, +tr.inherit_header + tr[class^='memitem'] td.memItemRight { + border-top: 1px solid var(--memdecl-border-color); + border-top-right-radius: 4px; } +tr.heading + tr[class^='memitem'] td.memTemplParams, +tr.heading + tr td.ititle, +tr.groupHeader + tr[class^='memitem'] td.memTemplParams, +tr.groupHeader + tr td.ititle, +tr.inherit_header + tr[class^='memitem'] td.memTemplParams { + border-top: 1px solid var(--memdecl-border-color); + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} + +table.memberdecls tr:last-child td.memItemLeft, +table.memberdecls tr:last-child td.mdescLeft, +table.memberdecls tr[class^='memitem']:has(+ tr.groupHeader) td.memItemLeft, +table.memberdecls tr[class^='memitem']:has(+ tr.inherit_header) td.memItemLeft, +table.memberdecls tr[class^='memdesc']:has(+ tr.groupHeader) td.mdescLeft, +table.memberdecls tr[class^='memdesc']:has(+ tr.inherit_header) td.mdescLeft { + border-bottom-left-radius: 4px; +} + +table.memberdecls tr:last-child td.memItemRight, +table.memberdecls tr:last-child td.mdescRight, +table.memberdecls tr[class^='memitem']:has(+ tr.groupHeader) td.memItemRight, +table.memberdecls tr[class^='memitem']:has(+ tr.inherit_header) td.memItemRight, +table.memberdecls tr[class^='memdesc']:has(+ tr.groupHeader) td.mdescRight, +table.memberdecls tr[class^='memdesc']:has(+ tr.inherit_header) td.mdescRight { + border-bottom-right-radius: 4px; +} + +tr.template .memItemLeft, tr.template .memItemRight { + border-top: none; + padding-top: 0; +} + + /* @end */ /* @group Member Details */ @@ -933,24 +1247,43 @@ table.memberdecls { border-top-right-radius: 4px; border-top-left-radius: 4px; margin-bottom: -1px; - background-image: var(--memdef-title-gradient-image); - background-repeat: repeat-x; - background-color: var(--memdef-title-background-color); + background-color: var(--memdef-proto-background-color); line-height: 1.25; - font-weight: 300; + font-family: var(--font-family-monospace); + font-weight: 500; + font-size: 16px; float:left; + box-shadow: 0 10px 0 -1px var(--memdef-proto-background-color), + 0 2px 8px 0 rgba(0,0,0,.075); + position: relative; +} + +.memtitle:after { + content: ''; + display: block; + background: var(--memdef-proto-background-color); + height: 10px; + bottom: -10px; + left: 0px; + right: -14px; + position: absolute; + border-top-right-radius: 6px; } .permalink { - font-size: 65%; - display: inline-block; - vertical-align: middle; + font-family: var(--font-family-monospace); + font-weight: 500; + line-height: 1.25; + font-size: 16px; + display: inline-block; + vertical-align: middle; } .memtemplate { font-size: 80%; color: var(--memdef-template-color); + font-family: var(--font-family-monospace); font-weight: normal; margin-left: 9px; } @@ -963,22 +1296,21 @@ table.memberdecls { padding: 0; margin-bottom: 10px; margin-right: 5px; - -webkit-transition: box-shadow 0.5s linear; - -moz-transition: box-shadow 0.5s linear; - -ms-transition: box-shadow 0.5s linear; - -o-transition: box-shadow 0.5s linear; - transition: box-shadow 0.5s linear; - display: table !important; - width: 100%; + display: table !important; + width: 100%; + box-shadow: 0 2px 8px 0 rgba(0,0,0,.075); + border-radius: 4px; } .memitem.glow { - box-shadow: 0 0 15px var(--glow-color); + box-shadow: 0 0 15px var(--glow-color); } .memname { - font-weight: 400; - margin-left: 6px; + font-family: var(--font-family-monospace); + font-size: 13px; + font-weight: 400; + margin-left: 6px; } .memname td { @@ -986,53 +1318,39 @@ table.memberdecls { } .memproto, dl.reflist dt { - border-top: 1px solid var(--memdef-border-color); - border-left: 1px solid var(--memdef-border-color); - border-right: 1px solid var(--memdef-border-color); - padding: 6px 0px 6px 0px; - color: var(--memdef-proto-text-color); - font-weight: bold; - text-shadow: var(--memdef-proto-text-shadow); - background-color: var(--memdef-proto-background-color); - box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - border-top-right-radius: 4px; + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + padding: 6px 0px 6px 0px; + color: var(--memdef-proto-text-color); + font-weight: bold; + background-color: var(--memdef-proto-background-color); + border-top-right-radius: 4px; + border-bottom: 1px solid var(--memdef-border-color); } .overload { - font-family: var(--font-family-monospace); + font-family: var(--font-family-monospace); font-size: 65%; } .memdoc, dl.reflist dd { - border-bottom: 1px solid var(--memdef-border-color); - border-left: 1px solid var(--memdef-border-color); - border-right: 1px solid var(--memdef-border-color); - padding: 6px 10px 2px 10px; - border-top-width: 0; - background-image:url('nav_g.png'); - background-repeat:repeat-x; - background-color: var(--memdef-doc-background-color); - /* opera specific markup */ - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; - box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - /* firefox specific markup */ - -moz-border-radius-bottomleft: 4px; - -moz-border-radius-bottomright: 4px; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - /* webkit specific markup */ - -webkit-border-bottom-left-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-bottom: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + padding: 6px 10px 2px 10px; + border-top-width: 0; + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; } dl.reflist dt { - padding: 5px; + padding: 5px; } dl.reflist dd { - margin: 0px 0px 10px 0px; - padding: 5px; + margin: 0px 0px 10px 0px; + padding: 5px; } .paramkey { @@ -1041,37 +1359,45 @@ dl.reflist dd { .paramtype { white-space: nowrap; + padding: 0px; + padding-bottom: 1px; } .paramname { - color: var(--memdef-param-name-color); white-space: nowrap; + padding: 0px; + padding-bottom: 1px; + margin-left: 2px; } + .paramname em { + color: var(--memdef-param-name-color); font-style: normal; + margin-right: 1px; } -.paramname code { - line-height: 14px; + +.paramname .paramdefval { + font-family: var(--font-family-monospace); } .params, .retval, .exception, .tparams { - margin-left: 0px; - padding-left: 0px; + margin-left: 0px; + padding-left: 0px; } .params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { - font-weight: bold; - vertical-align: top; + font-weight: bold; + vertical-align: top; } .params .paramtype, .tparams .paramtype { - font-style: italic; - vertical-align: top; + font-style: italic; + vertical-align: top; } .params .paramdir, .tparams .paramdir { - font-family: var(--font-family-monospace); - vertical-align: top; + font-family: var(--font-family-monospace); + vertical-align: top; } table.mlabels { @@ -1090,15 +1416,15 @@ td.mlabels-right { } span.mlabels { - margin-left: 8px; + margin-left: 8px; } span.mlabel { - background-color: var(--label-background-color); - border-top:1px solid var(--label-left-top-border-color); - border-left:1px solid var(--label-left-top-border-color); - border-right:1px solid var(--label-right-bottom-border-color); - border-bottom:1px solid var(--label-right-bottom-border-color); + background-color: var(--label-background-color); + border-top:1px solid var(--label-left-top-border-color); + border-left:1px solid var(--label-left-top-border-color); + border-right:1px solid var(--label-right-bottom-border-color); + border-bottom:1px solid var(--label-right-bottom-border-color); text-shadow: none; color: var(--label-foreground-color); margin-right: 4px; @@ -1116,39 +1442,37 @@ span.mlabel { /* these are for tree view inside a (index) page */ div.directory { - margin: 10px 0px; - border-top: 1px solid var(--directory-separator-color); - border-bottom: 1px solid var(--directory-separator-color); - width: 100%; + margin: 10px 0px; + width: 100%; } .directory table { - border-collapse:collapse; + border-collapse:collapse; } .directory td { - margin: 0px; - padding: 0px; + margin: 0px; + padding: 0px; vertical-align: top; } .directory td.entry { - white-space: nowrap; - padding-right: 6px; + white-space: nowrap; + padding-right: 6px; padding-top: 3px; } .directory td.entry a { - outline:none; + outline:none; } .directory td.entry a img { - border: none; + border: none; } .directory td.desc { - width: 100%; - padding-left: 6px; + width: 100%; + padding-left: 6px; padding-right: 6px; padding-top: 3px; border-left: 1px solid rgba(0,0,0,0.05); @@ -1169,92 +1493,178 @@ div.directory { } .directory .levels { - white-space: nowrap; - width: 100%; - text-align: right; - font-size: 9pt; + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; } .directory .levels span { - cursor: pointer; - padding-left: 2px; - padding-right: 2px; + cursor: pointer; + padding-left: 2px; + padding-right: 2px; color: var(--page-link-color); } .arrow { - color: var(--nav-arrow-color); - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - cursor: pointer; - font-size: 80%; - display: inline-block; - width: 16px; - height: 22px; + color: var(--nav-background-color); + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 14px; + transition: opacity 0.3s ease; } -.icon { - font-family: var(--font-family-icon); - line-height: normal; - font-weight: bold; - font-size: 12px; - height: 14px; - width: 16px; - display: inline-block; - background-color: var(--icon-background-color); - color: var(--icon-foreground-color); - text-align: center; - border-radius: 4px; - margin-left: 2px; - margin-right: 2px; +span.arrowhead { + position: relative; + padding: 0; + margin: 0 0 0 2px; + display: inline-block; + width: 5px; + height: 5px; + border-right: 2px solid var(--nav-arrow-color); + border-bottom: 2px solid var(--nav-arrow-color); + transform: rotate(-45deg); + transition: transform 0.3s ease; } -.icona { - width: 24px; - height: 22px; - display: inline-block; +span.arrowhead.opened { + transform: rotate(45deg); +} + +.selected span.arrowhead { + border-right: 2px solid var(--nav-arrow-selected-color); + border-bottom: 2px solid var(--nav-arrow-selected-color); +} + +.icon { + font-family: var(--font-family-icon); + line-height: normal; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: var(--icon-background-color); + color: var(--icon-foreground-color); + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; } -.iconfopen { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:url('folderopen.png'); - background-position: 0px -4px; - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; +.icona { + width: 24px; + height: 22px; + display: inline-block; } -.iconfclosed { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:url('folderclosed.png'); - background-position: 0px -4px; - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; +.iconfolder { + width: 24px; + height: 18px; + margin-top: 6px; + vertical-align:top; + display: inline-block; + position: relative; } .icondoc { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:var(--icon-doc-image); - background-position: 0px -4px; - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; + width: 24px; + height: 18px; + margin-top: 3px; + vertical-align:top; + display: inline-block; + position: relative; +} + +.folder-icon { + width: 16px; + height: 11px; + background-color: var(--icon-folder-fill-color); + border: 1px solid var(--icon-folder-border-color); + border-radius: 0 2px 2px 2px; + position: relative; + box-sizing: content-box; +} + +.folder-icon::after { + content: ''; + position: absolute; + top: 2px; + left: -1px; + width: 16px; + height: 7px; + background-color: var(--icon-folder-open-fill-color); + border: 1px solid var(--icon-folder-border-color); + border-radius: 7px 7px 2px 2px; + transform-origin: top left; + opacity: 0; + transition: all 0.3s linear; +} + +.folder-icon::before { + content: ''; + position: absolute; + top: -3px; + left: -1px; + width: 6px; + height: 2px; + background-color: var(--icon-folder-fill-color); + border-top: 1px solid var(--icon-folder-border-color); + border-left: 1px solid var(--icon-folder-border-color); + border-right: 1px solid var(--icon-folder-border-color); + border-radius: 2px 2px 0 0; +} + +.folder-icon.open::after { + top: 3px; + opacity: 1; +} + +.doc-icon { + left: 6px; + width: 12px; + height: 16px; + background-color: var(--icon-doc-border-color); + clip-path: polygon(0 0, 66% 0, 100% 25%, 100% 100%, 0 100%); + position: relative; + display: inline-block; +} +.doc-icon::before { + content: ""; + left: 1px; + top: 1px; + width: 10px; + height: 14px; + background-color: var(--icon-doc-fill-color); + clip-path: polygon(0 0, 66% 0, 100% 25%, 100% 100%, 0 100%); + position: absolute; + box-sizing: border-box; } +.doc-icon::after { + content: ""; + left: 7px; + top: 0px; + width: 3px; + height: 3px; + background-color: transparent; + position: absolute; + border: 1px solid var(--icon-doc-border-color); +} + + + /* @end */ div.dynheader { - margin-top: 8px; + margin-top: 8px; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; @@ -1263,6 +1673,13 @@ div.dynheader { user-select: none; } +span.dynarrow { + position: relative; + display: inline-block; + width: 12px; + bottom: 1px; +} + address { font-style: normal; color: var(--footer-foreground-color); @@ -1274,8 +1691,8 @@ table.doxtable caption { table.doxtable { border-collapse:collapse; - margin-top: 4px; - margin-bottom: 4px; + margin-top: 4px; + margin-bottom: 4px; } table.doxtable td, table.doxtable th { @@ -1292,128 +1709,179 @@ table.doxtable th { } table.fieldtable { - margin-bottom: 10px; - border: 1px solid var(--memdef-border-color); - border-spacing: 0px; - border-radius: 4px; - box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + margin-bottom: 10px; + border: 1px solid var(--memdef-border-color); + border-spacing: 0px; + border-radius: 4px; + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); } .fieldtable td, .fieldtable th { - padding: 3px 7px 2px; + padding: 3px 7px 2px; } -.fieldtable td.fieldtype, .fieldtable td.fieldname { - white-space: nowrap; - border-right: 1px solid var(--memdef-border-color); - border-bottom: 1px solid var(--memdef-border-color); - vertical-align: top; +.fieldtable td.fieldtype, .fieldtable td.fieldname, .fieldtable td.fieldinit { + white-space: nowrap; + border-right: 1px solid var(--memdef-border-color); + border-bottom: 1px solid var(--memdef-border-color); + vertical-align: top; } .fieldtable td.fieldname { - padding-top: 3px; + padding-top: 3px; +} + +.fieldtable td.fieldinit { + padding-top: 3px; + text-align: right; } .fieldtable td.fielddoc { - border-bottom: 1px solid var(--memdef-border-color); + border-bottom: 1px solid var(--memdef-border-color); } .fieldtable td.fielddoc p:first-child { - margin-top: 0px; + margin-top: 0px; } .fieldtable td.fielddoc p:last-child { - margin-bottom: 2px; + margin-bottom: 2px; } .fieldtable tr:last-child td { - border-bottom: none; + border-bottom: none; } .fieldtable th { - background-image: var(--memdef-title-gradient-image); - background-repeat:repeat-x; - background-color: var(--memdef-title-background-color); - font-size: 90%; - color: var(--memdef-proto-text-color); - padding-bottom: 4px; - padding-top: 5px; - text-align:left; - font-weight: 400; - border-top-left-radius: 4px; - border-top-right-radius: 4px; - border-bottom: 1px solid var(--memdef-border-color); -} - - -.tabsearch { - top: 0px; - left: 10px; - height: 36px; - background-image: var(--nav-gradient-image); - z-index: 101; + background-color: var(--memdef-title-background-color); + font-size: 90%; + color: var(--memdef-proto-text-color); + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + font-weight: 400; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid var(--memdef-border-color); +} + +/* style requirements page */ + +div.req_title { + text-decoration-line: underline; + text-decoration-style: solid; + text-decoration-color: var(--table-cell-border-color); + text-decoration-thickness: 1px; + font-weight: bold; +} + +table.reqlist tr > td:first-child { + text-align: right; + font-weight: bold; +} + +div.missing_satisfies { + border-left: 8px solid var(--satisfies-color-hl); + border-radius: 4px; + background: var(--satisfies-color-bg); + padding: 10px; + margin: 10px 0px; + overflow: hidden; + margin-left: 0; +} + +div.missing_verifies { + border-left: 8px solid var(--verifies-color-hl); + border-radius: 4px; + background: var(--verifies-color-bg); + padding: 10px; + margin: 10px 0px; + overflow: hidden; + margin-left: 0; +} + +/* ----------- navigation breadcrumb styling ----------- */ + +#nav-path ul { + height: 30px; + line-height: 30px; + color: var(--nav-text-normal-color); overflow: hidden; - font-size: 13px; + margin: 0px; + padding-left: 4px; + background-image: none; + background: var(--page-background-color); + border-bottom: 1px solid var(--nav-breadcrumb-separator-color); + font-size: var(--nav-font-size-level1); + font-family: var(--font-family-nav); + position: relative; + z-index: 100; } -.navpath ul -{ - font-size: 11px; - background-image: var(--nav-gradient-image); - background-repeat:repeat-x; - background-position: 0 -5px; - height:30px; - line-height:30px; - color:var(--nav-text-normal-color); - border:solid 1px var(--nav-breadcrumb-border-color); - overflow:hidden; - margin:0px; - padding:0px; -} - -.navpath li -{ +#main-nav { + border-bottom: 1px solid var(--nav-border-color); +} + +.navpath li { list-style-type:none; float:left; + color: var(--nav-foreground-color); +} + +.navpath li.footer { + list-style-type:none; + float:right; padding-left:10px; padding-right:15px; - background-image:var(--nav-breadcrumb-image); + background-image:none; background-repeat:no-repeat; background-position:right; - color: var(--nav-foreground-color); + font-size: 8pt; + color: var(--footer-foreground-color); } -.navpath li.navelem a -{ - height:32px; - display:block; - text-decoration: none; - outline: none; - color: var(--nav-text-normal-color); - font-family: var(--font-family-nav); - text-shadow: var(--nav-text-normal-shadow); - text-decoration: none; +#nav-path li.navelem { + background-image: none; + display: flex; + align-items: center; + padding-left: 15px; } -.navpath li.navelem a:hover -{ - color: var(--nav-text-hover-color); - text-shadow: var(--nav-text-hover-shadow); +.navpath li.navelem a { + text-shadow: none; + display: inline-block; + color: var(--nav-breadcrumb-color); + position: relative; + top: 0px; + height: 30px; + margin-right: -20px; } -.navpath li.footer -{ - list-style-type:none; - float:right; - padding-left:10px; - padding-right:15px; - background-image:none; - background-repeat:no-repeat; - background-position:right; - color: var(--footer-foreground-color); - font-size: 8pt; +#nav-path li.navelem:after { + content: ''; + display: inline-block; + position: relative; + top: 0; + right: -15px; + width: 30px; + height: 30px; + transform: scaleX(0.5) scale(0.707) rotate(45deg); + z-index: 10; + background: var(--page-background-color); + box-shadow: 2px -2px 0 2px var(--nav-breadcrumb-separator-color); + border-radius: 0 5px 0 50px; +} + +#nav-path li.navelem:first-child { + margin-left: -6px; } +#nav-path li.navelem:hover, +#nav-path li.navelem:hover:after { + background-color: var(--nav-breadcrumb-active-bg); +} + +/* ---------------------- */ div.summary { @@ -1431,14 +1899,14 @@ div.summary a table.classindex { - margin: 10px; - white-space: nowrap; - margin-left: 3%; - margin-right: 3%; - width: 94%; - border: 0; - border-spacing: 0; - padding: 0; + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; } div.ingroups @@ -1455,10 +1923,8 @@ div.ingroups a div.header { - background-image: var(--header-gradient-image); - background-repeat:repeat-x; - background-color: var(--header-background-color); margin: 0px; + background-color: var(--header-background-color); border-bottom: 1px solid var(--header-separator-color); } @@ -1467,72 +1933,134 @@ div.headertitle padding: 5px 5px 5px 10px; } -.PageDocRTL-title div.headertitle { - text-align: right; - direction: rtl; +dl { + padding: 0 0 0 0; } -dl { - padding: 0 0 0 0; +dl.bug dt a, dl.deprecated dt a, dl.todo dt a, dl.test a { + font-weight: bold !important; } -/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ -dl.section { - margin-left: 0px; - padding-left: 0px; +dl.warning, dl.attention, dl.important, dl.note, dl.deprecated, dl.bug, +dl.invariant, dl.pre, dl.post, dl.todo, dl.test, dl.remark { + padding: 10px; + margin: 10px 0px; + overflow: hidden; + margin-left: 0; + border-radius: 4px; } -dl.note { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #D0C000; +dl.section dd { + margin-bottom: 2px; } -dl.warning, dl.attention { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #FF0000; +dl.warning, dl.attention, dl.important { + background: var(--warning-color-bg); + border-left: 8px solid var(--warning-color-hl); + color: var(--warning-color-text); } -dl.pre, dl.post, dl.invariant { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #00D000; +dl.warning dt, dl.attention dt, dl.important dt { + color: var(--warning-color-hl); } -dl.deprecated { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #505050; +dl.warning .tt, dl.attention .tt, dl.important .tt { + background-color: hsl(from var(--warning-color-bg) h s calc(l + var(--fragment-highlight-filter))); +} + +dl.note, dl.remark { + background: var(--note-color-bg); + border-left: 8px solid var(--note-color-hl); + color: var(--note-color-text); +} + +dl.note dt, dl.remark dt { + color: var(--note-color-hl); +} + +dl.note .tt, dl.remark .tt { + background-color: hsl(from var(--note-color-bg) h s calc(l + var(--fragment-highlight-filter))); } dl.todo { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #00C0E0; + background: var(--todo-color-bg); + border-left: 8px solid var(--todo-color-hl); + color: var(--todo-color-text); +} + +dl.todo dt { + color: var(--todo-color-hl); +} + +dl.todo .tt { + background-color: hsl(from var(--todo-color-bg) h s calc(l + var(--fragment-highlight-filter))); } dl.test { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #3030E0; + background: var(--test-color-bg); + border-left: 8px solid var(--test-color-hl); + color: var(--test-color-text); +} + +dl.test dt { + color: var(--test-color-hl); +} + +dl.test .tt { + background-color: hsl(from var(--test-color-bg) h s calc(l + var(--fragment-highlight-filter))); +} + +dl.bug dt a { + color: var(--bug-color-hl) !important; } dl.bug { - margin-left: -7px; - padding-left: 3px; - border-left: 4px solid; - border-color: #C08050; + background: var(--bug-color-bg); + border-left: 8px solid var(--bug-color-hl); + color: var(--bug-color-text); } -dl.section dd { - margin-bottom: 6px; +dl.bug dt a { + color: var(--bug-color-hl) !important; +} + +dl.bug .tt { + background-color: hsl(from var(--bug-color-bg) h s calc(l + var(--fragment-highlight-filter))); +} + +dl.deprecated { + background: var(--deprecated-color-bg); + border-left: 8px solid var(--deprecated-color-hl); + color: var(--deprecated-color-text); +} + +dl.deprecated dt a { + color: var(--deprecated-color-hl) !important; +} + +dl.deprecated .tt { + background-color: hsl(from var(--deprecated-color-bg) h s calc(l + var(--fragment-highlight-filter))); +} + + +dl.invariant, dl.pre, dl.post { + background: var(--invariant-color-bg); + border-left: 8px solid var(--invariant-color-hl); + color: var(--invariant-color-text); +} + +dl.invariant dt, dl.pre dt, dl.post dt { + color: var(--invariant-color-hl); +} + +dl.invariant .tt, dl.pre .tt, dl.post .tt { + background-color: hsl(from var(--invariant-color-bg) h s calc(l + var(--fragment-highlight-filter))); +} + +dl.note dd, dl.warning dd, dl.pre dd, dl.post dd, +dl.remark dd, dl.attention dd, dl.important dd, dl.invariant dd, +dl.bug dd, dl.deprecated dd, dl.todo dd, dl.test dd { + margin-inline-start: 0px; } @@ -1547,30 +2075,35 @@ dl.section dd { vertical-align: bottom; border-collapse: separate; } - + #projectlogo img -{ +{ border: 0px none; } - + #projectalign { - vertical-align: middle; - padding-left: 0.5em; + vertical-align: middle; + padding-left: 0.5em; } #projectname { font-size: 200%; font-family: var(--font-family-title); - margin: 0px; - padding: 2px 0px; + margin: 0; + padding: 0; +} + +#side-nav #projectname +{ + font-size: 130%; } #projectbrief { font-size: 90%; - font-family: var(--font-family-title); + font-family: var(--font-family-title); margin: 0px; padding: 0px; } @@ -1578,43 +2111,42 @@ dl.section dd { #projectnumber { font-size: 50%; - font-family: 50% var(--font-family-title); + font-family: var(--font-family-title); margin: 0px; padding: 0px; } #titlearea { - padding: 0px; + padding: 0 0 0 5px; margin: 0px; - width: 100%; border-bottom: 1px solid var(--title-separator-color); background-color: var(--title-background-color); } .image { - text-align: center; + text-align: center; } .dotgraph { - text-align: center; + text-align: center; } .mscgraph { - text-align: center; + text-align: center; } .plantumlgraph { - text-align: center; + text-align: center; } .diagraph { - text-align: center; + text-align: center; } .caption @@ -1623,70 +2155,67 @@ dl.section dd { } dl.citelist { - margin-bottom:50px; + margin-bottom:50px; } dl.citelist dt { - color:var(--citation-label-color); - float:left; - font-weight:bold; - margin-right:10px; - padding:5px; - text-align:right; - width:52px; + color:var(--citation-label-color); + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; + text-align:right; + width:52px; } dl.citelist dd { - margin:2px 0 2px 72px; - padding:5px 0; + margin:2px 0 2px 72px; + padding:5px 0; } div.toc { - padding: 14px 25px; - background-color: var(--toc-background-color); - border: 1px solid var(--toc-border-color); - border-radius: 7px 7px 7px 7px; - float: right; - height: auto; - margin: 0 8px 10px 10px; - width: 200px; + padding: 14px 25px; + background-color: var(--toc-background-color); + border: 1px solid var(--toc-border-color); + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; } div.toc li { - background: url("bdwn.png") no-repeat scroll 0 5px transparent; - font: 10px/1.2 var(--font-family-toc); - margin-top: 5px; - padding-left: 10px; - padding-top: 2px; + background: var(--toc-down-arrow-image) no-repeat scroll 0 5px transparent; + font: 10px/1.2 var(--font-family-toc); + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; } div.toc h3 { - font: bold 12px/1.2 var(--font-family-toc); + font: bold 12px/1.2 var(--font-family-toc); color: var(--toc-header-color); - border-bottom: 0 none; - margin: 0; + border-bottom: 0 none; + margin: 0; } div.toc ul { - list-style: none outside none; - border: medium none; - padding: 0px; -} - -div.toc li.level1 { - margin-left: 0px; + list-style: none outside none; + border: medium none; + padding: 0px; } -div.toc li.level2 { - margin-left: 15px; +div.toc li[class^='level'] { + margin-left: 15px; } -div.toc li.level3 { - margin-left: 30px; +div.toc li.level1 { + margin-left: 0px; } -div.toc li.level4 { - margin-left: 45px; +div.toc li.empty { + background-image: none; + margin-top: 0px; } span.emoji { @@ -1696,13 +2225,12 @@ span.emoji { } span.obfuscator { - display: none; + display: none; } .inherit_header { - font-weight: bold; - color: var(--inherit-header-color); - cursor: pointer; + font-weight: 400; + cursor: pointer; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; @@ -1712,49 +2240,49 @@ span.obfuscator { } .inherit_header td { - padding: 6px 0px 2px 5px; + padding: 6px 0 2px 0; } .inherit { - display: none; + display: none; } tr.heading h2 { - margin-top: 12px; - margin-bottom: 4px; + margin-top: 12px; + margin-bottom: 12px; } /* tooltip related style info */ .ttc { - position: absolute; - display: none; + position: absolute; + display: none; } #powerTip { cursor: default; - /*white-space: nowrap;*/ - color: var(--tooltip-foreground-color); + color: var(--tooltip-foreground-color); background-color: var(--tooltip-background-color); + backdrop-filter: var(--tooltip-backdrop-filter); + -webkit-backdrop-filter: var(--tooltip-backdrop-filter); border: 1px solid var(--tooltip-border-color); - border-radius: 4px 4px 4px 4px; + border-radius: 4px; box-shadow: var(--tooltip-shadow); display: none; font-size: smaller; max-width: 80%; - opacity: 0.9; padding: 1ex 1em 1em; position: absolute; z-index: 2147483647; } #powerTip div.ttdoc { - color: var(--tooltip-doc-color); + color: var(--tooltip-doc-color); font-style: italic; } #powerTip div.ttname a { - font-weight: bold; + font-weight: bold; } #powerTip a { @@ -1762,18 +2290,18 @@ tr.heading h2 { } #powerTip div.ttname { - font-weight: bold; + font-weight: bold; } #powerTip div.ttdeci { - color: var(--tooltip-declaration-color); + color: var(--tooltip-declaration-color); } #powerTip div { - margin: 0px; - padding: 0px; - font-size: 12px; - font-family: var(--font-family-tooltip); + margin: 0px; + padding: 0px; + font-size: 12px; + font-family: var(--font-family-tooltip); line-height: 16px; } @@ -1819,7 +2347,7 @@ tr.heading h2 { } #powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { - border-top-color: var(--tooltip-background-color); + border-top-color: var(--tooltip-arrow-background-color); border-width: 10px; margin: 0px -10px; } @@ -1847,7 +2375,7 @@ tr.heading h2 { } #powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { - border-bottom-color: var(--tooltip-background-color); + border-bottom-color: var(--tooltip-arrow-background-color); border-width: 10px; margin: 0px -10px; } @@ -1904,29 +2432,29 @@ tr.heading h2 { @media print { - #top { display: none; } - #side-nav { display: none; } - #nav-path { display: none; } - body { overflow:visible; } - h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } - .summary { display: none; } - .memitem { page-break-inside: avoid; } - #doc-content - { - margin-left:0 !important; - height:auto !important; - width:auto !important; - overflow:inherit; - display:inline; - } + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } } /* @group Markdown */ table.markdownTable { border-collapse:collapse; - margin-top: 4px; - margin-bottom: 4px; + margin-top: 4px; + margin-bottom: 4px; } table.markdownTable td, table.markdownTable th { @@ -1957,9 +2485,13 @@ th.markdownTableHeadCenter, td.markdownTableBodyCenter { text-align: center } -tt, code, kbd, samp +tt, code, kbd { - display: inline-block; + display: inline-block; +} +tt, code, kbd +{ + vertical-align: top; } /* @end */ @@ -1968,26 +2500,27 @@ u { } details>summary { - list-style-type: none; + list-style-type: none; } details > summary::-webkit-details-marker { - display: none; + display: none; } details>summary::before { - content: "\25ba"; - padding-right:4px; - font-size: 80%; + content: "\25ba"; + padding-right:4px; + font-size: 80%; } details[open]>summary::before { - content: "\25bc"; - padding-right:4px; - font-size: 80%; + content: "\25bc"; + padding-right:4px; + font-size: 80%; } -body { +:root { + scrollbar-width: thin; scrollbar-color: var(--scrollbar-thumb-color) var(--scrollbar-background-color); } diff --git a/api/doxygen.svg b/api/doxygen.svg index 6eafcf4..584faaf 100644 --- a/api/doxygen.svg +++ b/api/doxygen.svg @@ -1,4 +1,6 @@ + @@ -17,7 +19,7 @@ - + diff --git a/api/doxygen_crawl.html b/api/doxygen_crawl.html new file mode 100644 index 0000000..96b7db5 --- /dev/null +++ b/api/doxygen_crawl.html @@ -0,0 +1,60 @@ + + + +Validator / crawler helper + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/api/dynsections.js b/api/dynsections.js index f579fbf..0e15bd4 100644 --- a/api/dynsections.js +++ b/api/dynsections.js @@ -22,102 +22,170 @@ @licend The above is the entire license notice for the JavaScript code in this file */ -function toggleVisibility(linkObj) -{ - var base = $(linkObj).attr('id'); - var summary = $('#'+base+'-summary'); - var content = $('#'+base+'-content'); - var trigger = $('#'+base+'-trigger'); - var src=$(trigger).attr('src'); - if (content.is(':visible')===true) { - content.hide(); - summary.show(); - $(linkObj).addClass('closed').removeClass('opened'); - $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); - } else { - content.show(); - summary.hide(); - $(linkObj).removeClass('closed').addClass('opened'); - $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); - } - return false; -} -function updateStripes() -{ - $('table.directory tr'). - removeClass('even').filter(':visible:even').addClass('even'); - $('table.directory tr'). - removeClass('odd').filter(':visible:odd').addClass('odd'); +function toggleVisibility(linkObj) { + return dynsection.toggleVisibility(linkObj); } -function toggleLevel(level) -{ - $('table.directory tr').each(function() { - var l = this.id.split('_').length-1; - var i = $('#img'+this.id.substring(3)); - var a = $('#arr'+this.id.substring(3)); - if (l'); + // add vertical lines to other rows + $('span[class=lineno]').not(':eq(0)').append(''); + // add toggle controls to lines with fold divs + $('div[class=foldopen]').each(function() { + // extract specific id to use + const id = $(this).attr('id').replace('foldopen',''); + // extract start and end foldable fragment attributes + const start = $(this).attr('data-start'); + const end = $(this).attr('data-end'); + // replace normal fold span with controls for the first line of a foldable fragment + $(this).find('span[class=fold]:first').replaceWith(''); + // append div for folded (closed) representation + $(this).after(''); + // extract the first line from the "open" section to represent closed content + const line = $(this).children().first().clone(); + // remove any glow that might still be active on the original line + $(line).removeClass('glow'); + if (start) { + // if line already ends with a start marker (e.g. trailing {), remove it + $(line).html($(line).html().replace(new RegExp('\\s*'+start+'\\s*$','g'),'')); + } + // replace minus with plus symbol + $(line).find('span[class=fold]').addClass('plus').removeClass('minus'); + // append ellipsis + $(line).append(' '+start+''+end); + // insert constructed line into closed div + $('#foldclosed'+id).html(line); + }); + }, +}; /* @license-end */ diff --git a/api/files.html b/api/files.html index 4193a97..348a9c7 100644 --- a/api/files.html +++ b/api/files.html @@ -3,12 +3,13 @@ - + OpenSlide: File List + @@ -26,32 +27,35 @@ - + + +
    File List
    Here is a list of all documented files with brief descriptions:
    -
    [detail level 12]
    - - +
    [detail level 12]
      src
     openslide.hThe API for the OpenSlide library
    + +
     
    src
     
    openslide.h
    The API for the OpenSlide library
    +
    diff --git a/api/folderclosed.png b/api/folderclosed.png deleted file mode 100644 index 9ecedddf311039210fcc21b687be3e43b3118986..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 618 zcmV-w0+s!VP)w7Nz|#1V1pu!>PXcm2m7LP=mY8Q(XG8!1uYwgW^6s}?e);zj)5&S=oQrvJ zeetNNWuwcx(gp|ZWfNJf=2wj@W1i;$cwT$o_q>(diaeZ2WZ))T`8<=Fky+*6=Oy`s zGl5BGQd&YTnZx1lLo~)3A77N{=HHEsT1BR!zU$uUjObbY?st6*#fAVNf`~-kSC21` zFH0xN84Wr|&S?1D*L!jbOF*G%|<~thLv8)vfB(RR)Uap5JTf3<4q1(Vru1Rkr#Q zwAw9R8Y$@rgS8+_`jZ7`{90!XY{?OufTm}HZSUm}D{acxVDkcDg5wl{t`05=1!iW%16vv%o z;~ok+QqrisV11ln2LKF2t_pD-q#D@a3ovv*JjRIq#fLeKQdE&j$ebUwHffXagsB03&22pe`Pl?f?J)07*qoM6N<$ Ef`Q-}t^fc4 diff --git a/api/folderopen.png b/api/folderopen.png deleted file mode 100644 index cd4077d8730cc2c4a591311b25425b71c8dcbf5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 616 zcmV-u0+;=XP)HCD1AynmzfbT20HSbp ze=|o@vm}Y~nLPVs6|9Vf zTsp_rOq+fG^8OMlZ&w19M4myr(`Ic|rpi*bR0aFJipZz4aNX{E0D%>fX#2~yoG>P! zYh41(n-qv;@+NhYUzU#BeMisNKd!N}xD${lM6mUFOO6eWvDU(yDl6K@74!o7NoXG> zQE%0;ySST7u=#0I4rhnCYx)650+n&E8vjt_H?14&E$t-}Y#eXMQnu7T1OI!~S^mI8 zt|V%-8rWanPbOGDUYEs8k%N)`DzNgSp4GVhd5eSPg8)J7P4)+f3+}HdiZGVo;_d># z<05_i2Oi~Mn5K2;01pV0DlYr|Iq*-5x)VGHxGHAo&_TS0000 - + OpenSlide: Globals + @@ -26,22 +27,24 @@ - + + +
    Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:
    -

    - o -

    +
    diff --git a/api/globals_defs.html b/api/globals_defs.html index 4a7b5b8..e282738 100644 --- a/api/globals_defs.html +++ b/api/globals_defs.html @@ -3,12 +3,13 @@ - + OpenSlide: Globals + @@ -26,21 +27,24 @@ - + + +
      +
      Here is a list of all documented macros with links to the documentation:
      • OPENSLIDE_PROPERTY_NAME_BACKGROUND_COLOR : openslide.h
      • +
      • OPENSLIDE_PROPERTY_NAME_BARCODE : openslide.h
      • OPENSLIDE_PROPERTY_NAME_BOUNDS_HEIGHT : openslide.h
      • OPENSLIDE_PROPERTY_NAME_BOUNDS_WIDTH : openslide.h
      • OPENSLIDE_PROPERTY_NAME_BOUNDS_X : openslide.h
      • @@ -56,7 +60,8 @@
    +
    diff --git a/api/globals_func.html b/api/globals_func.html index afa9cb7..129290a 100644 --- a/api/globals_func.html +++ b/api/globals_func.html @@ -3,12 +3,13 @@ - + OpenSlide: Globals + @@ -26,20 +27,22 @@ - + + +
      +
      Here is a list of all documented functions with links to the documentation:
    +
    diff --git a/api/globals_type.html b/api/globals_type.html index 78d23d0..24cbe47 100644 --- a/api/globals_type.html +++ b/api/globals_type.html @@ -3,12 +3,13 @@ - + OpenSlide: Globals + @@ -26,27 +27,30 @@ - + + +
      +
      Here is a list of all documented typedefs with links to the documentation:
    +
    diff --git a/api/index.html b/api/index.html index 6109248..c9641ca 100644 --- a/api/index.html +++ b/api/index.html @@ -3,12 +3,13 @@ - + OpenSlide: OpenSlide + @@ -26,28 +27,32 @@ - + + +
    OpenSlide

    OpenSlide is a C library that provides a simple interface to read whole-slide images (also known as virtual slides). See the OpenSlide website for more details.

    +
    +
    diff --git a/api/jquery.js b/api/jquery.js index 1dffb65..875ada7 100644 --- a/api/jquery.js +++ b/api/jquery.js @@ -1,17 +1,143 @@ /*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
    ",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp( +"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType +}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c +)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){ +return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll( +":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id") +)&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push( +"\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test( +a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null, +null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne +).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for( +var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function ve(e,t){var n; +return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0, +r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r] +,C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
    ",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each( +function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r, +"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})} +),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each( +"blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=y(e||this.defaultElement||this)[0],this.element=y(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=y(),this.hoverable=y(),this.focusable=y(),this.classesElementLookup={},e!==this&&(y.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=y(e.style?e.ownerDocument:e.document||e),this.window=y(this.document[0].defaultView||this.document[0].parentWindow)),this.options=y.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:y.noop,_create:y.noop,_init:y.noop,destroy:function(){var i=this;this._destroy(),y.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:y.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return y.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=y.widget.extend({},this.options[t]),n=0;n
    "),i=e.children()[0];return y("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthx(D(s),D(n))?o.important="horizontal":o.important="vertical",p.using.call(this,t,o)}),h.offset(y.extend(l,{using:t}))})},y.ui.position={fit:{left:function(t,e){var i=e.within,s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,h=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),y.ui.plugin={add:function(t,e,i){var s,n=y.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;n").css({overflow:"hidden",position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),e.autoHide&&y(this.element).on("mouseenter",function(){e.disabled||(i._removeClass("ui-resizable-autohide"),i._handles.show())}).on("mouseleave",function(){e.disabled||i.resizing||(i._addClass("ui-resizable-autohide"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy(),this._addedHandles.remove();function t(t){y(t).removeData("resizable").removeData("ui-resizable").off(".resizable")}var e;return this.elementIsWrapper&&(t(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;case"aspectRatio":this._aspectRatio=!!e}},_setupHandles:function(){var t,e,i,s,n,o=this.options,h=this;if(this.handles=o.handles||(y(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=y(),this._addedHandles=y(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),i=this.handles.split(","),this.handles={},e=0;e"),this._addClass(n,"ui-resizable-handle "+s),n.css({zIndex:o.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.children(this.handles[t]).length||(this.element.append(n),this._addedHandles=this._addedHandles.add(n));this._renderAxis=function(t){var e,i,s;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=y(this.handles[e]),this._on(this.handles[e],{mousedown:h._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=y(this.handles[e],this.element),s=/sw|ne|nw|se|n|s/.test(e)?i.outerHeight():i.outerWidth(),i=["padding",/ne|nw|n/.test(e)?"Top":/se|sw|s/.test(e)?"Bottom":/^e$/.test(e)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add(this.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){h.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),h.axis=n&&n[1]?n[1]:"se")}),o.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._addedHandles.remove()},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)(i=y(this.handles[e])[0])!==t.target&&!y.contains(i,t.target)||(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s=this.options,n=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),s.containment&&(e+=y(s.containment).scrollLeft()||0,i+=y(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:n.width(),height:n.height()},this.originalSize=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()},this.sizeDiff={width:n.outerWidth()-n.width(),height:n.outerHeight()-n.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=y(".ui-resizable-"+this.axis).css("cursor"),y("body").css("cursor","auto"===s?this.axis+"-resize":s),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var e=this.originalMousePosition,i=this.axis,s=t.pageX-e.left||0,e=t.pageY-e.top||0,i=this._change[i];return this._updatePrevProperties(),i&&(e=i.apply(this,[t,s,e]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(e=this._updateRatio(e,t)),e=this._respectSize(e,t),this._updateCache(e),this._propagate("resize",t),e=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),y.isEmptyObject(e)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(s=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:o.sizeDiff.height,i=e?0:o.sizeDiff.width,e={width:o.helper.width()-i,height:o.helper.height()-s},i=parseFloat(o.element.css("left"))+(o.position.left-o.originalPosition.left)||null,s=parseFloat(o.element.css("top"))+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(y.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),y("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s=this.options,n={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0};(this._aspectRatio||t)&&(e=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,s=n.maxHeight*this.aspectRatio,t=n.maxWidth/this.aspectRatio,e>n.minWidth&&(n.minWidth=e),i>n.minHeight&&(n.minHeight=i),st.width,h=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,a=this.originalPosition.left+this.originalSize.width,r=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),h&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=a-e.minWidth),s&&l&&(t.left=a-e.maxWidth),h&&i&&(t.top=r-e.minHeight),n&&i&&(t.top=r-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];e<4;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;e").css({overflow:"hidden"}),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++e.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){y.ui.plugin.call(this,t,[e,this.ui()]),"resize"!==t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),y.ui.plugin.add("resizable","animate",{stop:function(e){var i=y(this).resizable("instance"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],"left")?0:i.sizeDiff.height,h=n?0:i.sizeDiff.width,n={width:i.size.width-h,height:i.size.height-o},h=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,o=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(y.extend(n,o&&h?{top:o,left:h}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};s&&s.length&&y(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),y.ui.plugin.add("resizable","containment",{start:function(){var i,s,n=y(this).resizable("instance"),t=n.options,e=n.element,o=t.containment,h=o instanceof y?o.get(0):/parent/.test(o)?e.parent().get(0):o;h&&(n.containerElement=y(h),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:y(document),left:0,top:0,width:y(document).width(),height:y(document).height()||document.body.parentNode.scrollHeight}):(i=y(h),s=[],y(["Top","Right","Left","Bottom"]).each(function(t,e){s[t]=n._num(i.css("padding"+e))}),n.containerOffset=i.offset(),n.containerPosition=i.position(),n.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},t=n.containerOffset,e=n.containerSize.height,o=n.containerSize.width,o=n._hasScroll(h,"left")?h.scrollWidth:o,e=n._hasScroll(h)?h.scrollHeight:e,n.parentData={element:h,left:t.left,top:t.top,width:o,height:e}))},resize:function(t){var e=y(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.position,o=e._aspectRatio||t.shiftKey,h={top:0,left:0},a=e.containerElement,t=!0;a[0]!==document&&/static/.test(a.css("position"))&&(h=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-h.left),o&&(e.size.height=e.size.width/e.aspectRatio,t=!1),e.position.left=i.helper?s.left:0),n.top<(e._helper?s.top:0)&&(e.size.height=e.size.height+(e._helper?e.position.top-s.top:e.position.top),o&&(e.size.width=e.size.height*e.aspectRatio,t=!1),e.position.top=e._helper?s.top:0),i=e.containerElement.get(0)===e.element.parent().get(0),n=/relative|absolute/.test(e.containerElement.css("position")),i&&n?(e.offset.left=e.parentData.left+e.position.left,e.offset.top=e.parentData.top+e.position.top):(e.offset.left=e.element.offset().left,e.offset.top=e.element.offset().top),n=Math.abs(e.sizeDiff.width+(e._helper?e.offset.left-h.left:e.offset.left-s.left)),s=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-h.top:e.offset.top-s.top)),n+e.size.width>=e.parentData.width&&(e.size.width=e.parentData.width-n,o&&(e.size.height=e.size.width/e.aspectRatio,t=!1)),s+e.size.height>=e.parentData.height&&(e.size.height=e.parentData.height-s,o&&(e.size.width=e.size.height*e.aspectRatio,t=!1)),t||(e.position.left=e.prevPosition.left,e.position.top=e.prevPosition.top,e.size.width=e.prevSize.width,e.size.height=e.prevSize.height)},stop:function(){var t=y(this).resizable("instance"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=y(t.helper),h=o.offset(),a=o.outerWidth()-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o}),t._helper&&!e.animate&&/static/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o})}}),y.ui.plugin.add("resizable","alsoResize",{start:function(){var t=y(this).resizable("instance").options;y(t.alsoResize).each(function(){var t=y(this);t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,i){var e=y(this).resizable("instance"),s=e.options,n=e.originalSize,o=e.originalPosition,h={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};y(s.alsoResize).each(function(){var t=y(this),s=y(this).data("ui-resizable-alsoresize"),n={},e=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];y.each(e,function(t,e){var i=(s[e]||0)+(h[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){y(this).removeData("ui-resizable-alsoresize")}}),y.ui.plugin.add("resizable","ghost",{start:function(){var t=y(this).resizable("instance"),e=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==y.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=y(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=y(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),y.ui.plugin.add("resizable","grid",{resize:function(){var t,e=y(this).resizable("instance"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,h=e.axis,a="number"==typeof i.grid?[i.grid,i.grid]:i.grid,r=a[0]||1,l=a[1]||1,u=Math.round((s.width-n.width)/r)*r,p=Math.round((s.height-n.height)/l)*l,d=n.width+u,c=n.height+p,f=i.maxWidth&&i.maxWidthd,s=i.minHeight&&i.minHeight>c;i.grid=a,m&&(d+=r),s&&(c+=l),f&&(d-=r),g&&(c-=l),/^(se|s|e)$/.test(h)?(e.size.width=d,e.size.height=c):/^(ne)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.top=o.top-p):/^(sw)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.left=o.left-u):((c-l<=0||d-r<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=y(e||this.defaultElement||this)[0],this.element=y(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=y(),this.hoverable=y(),this.focusable=y(),this.classesElementLookup={},e!==this&&(y.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t +){t.target===e&&this.destroy()}}),this.document=y(e.style?e.ownerDocument:e.document||e),this.window=y(this.document[0].defaultView||this.document[0].parentWindow)),this.options=y.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:y.noop,_create:y.noop,_init:y.noop,destroy:function(){var i=this;this._destroy(),y.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:y.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return y.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t +]=y.widget.extend({},this.options[t]),n=0;n
    "),i=e.children()[0];return y("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i}, +getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthx(D(s),D(n))?o.important="horizontal":o.important="vertical",p.using.call(this,t,o)}),h.offset(y.extend(l,{using:t}))})},y.ui.position={fit:{left:function(t,e){var i=e.within, +s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,h=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),y.ui.plugin={add:function(t,e,i){var s,n=y.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;n").css({overflow:"hidden",position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})), +this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),e.autoHide&&y(this.element).on("mouseenter",function(){e.disabled||(i._removeClass("ui-resizable-autohide"),i._handles.show())}).on("mouseleave",function(){e.disabled||i.resizing||(i._addClass("ui-resizable-autohide"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy(),this._addedHandles.remove();function t(t){y(t +).removeData("resizable").removeData("ui-resizable").off(".resizable")}var e;return this.elementIsWrapper&&(t(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;case"aspectRatio":this._aspectRatio=!!e}},_setupHandles:function(){var t,e,i,s,n,o=this.options,h=this;if(this.handles=o.handles||(y(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=y(),this._addedHandles=y(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),i=this.handles.split( +","),this.handles={},e=0;e"),this._addClass(n,"ui-resizable-handle "+s),n.css({zIndex:o.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.children(this.handles[t]).length||(this.element.append(n),this._addedHandles=this._addedHandles.add(n));this._renderAxis=function(t){var e,i,s;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=y(this.handles[e]),this._on(this.handles[e],{mousedown:h._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=y(this.handles[e],this.element),s=/sw|ne|nw|se|n|s/.test(e)?i.outerHeight():i.outerWidth(),i=["padding",/ne|nw|n/.test(e)?"Top":/se|sw|s/.test(e)?"Bottom":/^e$/.test(e)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add( +this.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){h.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),h.axis=n&&n[1]?n[1]:"se")}),o.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._addedHandles.remove()},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)(i=y(this.handles[e])[0])!==t.target&&!y.contains(i,t.target)||(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s=this.options,n=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),s.containment&&(e+=y(s.containment).scrollLeft()||0,i+=y(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{ +width:n.width(),height:n.height()},this.originalSize=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()},this.sizeDiff={width:n.outerWidth()-n.width(),height:n.outerHeight()-n.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=y(".ui-resizable-"+this.axis).css("cursor"),y("body").css("cursor","auto"===s?this.axis+"-resize":s),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var e=this.originalMousePosition,i=this.axis,s=t.pageX-e.left||0,e=t.pageY-e.top||0,i=this._change[i];return this._updatePrevProperties(),i&&(e=i.apply(this,[t,s,e]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(e=this._updateRatio(e,t)),e=this._respectSize(e,t),this._updateCache(e),this._propagate("resize",t),e=this._applyChanges(), +!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),y.isEmptyObject(e)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(s=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:o.sizeDiff.height,i=e?0:o.sizeDiff.width,e={width:o.helper.width()-i,height:o.helper.height()-s},i=parseFloat(o.element.css("left"))+(o.position.left-o.originalPosition.left)||null,s=parseFloat(o.element.css("top"))+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(y.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),y("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){ +this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s=this.options,n={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0};(this._aspectRatio||t)&&(e=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,s=n.maxHeight*this.aspectRatio,t=n.maxWidth/this.aspectRatio,e>n.minWidth&&(n.minWidth=e),i>n.minHeight&&(n.minHeight=i),st.width,h=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,a=this.originalPosition.left+this.originalSize.width,r=this.originalPosition.top+this.originalSize.height +,l=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),h&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=a-e.minWidth),s&&l&&(t.left=a-e.maxWidth),h&&i&&(t.top=r-e.minHeight),n&&i&&(t.top=r-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];e<4;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;e").css({overflow:"hidden"}),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++e.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e, +i){return y.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){y.ui.plugin.call(this,t,[e,this.ui()]),"resize"!==t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),y.ui.plugin.add("resizable","animate",{stop:function(e){var i=y(this).resizable("instance"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],"left")?0:i.sizeDiff.height,h=n?0:i.sizeDiff.width,n={width:i.size.width-h,height:i.size.height-o},h=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left +)||null,o=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(y.extend(n,o&&h?{top:o,left:h}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};s&&s.length&&y(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),y.ui.plugin.add("resizable","containment",{start:function(){var i,s,n=y(this).resizable("instance"),t=n.options,e=n.element,o=t.containment,h=o instanceof y?o.get(0):/parent/.test(o)?e.parent().get(0):o;h&&(n.containerElement=y(h),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:y(document),left:0,top:0,width:y(document).width(),height:y(document).height()||document.body.parentNode.scrollHeight}):(i=y(h),s=[],y(["Top","Right","Left","Bottom"]).each(function(t,e +){s[t]=n._num(i.css("padding"+e))}),n.containerOffset=i.offset(),n.containerPosition=i.position(),n.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},t=n.containerOffset,e=n.containerSize.height,o=n.containerSize.width,o=n._hasScroll(h,"left")?h.scrollWidth:o,e=n._hasScroll(h)?h.scrollHeight:e,n.parentData={element:h,left:t.left,top:t.top,width:o,height:e}))},resize:function(t){var e=y(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.position,o=e._aspectRatio||t.shiftKey,h={top:0,left:0},a=e.containerElement,t=!0;a[0]!==document&&/static/.test(a.css("position"))&&(h=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-h.left),o&&(e.size.height=e.size.width/e.aspectRatio,t=!1),e.position.left=i.helper?s.left:0),n.top<(e._helper?s.top:0)&&(e.size.height=e.size.height+(e._helper?e.position.top-s.top:e.position.top),o&&(e.size.width=e.size.height*e.aspectRatio,t=!1),e.position.top=e._helper?s.top:0), +i=e.containerElement.get(0)===e.element.parent().get(0),n=/relative|absolute/.test(e.containerElement.css("position")),i&&n?(e.offset.left=e.parentData.left+e.position.left,e.offset.top=e.parentData.top+e.position.top):(e.offset.left=e.element.offset().left,e.offset.top=e.element.offset().top),n=Math.abs(e.sizeDiff.width+(e._helper?e.offset.left-h.left:e.offset.left-s.left)),s=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-h.top:e.offset.top-s.top)),n+e.size.width>=e.parentData.width&&(e.size.width=e.parentData.width-n,o&&(e.size.height=e.size.width/e.aspectRatio,t=!1)),s+e.size.height>=e.parentData.height&&(e.size.height=e.parentData.height-s,o&&(e.size.width=e.size.height*e.aspectRatio,t=!1)),t||(e.position.left=e.prevPosition.left,e.position.top=e.prevPosition.top,e.size.width=e.prevSize.width,e.size.height=e.prevSize.height)},stop:function(){var t=y(this).resizable("instance"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=y(t.helper),h=o.offset(),a=o.outerWidth( +)-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o}),t._helper&&!e.animate&&/static/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o})}}),y.ui.plugin.add("resizable","alsoResize",{start:function(){var t=y(this).resizable("instance").options;y(t.alsoResize).each(function(){var t=y(this);t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,i){var e=y(this).resizable("instance"),s=e.options,n=e.originalSize,o=e.originalPosition,h={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};y(s.alsoResize).each(function(){var t=y(this),s=y(this).data("ui-resizable-alsoresize"),n={},e=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];y.each(e, +function(t,e){var i=(s[e]||0)+(h[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){y(this).removeData("ui-resizable-alsoresize")}}),y.ui.plugin.add("resizable","ghost",{start:function(){var t=y(this).resizable("instance"),e=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==y.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=y(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=y(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),y.ui.plugin.add("resizable","grid",{resize:function(){var t,e=y(this).resizable("instance"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,h=e.axis,a="number"==typeof i.grid?[i.grid,i.grid]:i.grid,r=a[0 +]||1,l=a[1]||1,u=Math.round((s.width-n.width)/r)*r,p=Math.round((s.height-n.height)/l)*l,d=n.width+u,c=n.height+p,f=i.maxWidth&&i.maxWidthd,s=i.minHeight&&i.minHeight>c;i.grid=a,m&&(d+=r),s&&(c+=l),f&&(d-=r),g&&(c-=l),/^(se|s|e)$/.test(h)?(e.size.width=d,e.size.height=c):/^(ne)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.top=o.top-p):/^(sw)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.left=o.left-u):((c-l<=0||d-r<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0=f[g]?0:Math.min(f[g],n));!a&&1=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right-1){ +targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se", +"n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if( +session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)} +closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if( +session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE, +function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset); +tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList, +finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight())); +return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")} +function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(), +elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight, +viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + */!function(a){function f(a,b){if(!(a.originalEvent.touches.length>1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b, +"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery); +/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 * http://www.smartmenus.org/ - * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
    ').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)), +mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend( +$.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy( +this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData( +"smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id" +).indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
    ').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?( +this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for( +var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){ +return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if(( +!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&( +this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0 +]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass( +"highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){ +t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]" +)||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){ +t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"), +a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i, +downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2) +)&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t +)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0), +canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}}, +rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})} +return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1, +bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); diff --git a/api/menu.js b/api/menu.js index b0b2693..15f9c52 100644 --- a/api/menu.js +++ b/api/menu.js @@ -22,15 +22,14 @@ @licend The above is the entire license notice for the JavaScript code in this file */ -function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { +function initMenu(relPath,searchEnabled,serverSide,searchPage,search,treeview) { function makeTree(data,relPath) { - var result=''; + let result=''; if ('children' in data) { result+='
      '; - for (var i in data.children) { - var url; - var link; - link = data.children[i].url; + for (let i in data.children) { + let url; + const link = data.children[i].url; if (link.substring(0,1)=='^') { url = link.substring(1); } else { @@ -44,13 +43,13 @@ function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { } return result; } - var searchBoxHtml; + let searchBoxHtml; if (searchEnabled) { if (serverSide) { searchBoxHtml='
      '+ '
      '+ '
       '+ + '" method="get">'+ ''+ @@ -61,8 +60,8 @@ function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { } else { searchBoxHtml='
      '+ ''+ - ' '+ + ''+ ''+ ''+ - ''+ + '
      '+ '
      '+ '
      '; } @@ -85,32 +83,29 @@ function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { '
      '); $('#main-nav').append(makeTree(menudata,relPath)); $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); - if (searchBoxHtml) { - $('#main-menu').append('
    • '); - } - var $mainMenuState = $('#main-menu-state'); - var prevWidth = 0; + $('#main-menu').append('
    • '); + const $mainMenuState = $('#main-menu-state'); + let prevWidth = 0; if ($mainMenuState.length) { - function initResizableIfExists() { - if (typeof initResizable==='function') initResizable(); + const initResizableIfExists = function() { + if (typeof initResizable==='function') initResizable(treeview); } // animate mobile menu - $mainMenuState.change(function(e) { - var $menu = $('#main-menu'); - var options = { duration: 250, step: initResizableIfExists }; + $mainMenuState.change(function() { + const $menu = $('#main-menu'); + let options = { duration: 250, step: initResizableIfExists }; if (this.checked) { - options['complete'] = function() { $menu.css('display', 'block') }; + options['complete'] = () => $menu.css('display', 'block'); $menu.hide().slideDown(options); } else { - options['complete'] = function() { $menu.css('display', 'none') }; + options['complete'] = () => $menu.css('display', 'none'); $menu.show().slideUp(options); } }); // set default menu visibility - function resetState() { - var $menu = $('#main-menu'); - var $mainMenuState = $('#main-menu-state'); - var newWidth = $(window).outerWidth(); + const resetState = function() { + const $menu = $('#main-menu'); + const newWidth = $(window).outerWidth(); if (newWidth!=prevWidth) { if ($(window).outerWidth()<768) { $mainMenuState.prop('checked',false); $menu.hide(); diff --git a/api/nav_f.png b/api/nav_f.png deleted file mode 100644 index e3b26dd3dfbc191fac0bbba3c1ea135543d04649..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 156 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQpuh!jv*C{Z|`mtZ8qR(dAK=0 zTFYK}LdwiFZDTlF6@15(U(A-@b=hoj>Eg1bZAEXjr$>}sY7siL z^X%?dQ@4hS>9cFkDLKWEcXEF1UCpID58My^-2JWo?ORr@?+P20*DT-zTF2n&>gTe~ HDWM4f5TZRx diff --git a/api/nav_fd.png b/api/nav_fd.png deleted file mode 100644 index 6074d0099bde75e558cc14a20700212d2f0af8e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 164 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQrVs^jv*C{Z|8b*9X8-`Nj-mx zJ9?ArbXN0)y^|*>fBm;T!>;MwtqH<5Y$kgy%C6WudpWi8pB4Qa+aGkk2)c7Fa=T2;-rxKGf85P@ua#SEmfP_N PptTI1u6{1-oD!M<(&s^S diff --git a/api/nav_g.png b/api/nav_g.png deleted file mode 100644 index 2093a237a94f6c83e19ec6e5fd42f7ddabdafa81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrB!3HFm1ilyoDK$?Q$B+ufw|5PB85lU25BhtE tr?otc=hd~V+ws&_A@j8Fiv!K1|%O$WD@{Vww^AIAr*{o=WgU=FyLT0zh>%L znFD9%Xe&1P8eGe4seWQv$l7pUpfr|2wrG)X?yQ~|hP+MuD~00Q4X?iD-CE2yJ&@ab QFVG+cPgg&ebxsLQ00jFZfB*mh diff --git a/api/openslide_8h.html b/api/openslide_8h.html index ee4c202..aad90be 100644 --- a/api/openslide_8h.html +++ b/api/openslide_8h.html @@ -3,12 +3,13 @@ - + OpenSlide: openslide.h File Reference + @@ -26,22 +27,24 @@
      - + +
    +
    @@ -58,159 +61,124 @@

    Go to the source code of this file.

    - - - + - + - - + + + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + -

    +

    Macros

    Predefined Properties

    Some predefined properties.

    +
    Predefined Properties

    Some predefined properties.

    #define OPENSLIDE_PROPERTY_NAME_BACKGROUND_COLOR   "openslide.background-color"
    #define OPENSLIDE_PROPERTY_NAME_BACKGROUND_COLOR   "openslide.background-color"
     The name of the property containing a slide's background color, if any.
     
    #define OPENSLIDE_PROPERTY_NAME_BOUNDS_HEIGHT   "openslide.bounds-height"
    #define OPENSLIDE_PROPERTY_NAME_BARCODE   "openslide.barcode"
     The name of the property containing a slide's barcode, if any.
    #define OPENSLIDE_PROPERTY_NAME_BOUNDS_HEIGHT   "openslide.bounds-height"
     The name of the property containing the height of the rectangle bounding the non-empty region of the slide, if available.
     
    #define OPENSLIDE_PROPERTY_NAME_BOUNDS_WIDTH   "openslide.bounds-width"
    #define OPENSLIDE_PROPERTY_NAME_BOUNDS_WIDTH   "openslide.bounds-width"
     The name of the property containing the width of the rectangle bounding the non-empty region of the slide, if available.
     
    #define OPENSLIDE_PROPERTY_NAME_BOUNDS_X   "openslide.bounds-x"
    #define OPENSLIDE_PROPERTY_NAME_BOUNDS_X   "openslide.bounds-x"
     The name of the property containing the X coordinate of the rectangle bounding the non-empty region of the slide, if available.
     
    #define OPENSLIDE_PROPERTY_NAME_BOUNDS_Y   "openslide.bounds-y"
    #define OPENSLIDE_PROPERTY_NAME_BOUNDS_Y   "openslide.bounds-y"
     The name of the property containing the Y coordinate of the rectangle bounding the non-empty region of the slide, if available.
     
    #define OPENSLIDE_PROPERTY_NAME_COMMENT   "openslide.comment"
    #define OPENSLIDE_PROPERTY_NAME_COMMENT   "openslide.comment"
     The name of the property containing a slide's comment, if any.
     
    #define OPENSLIDE_PROPERTY_NAME_ICC_SIZE   "openslide.icc-size"
    #define OPENSLIDE_PROPERTY_NAME_ICC_SIZE   "openslide.icc-size"
     The name of the property containing the size of a slide's ICC color profile, if any.
     
    #define OPENSLIDE_PROPERTY_NAME_MPP_X   "openslide.mpp-x"
    #define OPENSLIDE_PROPERTY_NAME_MPP_X   "openslide.mpp-x"
     The name of the property containing the number of microns per pixel in the X dimension of level 0, if known.
     
    #define OPENSLIDE_PROPERTY_NAME_MPP_Y   "openslide.mpp-y"
    #define OPENSLIDE_PROPERTY_NAME_MPP_Y   "openslide.mpp-y"
     The name of the property containing the number of microns per pixel in the Y dimension of level 0, if known.
     
    #define OPENSLIDE_PROPERTY_NAME_OBJECTIVE_POWER   "openslide.objective-power"
    #define OPENSLIDE_PROPERTY_NAME_OBJECTIVE_POWER   "openslide.objective-power"
     The name of the property containing a slide's objective power, if known.
     
    #define OPENSLIDE_PROPERTY_NAME_QUICKHASH1   "openslide.quickhash-1"
    #define OPENSLIDE_PROPERTY_NAME_QUICKHASH1   "openslide.quickhash-1"
     The name of the property containing the "quickhash-1" sum.
     
    #define OPENSLIDE_PROPERTY_NAME_VENDOR   "openslide.vendor"
    #define OPENSLIDE_PROPERTY_NAME_VENDOR   "openslide.vendor"
     The name of the property containing an identification of the vendor.
     
    - - + - - + -

    +

    Typedefs

    typedef struct _openslide openslide_t
    typedef struct _openslide openslide_t
     The main OpenSlide type.
     
    typedef struct _openslide_cache openslide_cache_t
    typedef struct _openslide_cache openslide_cache_t
     An OpenSlide tile cache.
     
    - - - + - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - - + - + - - - + - + - - + - - - + - + - - + - - + - - + - - + - - - + - + - - + - - + - - - + - + -

    +

    Functions

    Basic Usage

    Opening, reading, and closing whole slide images.

    +
    Basic Usage

    Opening, reading, and closing whole slide images.

    const char * openslide_detect_vendor (const char *filename)
    const char * openslide_detect_vendor (const char *filename)
     Quickly determine whether a whole slide image is recognized.
     
    openslide_topenslide_open (const char *filename)
    openslide_topenslide_open (const char *filename)
     Open a whole slide image.
     
    int32_t openslide_get_level_count (openslide_t *osr)
    int32_t openslide_get_level_count (openslide_t *osr)
     Get the number of levels in the whole slide image.
     
    void openslide_get_level0_dimensions (openslide_t *osr, int64_t *w, int64_t *h)
    void openslide_get_level0_dimensions (openslide_t *osr, int64_t *w, int64_t *h)
     Get the dimensions of level 0 (the largest level).
     
    void openslide_get_level_dimensions (openslide_t *osr, int32_t level, int64_t *w, int64_t *h)
    void openslide_get_level_dimensions (openslide_t *osr, int32_t level, int64_t *w, int64_t *h)
     Get the dimensions of a level.
     
    double openslide_get_level_downsample (openslide_t *osr, int32_t level)
    double openslide_get_level_downsample (openslide_t *osr, int32_t level)
     Get the downsampling factor of a given level.
     
    int32_t openslide_get_best_level_for_downsample (openslide_t *osr, double downsample)
    int32_t openslide_get_best_level_for_downsample (openslide_t *osr, double downsample)
     Get the best level to use for displaying the given downsample.
     
    void openslide_read_region (openslide_t *osr, uint32_t *dest, int64_t x, int64_t y, int32_t level, int64_t w, int64_t h)
    void openslide_read_region (openslide_t *osr, uint32_t *dest, int64_t x, int64_t y, int32_t level, int64_t w, int64_t h)
     Copy pre-multiplied ARGB data from a whole slide image.
     
    int64_t openslide_get_icc_profile_size (openslide_t *osr)
    int64_t openslide_get_icc_profile_size (openslide_t *osr)
     Get the size in bytes of the ICC color profile for the whole slide image.
     
    void openslide_read_icc_profile (openslide_t *osr, void *dest)
    void openslide_read_icc_profile (openslide_t *osr, void *dest)
     Copy the ICC color profile from a whole slide image.
     
    void openslide_close (openslide_t *osr)
    void openslide_close (openslide_t *osr)
     Close an OpenSlide object.
     
    Error Handling

    A simple mechanism for detecting errors.

    +
    Error Handling

    A simple mechanism for detecting errors.

    Sometimes an unrecoverable error can occur that will invalidate the OpenSlide object. (This is typically something like an I/O error or data corruption.) When such an error happens in an OpenSlide object, the object will move terminally into an error state.

    -

    While an object is in an error state, no OpenSlide functions will have any effect on it except for openslide_close(). Functions that are expected to return values will instead return an error value, typically something like NULL or -1. openslide_read_region() will clear its destination buffer instead of painting into it. openslide_get_error() will return a non-NULL string containing an error message. See the documentation for each function for details on what is returned in case of error.

    +

    While an object is in an error state, no OpenSlide functions will have any effect on it except for openslide_close(). Functions that are expected to return values will instead return an error value, typically something like NULL or -1. openslide_read_region() will clear its destination buffer instead of painting into it. openslide_get_error() will return a non-NULL string containing an error message. See the documentation for each function for details on what is returned in case of error.

    This style of error handling allows programs written in C to check for errors only when convenient, because the error state is terminal and the OpenSlide functions return harmlessly when there has been an error.

    If writing wrappers for OpenSlide in languages that support exceptions, it is recommended that the error state be checked after each call and converted into an exception for that language.

    const char * openslide_get_error (openslide_t *osr)
    const char * openslide_get_error (openslide_t *osr)
     Get the current error string.
     
    Properties

    Querying properties.

    +
    Properties

    Querying properties.

    Properties are string key-value pairs containing metadata about a whole slide image. These functions allow listing the available properties and obtaining their values.

    Some properties are officially documented and are expected to be stable; others are undocumented but may still be useful. Many properties are uninterpreted data gathered directly from the slide files. New properties may be added in future releases of OpenSlide.

    const char *const * openslide_get_property_names (openslide_t *osr)
    const char *const * openslide_get_property_names (openslide_t *osr)
     Get the NULL-terminated array of property names.
     
    const char * openslide_get_property_value (openslide_t *osr, const char *name)
    const char * openslide_get_property_value (openslide_t *osr, const char *name)
     Get the value of a single property.
     
    Associated Images

    Reading associated images.

    +
    Associated Images

    Reading associated images.

    Certain vendor-specific associated images may exist within a whole slide image, such as label and thumbnail images. Each associated image has a name, dimensions, and pixel data. These functions allow listing the available associated images and reading their contents.

    const char *const * openslide_get_associated_image_names (openslide_t *osr)
    const char *const * openslide_get_associated_image_names (openslide_t *osr)
     Get the NULL-terminated array of associated image names.
     
    void openslide_get_associated_image_dimensions (openslide_t *osr, const char *name, int64_t *w, int64_t *h)
    void openslide_get_associated_image_dimensions (openslide_t *osr, const char *name, int64_t *w, int64_t *h)
     Get the dimensions of an associated image.
     
    void openslide_read_associated_image (openslide_t *osr, const char *name, uint32_t *dest)
    void openslide_read_associated_image (openslide_t *osr, const char *name, uint32_t *dest)
     Copy pre-multiplied ARGB data from an associated image.
     
    int64_t openslide_get_associated_image_icc_profile_size (openslide_t *osr, const char *name)
    int64_t openslide_get_associated_image_icc_profile_size (openslide_t *osr, const char *name)
     Get the size in bytes of the ICC color profile for an associated image.
     
    void openslide_read_associated_image_icc_profile (openslide_t *osr, const char *name, void *dest)
    void openslide_read_associated_image_icc_profile (openslide_t *osr, const char *name, void *dest)
     Copy the ICC color profile from an associated image.
     
    Caching

    Managing the in-memory tile cache.

    +
    Caching

    Managing the in-memory tile cache.

    By default, each OpenSlide object has its own internal cache. These functions can be used to configure a cache with a custom size, which may be shared between multiple OpenSlide objects.

    openslide_cache_topenslide_cache_create (size_t capacity)
    openslide_cache_topenslide_cache_create (size_t capacity)
     Create a new tile cache, unconnected to any OpenSlide object.
     
    void openslide_set_cache (openslide_t *osr, openslide_cache_t *cache)
    void openslide_set_cache (openslide_t *osr, openslide_cache_t *cache)
     Attach a cache to the specified OpenSlide object, replacing the current cache.
     
    void openslide_cache_release (openslide_cache_t *cache)
    void openslide_cache_release (openslide_cache_t *cache)
     Release the cache.
     
    Miscellaneous

    Utility functions.

    +
    Miscellaneous

    Utility functions.

    const char * openslide_get_version (void)
    const char * openslide_get_version (void)
     Get the version of the OpenSlide library.
     
    -

    Detailed Description

    +

    Detailed Description

    The API for the OpenSlide library.

    -

    All functions except openslide_close() are thread-safe. See the openslide_close() documentation for its restrictions.

    -

    Macro Definition Documentation

    +

    All functions except openslide_close() are thread-safe. See the openslide_close() documentation for its restrictions.

    +

    Macro Definition Documentation

    ◆ OPENSLIDE_PROPERTY_NAME_BACKGROUND_COLOR

    @@ -227,6 +195,23 @@

    Since
    3.2.3

  • + + + +

    ◆ OPENSLIDE_PROPERTY_NAME_BARCODE

    + +
    +
    + + + + +
    #define OPENSLIDE_PROPERTY_NAME_BARCODE   "openslide.barcode"
    +
    + +

    The name of the property containing a slide's barcode, if any.

    +
    Since
    4.0.1
    +
    @@ -416,7 +401,7 @@

    Typedef Documentation

    +

    Typedef Documentation

    ◆ openslide_cache_t

    @@ -424,13 +409,13 @@

    - +
    typedef struct _openslide_cache openslide_cache_ttypedef struct _openslide_cache openslide_cache_t

    An OpenSlide tile cache.

    -

    An openslide_cache_t object can be used concurrently from multiple threads without locking. (But you must lock or otherwise use memory barriers when passing the object between threads.)

    +

    An openslide_cache_t object can be used concurrently from multiple threads without locking. (But you must lock or otherwise use memory barriers when passing the object between threads.)

    @@ -441,17 +426,17 @@

    - +
    typedef struct _openslide openslide_ttypedef struct _openslide openslide_t

    The main OpenSlide type.

    -

    An openslide_t object can be used concurrently from multiple threads without locking. (But you must lock or otherwise use memory barriers when passing the object between threads.)

    +

    An openslide_t object can be used concurrently from multiple threads without locking. (But you must lock or otherwise use memory barriers when passing the object between threads.)

    -

    Function Documentation

    +

    Function Documentation

    ◆ openslide_cache_create()

    @@ -459,17 +444,16 @@

    - + - - +
    openslide_cache_t * openslide_cache_create openslide_cache_t * openslide_cache_create (size_t capacity)size_t capacity)
    @@ -518,8 +509,7 @@

    void openslide_close ( - openslide_t *  - osr) + openslide_t * osr) @@ -534,6 +524,10 @@

    References openslide_close().

    + +

    Referenced by openslide_close().

    + @@ -545,16 +539,15 @@

    const char * openslide_detect_vendor ( - const char *  - filename) + const char * filename)

    Quickly determine whether a whole slide image is recognized.

    -

    If OpenSlide recognizes the file referenced by filename, return a string identifying the slide format vendor. This is equivalent to the value of the OPENSLIDE_PROPERTY_NAME_VENDOR property. Calling openslide_open() on this file will return a valid OpenSlide object or an OpenSlide object in error state.

    -

    Otherwise, return NULL. Calling openslide_open() on this file will also return NULL.

    +

    If OpenSlide recognizes the file referenced by filename, return a string identifying the slide format vendor. This is equivalent to the value of the OPENSLIDE_PROPERTY_NAME_VENDOR property. Calling openslide_open() on this file will return a valid OpenSlide object or an OpenSlide object in error state.

    +

    Otherwise, return NULL. Calling openslide_open() on this file will also return NULL.

    Parameters
    @@ -564,6 +557,10 @@

    Returns
    An identification of the format vendor for this file, or NULL.
    Since
    3.4.0
    +

    References openslide_detect_vendor().

    + +

    Referenced by openslide_detect_vendor().

    + @@ -575,47 +572,42 @@

    void openslide_get_associated_image_dimensions

    - - + - - + - - + - - - - - - - +
    filenameThe filename to check. On Windows, this must be in UTF-8.
    (openslide_tosr, openslide_t * osr,
    const char * name, const char * name,
    int64_t * w, int64_t * w,
    int64_t * h 
    )int64_t * h )

    Get the dimensions of an associated image.

    -

    This function returns the width and height of an associated image associated with a whole slide image. Once the dimensions are known, use openslide_read_associated_image() to read the image.

    +

    This function returns the width and height of an associated image associated with a whole slide image. Once the dimensions are known, use openslide_read_associated_image() to read the image.

    Parameters
    - +
    osrThe OpenSlide object.
    nameThe name of the desired associated image. Must be a valid name as given by openslide_get_associated_image_names().
    nameThe name of the desired associated image. Must be a valid name as given by openslide_get_associated_image_names().
    [out]wThe width of the associated image, or -1 if an error occurred.
    [out]hThe height of the associated image, or -1 if an error occurred.
    +

    References openslide_get_associated_image_dimensions().

    + +

    Referenced by openslide_get_associated_image_dimensions().

    +
    @@ -627,19 +619,12 @@

    int64_t openslide_get_associated_image_icc_profile_size ( - openslide_t *  - osr, + openslide_t * osr, - const char *  - name  - - - - ) - + const char * name )

    Returns
    -1 on error, 0 if no profile is available, otherwise the profile size in bytes.
    +

    References openslide_get_associated_image_icc_profile_size().

    + +

    Referenced by openslide_get_associated_image_icc_profile_size().

    + @@ -665,8 +654,7 @@

    const char *const * openslide_get_associated_image_names ( - openslide_t *  - osr) + openslide_t * osr) @@ -682,6 +670,10 @@

    Returns
    A NULL-terminated string array of associated image names, or an empty array if an error occurred.

    +

    References openslide_get_associated_image_names().

    + +

    Referenced by openslide_get_associated_image_names().

    + @@ -693,19 +685,12 @@

    int32_t openslide_get_best_level_for_downsample ( - openslide_t *  - osr, + openslide_t * osr, - double  - downsample  - - - - ) - + double downsample ) @@ -732,15 +721,14 @@

    const char * openslide_get_error ( - openslide_t *  - osr) + openslide_t * osr)

    Get the current error string.

    -

    For a given OpenSlide object, once this function returns a non-NULL value, the only useful operation on the object is to call openslide_close() to free its resources.

    +

    For a given OpenSlide object, once this function returns a non-NULL value, the only useful operation on the object is to call openslide_close() to free its resources.

    Parameters
    @@ -750,6 +738,10 @@

    Returns
    A string describing the original error that caused the problem, or NULL if no error has occurred.
    Since
    3.2.0
    +

    References openslide_get_error().

    + +

    Referenced by openslide_get_error().

    + @@ -761,8 +753,7 @@

    int64_t openslide_get_icc_profile_size

    - - +
    osrThe OpenSlide object.
    (openslide_tosr)openslide_t * osr)
    @@ -777,6 +768,10 @@

    Returns
    -1 on error, 0 if no profile is available, otherwise the profile size in bytes.

    +

    References openslide_get_icc_profile_size().

    + +

    Referenced by openslide_get_icc_profile_size().

    +
    @@ -788,25 +783,17 @@

    void openslide_get_level0_dimensions ( - openslide_t *  - osr, + openslide_t * osr, - int64_t *  - w, + int64_t * w, - int64_t *  - h  - - - - ) - + int64_t * h ) @@ -834,8 +825,7 @@

    int32_t openslide_get_level_count ( - openslide_t *  - osr) + openslide_t * osr) @@ -851,6 +841,10 @@

    Returns
    The number of levels, or -1 if an error occurred.
    Since
    3.3.0
    +

    References openslide_get_level_count().

    + +

    Referenced by openslide_get_level_count().

    + @@ -862,31 +856,22 @@

    void openslide_get_level_dimensions ( - openslide_t *  - osr, + openslide_t * osr, - int32_t  - level, + int32_t level, - int64_t *  - w, + int64_t * w, - int64_t *  - h  - - - - ) - + int64_t * h ) @@ -914,19 +903,12 @@

    double openslide_get_level_downsample ( - openslide_t *  - osr, + openslide_t * osr, - int32_t  - level  - - - - ) - + int32_t level ) @@ -953,8 +939,7 @@

    const char *const * openslide_get_property_names ( - openslide_t *  - osr) + openslide_t * osr) @@ -970,6 +955,10 @@

    Returns
    A NULL-terminated string array of property names, or an empty array if an error occurred.
    +

    References openslide_get_property_names().

    + +

    Referenced by openslide_get_property_names().

    + @@ -981,34 +970,31 @@

    const char * openslide_get_property_value ( - openslide_t *  - osr, + openslide_t * osr, - const char *  - name  - - - - ) - + const char * name )

    Get the value of a single property.

    -

    This function returns the value of the property given by name.

    +

    This function returns the value of the property given by name.

    Parameters
    - +
    osrThe OpenSlide object.
    nameThe name of the desired property. Must be a valid name as given by openslide_get_property_names().
    nameThe name of the desired property. Must be a valid name as given by openslide_get_property_names().
    Returns
    The value of the named property, or NULL if the property doesn't exist or an error occurred.
    +

    References openslide_get_property_value().

    + +

    Referenced by openslide_get_property_value().

    +
    @@ -1020,8 +1006,7 @@

    const char * openslide_get_version ( - void  - ) + void ) @@ -1031,6 +1016,10 @@

    Returns
    A string describing the OpenSlide version.
    Since
    3.3.0
    +

    References openslide_get_version().

    + +

    Referenced by openslide_get_version().

    + @@ -1040,17 +1029,16 @@

    - + - - +
    openslide_t * openslide_open openslide_t * openslide_open (const char * filename)const char * filename)

    Open a whole slide image.

    -

    This function can be expensive; avoid calling it unnecessarily. For example, a tile server should not call openslide_open() on every tile request. Instead, it should maintain a cache of OpenSlide objects and reuse them when possible.

    +

    This function can be expensive; avoid calling it unnecessarily. For example, a tile server should not call openslide_open() on every tile request. Instead, it should maintain a cache of OpenSlide objects and reuse them when possible.

    Parameters
    @@ -1059,6 +1047,10 @@

    Returns
    On success, a new OpenSlide object. If the file is not recognized by OpenSlide, NULL. If the file is recognized but an error occurred, an OpenSlide object in error state.
    +

    References openslide_open().

    + +

    Referenced by openslide_open().

    + @@ -1070,43 +1062,39 @@

    void openslide_read_associated_image

    - - + - - + - - - - - - - +
    filenameThe filename to open. On Windows, this must be in UTF-8.
    (openslide_tosr, openslide_t * osr,
    const char * name, const char * name,
    uint32_t * dest 
    )uint32_t * dest )

    Copy pre-multiplied ARGB data from an associated image.

    -

    This function reads and decompresses an associated image associated with a whole slide image. dest must be a valid pointer to enough memory to hold the image, at least (width * height * 4) bytes in length. Get the width and height with openslide_get_associated_image_dimensions().

    -

    If an error occurs or has occurred, then the memory pointed to by dest will be cleared. In versions prior to 4.0.0, this function did nothing if an error occurred.

    -

    The returned pixel data is in device color space. The associated image's ICC color profile, if available, can be read with openslide_read_associated_image_icc_profile() and used to transform the pixels for display.

    +

    This function reads and decompresses an associated image associated with a whole slide image. dest must be a valid pointer to enough memory to hold the image, at least (width * height * 4) bytes in length. Get the width and height with openslide_get_associated_image_dimensions().

    +

    If an error occurs or has occurred, then the memory pointed to by dest will be cleared. In versions prior to 4.0.0, this function did nothing if an error occurred.

    +

    The returned pixel data is in device color space. The associated image's ICC color profile, if available, can be read with openslide_read_associated_image_icc_profile() and used to transform the pixels for display.

    For more information about processing pre-multiplied pixel data, see the OpenSlide website.

    Parameters
    - +
    osrThe OpenSlide object.
    nameThe name of the desired associated image. Must be a valid name as given by openslide_get_associated_image_names().
    nameThe name of the desired associated image. Must be a valid name as given by openslide_get_associated_image_names().
    destThe destination buffer for the ARGB data.
    +

    References openslide_read_associated_image().

    + +

    Referenced by openslide_read_associated_image().

    +
    @@ -1118,41 +1106,37 @@

    void openslide_read_associated_image_icc_profile ( - openslide_t *  - osr, + openslide_t * osr, - const char *  - name, + const char * name, - void *  - dest  - - - - ) - + void * dest )

    Copy the ICC color profile from an associated image.

    -

    This function reads the ICC color profile from an associated image into the specified memory location. dest must be a valid pointer to enough memory to hold the profile. Get the profile size with openslide_get_associated_image_icc_profile_size().

    -

    If an error occurs or has occurred, then the memory pointed to by dest will be cleared.

    +

    This function reads the ICC color profile from an associated image into the specified memory location. dest must be a valid pointer to enough memory to hold the profile. Get the profile size with openslide_get_associated_image_icc_profile_size().

    +

    If an error occurs or has occurred, then the memory pointed to by dest will be cleared.

    Parameters
    - +
    osrThe OpenSlide object.
    nameThe name of the desired associated image. Must be a valid name as given by openslide_get_associated_image_names().
    nameThe name of the desired associated image. Must be a valid name as given by openslide_get_associated_image_names().
    destThe destination buffer for the ICC color profile.
    +

    References openslide_read_associated_image_icc_profile().

    + +

    Referenced by openslide_read_associated_image_icc_profile().

    +
    @@ -1164,26 +1148,19 @@

    void openslide_read_icc_profile ( - openslide_t *  - osr, + openslide_t * osr, - void *  - dest  - - - - ) - + void * dest )

    Copy the ICC color profile from a whole slide image.

    -

    This function reads the ICC color profile from the slide into the specified memory location. dest must be a valid pointer to enough memory to hold the profile. Get the profile size with openslide_get_icc_profile_size().

    -

    If an error occurs or has occurred, then the memory pointed to by dest will be cleared.

    +

    This function reads the ICC color profile from the slide into the specified memory location. dest must be a valid pointer to enough memory to hold the profile. Get the profile size with openslide_get_icc_profile_size().

    +

    If an error occurs or has occurred, then the memory pointed to by dest will be cleared.

    Parameters
    @@ -1192,6 +1169,10 @@

    References openslide_read_icc_profile().

    + +

    Referenced by openslide_read_icc_profile().

    + @@ -1203,56 +1184,44 @@

    void openslide_read_region

    - - + - - + - - + - - + - - + - - + - - - - - - - +
    osrThe OpenSlide object.
    (openslide_tosr, openslide_t * osr,
    uint32_t * dest, uint32_t * dest,
    int64_t x, int64_t x,
    int64_t y, int64_t y,
    int32_t level, int32_t level,
    int64_t w, int64_t w,
    int64_t h 
    )int64_t h )

    Copy pre-multiplied ARGB data from a whole slide image.

    -

    This function reads and decompresses a region of a whole slide image into the specified memory location. dest must be a valid pointer to enough memory to hold the region, at least (w * h * 4) bytes in length. If an error occurs or has occurred, then the memory pointed to by dest will be cleared.

    -

    The returned pixel data is in device color space. The slide's ICC color profile, if available, can be read with openslide_read_icc_profile() and used to transform the pixels for display.

    +

    This function reads and decompresses a region of a whole slide image into the specified memory location. dest must be a valid pointer to enough memory to hold the region, at least (w * h * 4) bytes in length. If an error occurs or has occurred, then the memory pointed to by dest will be cleared.

    +

    The returned pixel data is in device color space. The slide's ICC color profile, if available, can be read with openslide_read_icc_profile() and used to transform the pixels for display.

    For more information about processing pre-multiplied pixel data, see the OpenSlide website.

    Parameters
    @@ -1267,6 +1236,10 @@

    References openslide_read_region().

    + +

    Referenced by openslide_read_region().

    + @@ -1278,19 +1251,12 @@

    void openslide_set_cache

    - - + - - - - - - - +
    (openslide_tosr, openslide_t * osr,
    openslide_cache_tcache 
    )openslide_cache_t * cache )
    + diff --git a/api/openslide_8h_source.html b/api/openslide_8h_source.html index 7c722e8..f736520 100644 --- a/api/openslide_8h_source.html +++ b/api/openslide_8h_source.html @@ -3,12 +3,13 @@ - + OpenSlide: openslide.h Source File + @@ -26,22 +27,24 @@ - + + +
    openslide.h
    @@ -67,159 +70,161 @@
    19 * <http://www.gnu.org/licenses/>.
    20 *
    21 */
    -
    22
    -
    31#ifndef OPENSLIDE_OPENSLIDE_H_
    -
    32#define OPENSLIDE_OPENSLIDE_H_
    -
    33
    -
    34#include "openslide-features.h"
    -
    35
    -
    36#include <stddef.h>
    -
    37#include <stdint.h>
    -
    38#include <stdbool.h>
    -
    39
    -
    40#ifdef __cplusplus
    -
    41extern "C" {
    -
    42#endif
    -
    43
    -
    51typedef struct _openslide openslide_t;
    -
    52
    -
    60typedef struct _openslide_cache openslide_cache_t;
    -
    61
    -
    62
    -
    68
    -
    85OPENSLIDE_PUBLIC()
    -
    86const char *openslide_detect_vendor(const char *filename);
    -
    87
    -
    88
    -
    104OPENSLIDE_PUBLIC()
    -
    105openslide_t *openslide_open(const char *filename);
    -
    106
    -
    107
    -
    115OPENSLIDE_PUBLIC()
    - -
    117
    -
    118
    -
    128OPENSLIDE_PUBLIC()
    -
    129void openslide_get_level0_dimensions(openslide_t *osr, int64_t *w, int64_t *h);
    -
    130
    -
    131
    -
    143OPENSLIDE_PUBLIC()
    - -
    145 int64_t *w, int64_t *h);
    -
    146
    -
    147
    -
    157OPENSLIDE_PUBLIC()
    -
    158double openslide_get_level_downsample(openslide_t *osr, int32_t level);
    -
    159
    -
    160
    -
    169OPENSLIDE_PUBLIC()
    - -
    171 double downsample);
    -
    172
    -
    197OPENSLIDE_PUBLIC()
    - -
    199 uint32_t *dest,
    -
    200 int64_t x, int64_t y,
    -
    201 int32_t level,
    -
    202 int64_t w, int64_t h);
    -
    203
    -
    204
    -
    212OPENSLIDE_PUBLIC()
    - -
    214
    -
    215
    -
    230OPENSLIDE_PUBLIC()
    - -
    232
    -
    233
    -
    241OPENSLIDE_PUBLIC()
    - -
    244
    -
    286OPENSLIDE_PUBLIC()
    - -
    289
    -
    295
    -
    302#define OPENSLIDE_PROPERTY_NAME_BACKGROUND_COLOR "openslide.background-color"
    -
    303
    -
    310#define OPENSLIDE_PROPERTY_NAME_BOUNDS_HEIGHT "openslide.bounds-height"
    -
    311
    -
    318#define OPENSLIDE_PROPERTY_NAME_BOUNDS_WIDTH "openslide.bounds-width"
    -
    319
    -
    326#define OPENSLIDE_PROPERTY_NAME_BOUNDS_X "openslide.bounds-x"
    -
    327
    -
    334#define OPENSLIDE_PROPERTY_NAME_BOUNDS_Y "openslide.bounds-y"
    -
    335
    -
    341#define OPENSLIDE_PROPERTY_NAME_COMMENT "openslide.comment"
    -
    342
    -
    349#define OPENSLIDE_PROPERTY_NAME_ICC_SIZE "openslide.icc-size"
    -
    350
    -
    357#define OPENSLIDE_PROPERTY_NAME_MPP_X "openslide.mpp-x"
    -
    358
    -
    365#define OPENSLIDE_PROPERTY_NAME_MPP_Y "openslide.mpp-y"
    -
    366
    -
    372#define OPENSLIDE_PROPERTY_NAME_OBJECTIVE_POWER "openslide.objective-power"
    -
    373
    -
    379#define OPENSLIDE_PROPERTY_NAME_QUICKHASH1 "openslide.quickhash-1"
    -
    380
    -
    386#define OPENSLIDE_PROPERTY_NAME_VENDOR "openslide.vendor"
    -
    387
    -
    389
    -
    405
    -
    416OPENSLIDE_PUBLIC()
    - -
    418
    -
    430OPENSLIDE_PUBLIC()
    -
    431const char *openslide_get_property_value(openslide_t *osr, const char *name);
    -
    432
    -
    434
    -
    445
    -
    456OPENSLIDE_PUBLIC()
    - -
    458
    -
    472OPENSLIDE_PUBLIC()
    - -
    474 const char *name,
    -
    475 int64_t *w, int64_t *h);
    -
    476
    -
    477
    -
    504OPENSLIDE_PUBLIC()
    - -
    506 const char *name,
    -
    507 uint32_t *dest);
    -
    508
    -
    509
    -
    519OPENSLIDE_PUBLIC()
    - -
    521 const char *name);
    -
    522
    -
    523
    -
    540OPENSLIDE_PUBLIC()
    - -
    542 const char *name,
    -
    543 void *dest);
    -
    544
    -
    546
    -
    556
    -
    566OPENSLIDE_PUBLIC()
    - -
    568
    -
    577OPENSLIDE_PUBLIC()
    - -
    579
    -
    588OPENSLIDE_PUBLIC()
    - -
    590
    -
    592
    -
    598
    -
    605OPENSLIDE_PUBLIC()
    -
    606const char *openslide_get_version(void);
    -
    607
    -
    609
    -
    618#ifdef __cplusplus
    -
    619}
    -
    620#endif
    -
    621
    -
    622#endif
    +
    22
    +
    30
    +
    31#pragma once
    +
    32
    +
    33#include "openslide-features.h"
    +
    34
    +
    35#include <stddef.h>
    +
    36#include <stdint.h>
    +
    37#include <stdbool.h>
    +
    38
    +
    39#ifdef __cplusplus
    +
    40extern "C" {
    +
    41#endif
    +
    42
    +
    50typedef struct _openslide openslide_t;
    +
    51
    +
    59typedef struct _openslide_cache openslide_cache_t;
    +
    60
    +
    61
    +
    67
    +
    84OPENSLIDE_PUBLIC()
    +
    85const char *openslide_detect_vendor(const char *filename);
    +
    86
    +
    87
    +
    103OPENSLIDE_PUBLIC()
    +
    104openslide_t *openslide_open(const char *filename);
    +
    105
    +
    106
    +
    114OPENSLIDE_PUBLIC()
    + +
    116
    +
    117
    +
    127OPENSLIDE_PUBLIC()
    +
    128void openslide_get_level0_dimensions(openslide_t *osr, int64_t *w, int64_t *h);
    +
    129
    +
    130
    +
    142OPENSLIDE_PUBLIC()
    + +
    144 int64_t *w, int64_t *h);
    +
    145
    +
    146
    +
    156OPENSLIDE_PUBLIC()
    +
    157double openslide_get_level_downsample(openslide_t *osr, int32_t level);
    +
    158
    +
    159
    +
    168OPENSLIDE_PUBLIC()
    + +
    170 double downsample);
    +
    171
    +
    196OPENSLIDE_PUBLIC()
    + +
    198 uint32_t *dest,
    +
    199 int64_t x, int64_t y,
    +
    200 int32_t level,
    +
    201 int64_t w, int64_t h);
    +
    202
    +
    203
    +
    211OPENSLIDE_PUBLIC()
    + +
    213
    +
    214
    +
    229OPENSLIDE_PUBLIC()
    + +
    231
    +
    232
    +
    240OPENSLIDE_PUBLIC()
    + +
    243
    +
    272
    +
    285OPENSLIDE_PUBLIC()
    + +
    288
    +
    294
    +
    301#define OPENSLIDE_PROPERTY_NAME_BACKGROUND_COLOR "openslide.background-color"
    +
    302
    +
    308#define OPENSLIDE_PROPERTY_NAME_BARCODE "openslide.barcode"
    +
    309
    +
    316#define OPENSLIDE_PROPERTY_NAME_BOUNDS_HEIGHT "openslide.bounds-height"
    +
    317
    +
    324#define OPENSLIDE_PROPERTY_NAME_BOUNDS_WIDTH "openslide.bounds-width"
    +
    325
    +
    332#define OPENSLIDE_PROPERTY_NAME_BOUNDS_X "openslide.bounds-x"
    +
    333
    +
    340#define OPENSLIDE_PROPERTY_NAME_BOUNDS_Y "openslide.bounds-y"
    +
    341
    +
    347#define OPENSLIDE_PROPERTY_NAME_COMMENT "openslide.comment"
    +
    348
    +
    355#define OPENSLIDE_PROPERTY_NAME_ICC_SIZE "openslide.icc-size"
    +
    356
    +
    363#define OPENSLIDE_PROPERTY_NAME_MPP_X "openslide.mpp-x"
    +
    364
    +
    371#define OPENSLIDE_PROPERTY_NAME_MPP_Y "openslide.mpp-y"
    +
    372
    +
    378#define OPENSLIDE_PROPERTY_NAME_OBJECTIVE_POWER "openslide.objective-power"
    +
    379
    +
    385#define OPENSLIDE_PROPERTY_NAME_QUICKHASH1 "openslide.quickhash-1"
    +
    386
    +
    392#define OPENSLIDE_PROPERTY_NAME_VENDOR "openslide.vendor"
    +
    393
    +
    395
    +
    411
    +
    422OPENSLIDE_PUBLIC()
    + +
    424
    +
    436OPENSLIDE_PUBLIC()
    +
    437const char *openslide_get_property_value(openslide_t *osr, const char *name);
    +
    438
    +
    440
    +
    451
    +
    462OPENSLIDE_PUBLIC()
    + +
    464
    +
    478OPENSLIDE_PUBLIC()
    + +
    480 const char *name,
    +
    481 int64_t *w, int64_t *h);
    +
    482
    +
    483
    +
    510OPENSLIDE_PUBLIC()
    + +
    512 const char *name,
    +
    513 uint32_t *dest);
    +
    514
    +
    515
    +
    525OPENSLIDE_PUBLIC()
    + +
    527 const char *name);
    +
    528
    +
    529
    +
    546OPENSLIDE_PUBLIC()
    + +
    548 const char *name,
    +
    549 void *dest);
    +
    550
    +
    552
    +
    562
    +
    572OPENSLIDE_PUBLIC()
    + +
    574
    +
    583OPENSLIDE_PUBLIC()
    + +
    585
    +
    594OPENSLIDE_PUBLIC()
    + +
    596
    +
    598
    +
    604
    +
    611OPENSLIDE_PUBLIC()
    +
    612const char *openslide_get_version(void);
    +
    613
    +
    615
    +
    623
    +
    624#ifdef __cplusplus
    +
    625}
    +
    626#endif
    const char * openslide_get_version(void)
    Get the version of the OpenSlide library.
    const char *const * openslide_get_associated_image_names(openslide_t *osr)
    Get the NULL-terminated array of associated image names.
    void openslide_read_region(openslide_t *osr, uint32_t *dest, int64_t x, int64_t y, int32_t level, int64_t w, int64_t h)
    Copy pre-multiplied ARGB data from a whole slide image.
    @@ -236,9 +241,9 @@
    double openslide_get_level_downsample(openslide_t *osr, int32_t level)
    Get the downsampling factor of a given level.
    openslide_cache_t * openslide_cache_create(size_t capacity)
    Create a new tile cache, unconnected to any OpenSlide object.
    void openslide_read_associated_image(openslide_t *osr, const char *name, uint32_t *dest)
    Copy pre-multiplied ARGB data from an associated image.
    -
    struct _openslide_cache openslide_cache_t
    An OpenSlide tile cache.
    Definition: openslide.h:60
    +
    struct _openslide_cache openslide_cache_t
    An OpenSlide tile cache.
    Definition openslide.h:59
    void openslide_cache_release(openslide_cache_t *cache)
    Release the cache.
    -
    struct _openslide openslide_t
    The main OpenSlide type.
    Definition: openslide.h:51
    +
    struct _openslide openslide_t
    The main OpenSlide type.
    Definition openslide.h:50
    const char * openslide_get_error(openslide_t *osr)
    Get the current error string.
    int32_t openslide_get_best_level_for_downsample(openslide_t *osr, double downsample)
    Get the best level to use for displaying the given downsample.
    void openslide_read_icc_profile(openslide_t *osr, void *dest)
    Copy the ICC color profile from a whole slide image.
    @@ -248,7 +253,8 @@
    + diff --git a/api/splitbar.png b/api/splitbar.png deleted file mode 100644 index f058f0c26b5352281fae5d166a98e870ba88e7cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 300 zcmeAS@N?(olHy`uVBq!ia0vp^Yzz!63>-{AmhX=Jf@Vhig`?d60Q%8 zbAxQ-{AmhX=Jf@VhhFMbsC0s9x zs=78!c-DS>sX!3xrAU=hnWj=MZS@J99Os;lzY-R)VHTKOd-J=tSh_%dfBWN?w=cgu z{PNk~vsVjCf4=*~`=(#XC$L4c%fMA|nZ_Xz*BOgAf<+R$a0p)9uWbP0l+XkKD?W0M diff --git a/api/sync_off.png b/api/sync_off.png deleted file mode 100644 index 93fc12d84a8de34189d2fa47db62c0dd87ca65f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 846 zcmV-U1F`&xP)TXA?Oe3J}vCJvanIDn&`4=mPx4yhxv~) z+#WWw>zjWDum$vGZ;M%T1Q&%5AelSW4PYzHnFe4dOI#5SO|V78nl2tqU_7m*tc6p-Q=~i7fq0beD5b_%Lv>L#evdzP z{YcRfLSC&N@#b_mX)I|ZQW2RmCtDLZw3m~S1F)g%zv&VuVI%;_+-dG*YpHmtL+PLB zr@`OA(ZEq49icj2<$aizG7Bvb!QF)}p*utqQ^NWH(F zfxiZrdu`4u5RU_zKs#FGVg<^&DrCY|=9lMf3!u)y%IXSlSKk68d#Hz%nV?wwA$9<4 z0p0$(fqylN-9O?Sz!tfr4^KYPZVFvq9~L{nr};r#ixo|qL;tk+UStD&1l?Shtq->z zIMy~EJ$!U)2W^g3fMj>0FQ$76h{t-zh($07*qoM6N<$f+0nXf&c&j diff --git a/api/sync_on.png b/api/sync_on.png deleted file mode 100644 index b83ce0b195b4f976346187631b7086144d94208c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 836 zcmV-K1H1f*P)2o@p; zT!*P3rKk8j#nxsTWXz6Nl3m3T#TTa=N;5w`oZ zJOJKtR1+Kk98p(N$H~T%)NiQ=SXaOwFq1TFX#mL7stL?lwyvhiCWb#7rovaT))uLV z(DhLl-Jx#Nk7>PW#^?$6kmtz*>HXbv=Uu==3s zQ1u}iD|F|uFOT7&v#yh&h9L@b3ZGb$tqBb42W9zX0RM|W*N@lmuBk-VZIB=WRe1J0aZm+fE{!3IVKh-NF)VwO|6!y& zLhR!hMLD{hVe;N2GY@9~JAx%aM)!=G_qxia?oTlrp9LJTpr7bA;E4Ih^Nh`p5q}ZS zT2$6N>FCZcoOkP7uiH8T{XD-5AK(a|*GK=ZewLmuF}*Ym*by!Z(^lKY_#fju`Nx`5 z0EfMrKyP%DTic*AR!2f6&ii!bDPV`rL1Hz*o7Fb}Zf@yeWhJN)cSI?`2GG*i0{+d~ z?EVtp0Bn%&we!pq?TV;O?dJgh)lcF~dL00c_)44;B>*2li|dE<&eIPZ$0|)7K3djc zmtz$m)AiJgX-xrkWIG=3iZ6w3k)MkeQJy+TG~o*^0WIECr{?zt$n+M~L8zTkxwV(FRy)jEX0<_Xywf}_Z8lhPM!L`WXF4(*tb{j i{<&Ri{9sp0fKAjTM*T38`>1lC z<>2A37pL#b%9(1lq;yktRkv(XX5xlmmHN65bDQ3s*L61c`2V7C5C5C%eI-k;Rjs=b zC+)=9k=`P9G-%qgw4*U;K9#FD1rvQ18*KEboqY4x=6CxKWR#Vu{keSD^*ig1(~`gM TdNim5t!D6a^>bP0l+XkK=Nd%@ diff --git a/api/tab_bd.png b/api/tab_bd.png deleted file mode 100644 index 78e85c538050a9b758137c852a7ccf680e3e8aa3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 164 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QrVs^jv*C{Z|4Sb9WoGbF*nX+ zQj<1&8=tvaNr^-5@bCK`KA*3~Jvy5_Bb8tAcDeJG4n^KMcEZQMpZK*Zwp!wCrq1?5 zMfz7(JJmVGPOUt-yLP#yqYDTB4(3Y*1s0y||DH#0RxR3Zm?2RAvA*{S+uln;T@^rU O89ZJ6T-G@yGywp%{ybIy diff --git a/api/tab_h.png b/api/tab_h.png deleted file mode 100644 index 25217dbd577503447c45f8dd9faa35a584ddf34c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!Qstg5jv*C{Z}0BqZ8i{Sd-!>; zm&-x3k~~R<+kZGX1vOn~-B7rev?OP;a_qER3J_qbILu$_YmyK1E0Q2jA`Dp4+wv i?3mkq*>cDE-|}~sD3v{9?&1YHgu&C*&t;ucLK6UHqe;*J diff --git a/api/tab_sd.png b/api/tab_sd.png deleted file mode 100644 index 22945594a6b42d7c80248623303b2443ae0032c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 179 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QdOQVjv*C{Z|}Zcbx1+xz(f0g z2JMT^J`HjYaFkbCv_N9-h2FWd?M=&6&)1&#VQy5z_G))feCWyj0rOfvX*@BU{C?)Y zYuZ1#Ue5BEe$w*d++C42ZnvDRxqmy{VEuFLvAJBh?6!!Ud24jft~%(_94WQsvX{#O fMloS#uhsJA|F|`TxjxnbUBTe#>gTe~DWM4fEaFEO diff --git a/api/tabs.css b/api/tabs.css index 71c8a47..84f33ae 100644 --- a/api/tabs.css +++ b/api/tabs.css @@ -1 +1 @@ -.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:var(--nav-menu-button-color);-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-image:var(--nav-gradient-image)}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:var(--font-family-nav);font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:var(--nav-text-normal-shadow);color:var(--nav-text-normal-color);outline:0}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:var(--nav-menu-toggle-color);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:var(--nav-menu-background-color)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:var(--nav-menu-background-color);background-image:none}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:var(--nav-gradient-image);line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:var(--nav-text-normal-color) transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:var(--nav-separator-image);background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a:hover span.sub-arrow{border-color:var(--nav-text-hover-color) transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent var(--nav-menu-background-color) transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:var(--nav-menu-background-color);-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent var(--nav-menu-foreground-color);border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:var(--nav-menu-foreground-color);background-image:none;border:0 !important;color:var(--nav-menu-foreground-color);background-image:none}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent var(--nav-text-hover-color)}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:var(--nav-menu-background-color);height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent var(--nav-menu-foreground-color) transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:var(--nav-menu-foreground-color) transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:var(--nav-gradient-image)}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:var(--nav-menu-background-color)}} \ No newline at end of file +.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:var(--nav-menu-button-color);-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-color:var(--nav-menu-background-color)}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:var(--font-family-nav);font-size:13px;line-height:36px;text-decoration:none;color:var(--nav-text-normal-color);outline:0}.sm-dox a:hover{background-color:var(--nav-menu-active-bg);border-radius:5px}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:var(--nav-menu-background-color)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:var(--nav-menu-background-color);background-image:none}.sm-dox ul a:hover{background-color:var(--nav-menu-active-bg);border-radius:5px}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-color:var(--nav-menu-background-color);line-height:36px}.sm-dox a span.sub-arrow{top:15px;right:10px;box-sizing:content-box;padding:0;margin:0;display:inline-block;width:5px;height:5px;background-color:var(--nav-menu-background-color);border-right:2px solid var(--nav-arrow-color);border-bottom:2px solid var(--nav-arrow-color);transform:rotate(45deg);-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 6px}.sm-dox a:hover{background-color:var(--nav-menu-active-bg);border-radius:5px !important}.sm-dox a:hover span.sub-arrow{background-color:var(--nav-menu-active-bg);border-right:2px solid var(--nav-arrow-selected-color);border-bottom:2px solid var(--nav-arrow-selected-color)}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0;padding:3px}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent var(--nav-menu-background-color) transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:var(--nav-menu-background-color);-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{transform:rotate(-45deg)}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:var(--nav-menu-foreground-color);background-image:none;border:0 !important}.sm-dox ul a:hover{background-color:var(--nav-menu-active-bg);border-radius:5px}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:var(--nav-menu-background-color);height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent var(--nav-menu-foreground-color) transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:var(--nav-menu-foreground-color) transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:6px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:6px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:var(--nav-menu-background-color)}}