diff -Nru phpmyadmin-5.1.3+dfsg1/babel.config.json phpmyadmin-5.1.4+dfsg1/babel.config.json --- phpmyadmin-5.1.3+dfsg1/babel.config.json 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/babel.config.json 2022-05-11 03:26:08.000000000 +0000 @@ -1,3 +1,4 @@ { - "presets": ["@babel/preset-env"] + "presets": ["@babel/preset-env"], + "sourceType": "script" } diff -Nru phpmyadmin-5.1.3+dfsg1/ChangeLog phpmyadmin-5.1.4+dfsg1/ChangeLog --- phpmyadmin-5.1.3+dfsg1/ChangeLog 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/ChangeLog 2022-05-11 03:26:08.000000000 +0000 @@ -1,6 +1,26 @@ phpMyAdmin - ChangeLog ====================== +5.1.4 (2022-05-10) +- issue #17287 Fixed sorting the database list with "statistics" enabled on "Data" column creates a PHP type error +- issue #17368 Fix for invalid cache when losing access to config storage after it being cached +- issue #17387 Fix session cookie not respecting the CookieSameSite configuration directive in PHP 7.2 +- issue #16769 Fix create index form accepting too many columns +- issue #16816 Disable editing to system schemas +- issue #16853 Add better error handling when IndexedDB is not working +- issue Fixed incorrect escaping of special MySQL characters on some pages +- issue #17188 Fix GIS visualization with an edited query +- issue #17418 Remove the use of the deprecated `strftime` function in OpenDocument exports +- issue #17111 Enable tabindex recompute on preview button while insert new rows +- issue #17474 Fix invalid SQL generated when PRIMARY/UNIQUE key contains a POINT column +- issue #17484 Fix setup's CSS not loading when the URL doesn't have a trailing slash +- issue #17494 Remove jQuery SVG JavaScript dependency +- issue #17335 Fix column visibility dropdown when the column name is too long +- issue #17445 Fix issue when exporting using Firefox or Safari on PHP 8.1.4 +- issue Update JavaScript dependencies +- issue #17428 Fix case where errors were thrown when browsing a table +- issue #17508 Fix UI issue when user accounts page has the initials navigation bar + 5.1.3 (2022-02-10) - issue #17308 Fix broken pagination links in the navigation sidebar - issue #17331 Fix MariaDB has no support for system variable "disabled_storage_engines" diff -Nru phpmyadmin-5.1.3+dfsg1/composer.json phpmyadmin-5.1.4+dfsg1/composer.json --- phpmyadmin-5.1.3+dfsg1/composer.json 2022-02-11 04:20:19.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/composer.json 2022-05-11 03:26:09.000000000 +0000 @@ -86,7 +86,7 @@ "php-webdriver/webdriver": "^1.11", "phpmyadmin/coding-standard": "^2.1.1", "phpstan/extension-installer": "^1.1", - "phpstan/phpstan": "^1.4.5", + "phpstan/phpstan": "^1.4.8", "phpstan/phpstan-phpunit": "^1.0", "phpunit/phpunit": "^7.5 || ^8.0 || ^9.0", "pragmarx/google2fa-qrcode": "^1.0.1", @@ -94,7 +94,7 @@ "symfony/finder": "^4.4", "symfony/twig-bridge": "^4.4", "tecnickcom/tcpdf": "^6.4.4", - "vimeo/psalm": "^4.19" + "vimeo/psalm": "^4.22" }, "extra": { "branch-alias": { @@ -102,19 +102,22 @@ } }, "scripts": { - "phpcbf": "phpcbf", - "phpcs": "phpcs", - "phpstan": "phpstan analyse", - "psalm": "psalm", - "phpunit": "phpunit --color=always", + "phpcbf": "@php phpcbf", + "phpcs": "@php phpcs", + "phpstan": "@php phpstan analyse", + "psalm": "@php psalm", + "phpunit": "@php phpunit --color=always", "test": [ "@phpcs", "@phpstan", "@psalm", "@phpunit" ], - "update:baselines": "phpstan analyse --generate-baseline && psalm --set-baseline=psalm-baseline.xml", - "twig-lint": "php scripts/console lint:twig templates --ansi --show-deprecations" + "update:baselines": [ + "@php phpstan analyse --generate-baseline", + "@php psalm --set-baseline=psalm-baseline.xml" + ], + "twig-lint": "@php scripts/console lint:twig templates --ansi --show-deprecations" }, "config":{ "sort-packages": true, diff -Nru phpmyadmin-5.1.3+dfsg1/composer.lock phpmyadmin-5.1.4+dfsg1/composer.lock --- phpmyadmin-5.1.3+dfsg1/composer.lock 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/composer.lock 2022-05-11 03:26:08.000000000 +0000 @@ -4,20 +4,20 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "1a2c83ef2c26c5eb715b7581438df6a1", + "content-hash": "874bcc1f136099ae0b054f35062d66c8", "packages": [ { "name": "bacon/bacon-qr-code", - "version": "2.0.6", + "version": "2.0.7", "source": { "type": "git", "url": "https://github.com/Bacon/BaconQrCode.git", - "reference": "0069435e2a01a57193b25790f105a5d3168653c1" + "reference": "d70c840f68657ce49094b8d91f9ee0cc07fbf66c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Bacon/BaconQrCode/zipball/0069435e2a01a57193b25790f105a5d3168653c1", - "reference": "0069435e2a01a57193b25790f105a5d3168653c1", + "url": "https://api.github.com/repos/Bacon/BaconQrCode/zipball/d70c840f68657ce49094b8d91f9ee0cc07fbf66c", + "reference": "d70c840f68657ce49094b8d91f9ee0cc07fbf66c", "shasum": "" }, "require": { @@ -56,9 +56,9 @@ "homepage": "https://github.com/Bacon/BaconQrCode", "support": { "issues": "https://github.com/Bacon/BaconQrCode/issues", - "source": "https://github.com/Bacon/BaconQrCode/tree/2.0.6" + "source": "https://github.com/Bacon/BaconQrCode/tree/2.0.7" }, - "time": "2022-02-04T20:16:05+00:00" + "time": "2022-03-14T02:02:36+00:00" }, { "name": "code-lts/u2f-php-server", @@ -332,27 +332,30 @@ }, { "name": "phpmyadmin/motranslator", - "version": "5.2.0", + "version": "5.3.0", "source": { "type": "git", "url": "https://github.com/phpmyadmin/motranslator.git", - "reference": "cea68a8d0abf5e7fabc4179f07ef444223ddff44" + "reference": "87baa97809ec556c40e4cba4bdef998a2de2a003" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpmyadmin/motranslator/zipball/cea68a8d0abf5e7fabc4179f07ef444223ddff44", - "reference": "cea68a8d0abf5e7fabc4179f07ef444223ddff44", + "url": "https://api.github.com/repos/phpmyadmin/motranslator/zipball/87baa97809ec556c40e4cba4bdef998a2de2a003", + "reference": "87baa97809ec556c40e4cba4bdef998a2de2a003", "shasum": "" }, "require": { "php": "^7.1 || ^8.0", - "symfony/expression-language": "^4.0 || ^5.0" + "symfony/expression-language": "^4.0 || ^5.0 || ^6.0" }, "require-dev": { - "phpmyadmin/coding-standard": "^2.1.1", - "phpstan/phpstan": "^0.12.56", + "phpmyadmin/coding-standard": "^3.0.0", + "phpstan/phpstan": "^1.4.6", "phpunit/phpunit": "^7.4 || ^8 || ^9" }, + "suggest": { + "ext-apcu": "Needed for ACPu-backed translation cache" + }, "type": "library", "autoload": { "psr-4": { @@ -382,7 +385,7 @@ "issues": "https://github.com/phpmyadmin/motranslator/issues", "source": "https://github.com/phpmyadmin/motranslator" }, - "time": "2021-02-05T17:05:44+00:00" + "time": "2022-04-26T11:24:50+00:00" }, { "name": "phpmyadmin/shapefile", @@ -571,16 +574,16 @@ }, { "name": "phpseclib/phpseclib", - "version": "2.0.36", + "version": "2.0.37", "source": { "type": "git", "url": "https://github.com/phpseclib/phpseclib.git", - "reference": "a97547126396548c224703a267a30af1592be146" + "reference": "c812fbb4d6b4d7f30235ab7298a12f09ba13b37c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/a97547126396548c224703a267a30af1592be146", - "reference": "a97547126396548c224703a267a30af1592be146", + "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/c812fbb4d6b4d7f30235ab7298a12f09ba13b37c", + "reference": "c812fbb4d6b4d7f30235ab7298a12f09ba13b37c", "shasum": "" }, "require": { @@ -660,7 +663,7 @@ ], "support": { "issues": "https://github.com/phpseclib/phpseclib/issues", - "source": "https://github.com/phpseclib/phpseclib/tree/2.0.36" + "source": "https://github.com/phpseclib/phpseclib/tree/2.0.37" }, "funding": [ { @@ -676,7 +679,7 @@ "type": "tidelift" } ], - "time": "2022-01-30T08:48:36+00:00" + "time": "2022-04-04T04:57:45+00:00" }, { "name": "pragmarx/google2fa", @@ -946,16 +949,16 @@ }, { "name": "symfony/cache", - "version": "v4.4.37", + "version": "v4.4.41", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "7613787f68c5eaad98f0bd21d694e6d639b07bf0" + "reference": "27121284fe32a7cefc225268761ec7ce1741b9ac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/7613787f68c5eaad98f0bd21d694e6d639b07bf0", - "reference": "7613787f68c5eaad98f0bd21d694e6d639b07bf0", + "url": "https://api.github.com/repos/symfony/cache/zipball/27121284fe32a7cefc225268761ec7ce1741b9ac", + "reference": "27121284fe32a7cefc225268761ec7ce1741b9ac", "shasum": "" }, "require": { @@ -1021,7 +1024,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v4.4.37" + "source": "https://github.com/symfony/cache/tree/v4.4.41" }, "funding": [ { @@ -1037,20 +1040,20 @@ "type": "tidelift" } ], - "time": "2022-01-26T15:03:25+00:00" + "time": "2022-04-25T17:25:00+00:00" }, { "name": "symfony/cache-contracts", - "version": "v1.1.11", + "version": "v1.1.12", "source": { "type": "git", "url": "https://github.com/symfony/cache-contracts.git", - "reference": "41c956506500bea5502022f6be81da96fb9c7626" + "reference": "a872a66e0bf7bac179c89bc96c7098bef1949f81" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/41c956506500bea5502022f6be81da96fb9c7626", - "reference": "41c956506500bea5502022f6be81da96fb9c7626", + "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/a872a66e0bf7bac179c89bc96c7098bef1949f81", + "reference": "a872a66e0bf7bac179c89bc96c7098bef1949f81", "shasum": "" }, "require": { @@ -1100,7 +1103,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/cache-contracts/tree/v1.1.11" + "source": "https://github.com/symfony/cache-contracts/tree/v1.1.12" }, "funding": [ { @@ -1116,20 +1119,20 @@ "type": "tidelift" } ], - "time": "2021-07-13T09:33:53+00:00" + "time": "2022-01-02T09:41:36+00:00" }, { "name": "symfony/config", - "version": "v4.4.37", + "version": "v4.4.41", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "e8c2d2c951ddedecb6d28954d336cb7d2e852d0e" + "reference": "9d031eb2d4292aed117b0f7fafd5c436dcf3dfd7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/e8c2d2c951ddedecb6d28954d336cb7d2e852d0e", - "reference": "e8c2d2c951ddedecb6d28954d336cb7d2e852d0e", + "url": "https://api.github.com/repos/symfony/config/zipball/9d031eb2d4292aed117b0f7fafd5c436dcf3dfd7", + "reference": "9d031eb2d4292aed117b0f7fafd5c436dcf3dfd7", "shasum": "" }, "require": { @@ -1178,7 +1181,7 @@ "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/config/tree/v4.4.37" + "source": "https://github.com/symfony/config/tree/v4.4.41" }, "funding": [ { @@ -1194,20 +1197,20 @@ "type": "tidelift" } ], - "time": "2022-01-03T09:46:22+00:00" + "time": "2022-04-12T15:19:55+00:00" }, { "name": "symfony/dependency-injection", - "version": "v4.4.37", + "version": "v4.4.41", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "c00a23904b42f140087d36e1d22c88801bb39689" + "reference": "74c7f55de0eced4d3c9654809b1871870386a577" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/c00a23904b42f140087d36e1d22c88801bb39689", - "reference": "c00a23904b42f140087d36e1d22c88801bb39689", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/74c7f55de0eced4d3c9654809b1871870386a577", + "reference": "74c7f55de0eced4d3c9654809b1871870386a577", "shasum": "" }, "require": { @@ -1220,7 +1223,7 @@ "symfony/config": "<4.3|>=5.0", "symfony/finder": "<3.4", "symfony/proxy-manager-bridge": "<3.4", - "symfony/yaml": "<3.4" + "symfony/yaml": "<4.4.26" }, "provide": { "psr/container-implementation": "1.0", @@ -1229,7 +1232,7 @@ "require-dev": { "symfony/config": "^4.3", "symfony/expression-language": "^3.4|^4.0|^5.0", - "symfony/yaml": "^4.4|^5.0" + "symfony/yaml": "^4.4.26|^5.0" }, "suggest": { "symfony/config": "", @@ -1264,7 +1267,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v4.4.37" + "source": "https://github.com/symfony/dependency-injection/tree/v4.4.41" }, "funding": [ { @@ -1280,20 +1283,20 @@ "type": "tidelift" } ], - "time": "2022-01-24T17:17:45+00:00" + "time": "2022-04-12T15:19:55+00:00" }, { "name": "symfony/expression-language", - "version": "v4.4.37", + "version": "v4.4.41", "source": { "type": "git", "url": "https://github.com/symfony/expression-language.git", - "reference": "b25f28d2bca785d0715426bdd4af873288fe1d89" + "reference": "2774df99a13bbf2339e1c5b1f8c47dbec8d67c2b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/expression-language/zipball/b25f28d2bca785d0715426bdd4af873288fe1d89", - "reference": "b25f28d2bca785d0715426bdd4af873288fe1d89", + "url": "https://api.github.com/repos/symfony/expression-language/zipball/2774df99a13bbf2339e1c5b1f8c47dbec8d67c2b", + "reference": "2774df99a13bbf2339e1c5b1f8c47dbec8d67c2b", "shasum": "" }, "require": { @@ -1327,7 +1330,7 @@ "description": "Provides an engine that can compile and evaluate expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/expression-language/tree/v4.4.37" + "source": "https://github.com/symfony/expression-language/tree/v4.4.41" }, "funding": [ { @@ -1343,20 +1346,20 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:41:36+00:00" + "time": "2022-04-03T16:32:29+00:00" }, { "name": "symfony/filesystem", - "version": "v4.4.37", + "version": "v4.4.39", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "c59f37705c3e513ae55b2735f128f4ce363c82ec" + "reference": "72a5b35fecaa670b13954e6eaf414acbe2a67b35" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/c59f37705c3e513ae55b2735f128f4ce363c82ec", - "reference": "c59f37705c3e513ae55b2735f128f4ce363c82ec", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/72a5b35fecaa670b13954e6eaf414acbe2a67b35", + "reference": "72a5b35fecaa670b13954e6eaf414acbe2a67b35", "shasum": "" }, "require": { @@ -1390,7 +1393,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v4.4.37" + "source": "https://github.com/symfony/filesystem/tree/v4.4.39" }, "funding": [ { @@ -1406,11 +1409,11 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:41:36+00:00" + "time": "2022-02-25T10:38:15+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", @@ -1442,12 +1445,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1472,7 +1475,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.25.0" }, "funding": [ { @@ -1492,7 +1495,7 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", @@ -1524,12 +1527,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1555,7 +1558,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.25.0" }, "funding": [ { @@ -1575,7 +1578,7 @@ }, { "name": "symfony/polyfill-php72", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", @@ -1631,7 +1634,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php72/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-php72/tree/v1.25.0" }, "funding": [ { @@ -1651,7 +1654,7 @@ }, { "name": "symfony/polyfill-php73", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", @@ -1710,7 +1713,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-php73/tree/v1.25.0" }, "funding": [ { @@ -1730,16 +1733,16 @@ }, { "name": "symfony/polyfill-php80", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "57b712b08eddb97c762a8caa32c84e037892d2e9" + "reference": "4407588e0d3f1f52efb65fbe92babe41f37fe50c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/57b712b08eddb97c762a8caa32c84e037892d2e9", - "reference": "57b712b08eddb97c762a8caa32c84e037892d2e9", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/4407588e0d3f1f52efb65fbe92babe41f37fe50c", + "reference": "4407588e0d3f1f52efb65fbe92babe41f37fe50c", "shasum": "" }, "require": { @@ -1793,7 +1796,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.25.0" }, "funding": [ { @@ -1809,11 +1812,11 @@ "type": "tidelift" } ], - "time": "2021-09-13T13:58:33+00:00" + "time": "2022-03-04T08:16:47+00:00" }, { "name": "symfony/polyfill-php81", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php81.git", @@ -1872,7 +1875,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.25.0" }, "funding": [ { @@ -1892,16 +1895,16 @@ }, { "name": "symfony/service-contracts", - "version": "v1.1.11", + "version": "v1.1.12", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "633df678bec3452e04a7b0337c9bcfe7354124b3" + "reference": "eedb374f02031714a48848758a27812f3eca317a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/633df678bec3452e04a7b0337c9bcfe7354124b3", - "reference": "633df678bec3452e04a7b0337c9bcfe7354124b3", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/eedb374f02031714a48848758a27812f3eca317a", + "reference": "eedb374f02031714a48848758a27812f3eca317a", "shasum": "" }, "require": { @@ -1951,7 +1954,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v1.1.11" + "source": "https://github.com/symfony/service-contracts/tree/v1.1.12" }, "funding": [ { @@ -1967,20 +1970,20 @@ "type": "tidelift" } ], - "time": "2021-11-04T13:32:43+00:00" + "time": "2022-03-09T13:39:03+00:00" }, { "name": "symfony/var-exporter", - "version": "v4.4.37", + "version": "v4.4.41", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "70efd494974592a6581ad44e962238e3f76baea4" + "reference": "bc5f57ae61b5e492b3f6f21be6e503dcc7b898b7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/70efd494974592a6581ad44e962238e3f76baea4", - "reference": "70efd494974592a6581ad44e962238e3f76baea4", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/bc5f57ae61b5e492b3f6f21be6e503dcc7b898b7", + "reference": "bc5f57ae61b5e492b3f6f21be6e503dcc7b898b7", "shasum": "" }, "require": { @@ -2024,7 +2027,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v4.4.37" + "source": "https://github.com/symfony/var-exporter/tree/v4.4.41" }, "funding": [ { @@ -2040,7 +2043,7 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:41:36+00:00" + "time": "2022-04-25T17:40:48+00:00" }, { "name": "tecnickcom/tcpdf", @@ -2116,16 +2119,16 @@ }, { "name": "twig/twig", - "version": "v2.14.11", + "version": "v2.14.13", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "66baa66f29ee30e487e05f1679903e36eb01d727" + "reference": "66856cd0459df3dc97d32077a98454dc2a0ee75a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/66baa66f29ee30e487e05f1679903e36eb01d727", - "reference": "66baa66f29ee30e487e05f1679903e36eb01d727", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/66856cd0459df3dc97d32077a98454dc2a0ee75a", + "reference": "66856cd0459df3dc97d32077a98454dc2a0ee75a", "shasum": "" }, "require": { @@ -2180,7 +2183,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v2.14.11" + "source": "https://github.com/twigphp/Twig/tree/v2.14.13" }, "funding": [ { @@ -2192,7 +2195,7 @@ "type": "tidelift" } ], - "time": "2022-02-04T06:57:25+00:00" + "time": "2022-04-06T06:45:17+00:00" }, { "name": "williamdes/mariadb-mysql-kbs", @@ -2269,16 +2272,16 @@ "packages-dev": [ { "name": "amphp/amp", - "version": "v2.6.1", + "version": "v2.6.2", "source": { "type": "git", "url": "https://github.com/amphp/amp.git", - "reference": "c5fc66a78ee38d7ac9195a37bacaf940eb3f65ae" + "reference": "9d5100cebffa729aaffecd3ad25dc5aeea4f13bb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/amp/zipball/c5fc66a78ee38d7ac9195a37bacaf940eb3f65ae", - "reference": "c5fc66a78ee38d7ac9195a37bacaf940eb3f65ae", + "url": "https://api.github.com/repos/amphp/amp/zipball/9d5100cebffa729aaffecd3ad25dc5aeea4f13bb", + "reference": "9d5100cebffa729aaffecd3ad25dc5aeea4f13bb", "shasum": "" }, "require": { @@ -2300,13 +2303,13 @@ } }, "autoload": { - "psr-4": { - "Amp\\": "lib" - }, "files": [ "lib/functions.php", "lib/Internal/functions.php" - ] + ], + "psr-4": { + "Amp\\": "lib" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2331,7 +2334,7 @@ } ], "description": "A non-blocking concurrency framework for PHP applications.", - "homepage": "http://amphp.org/amp", + "homepage": "https://amphp.org/amp", "keywords": [ "async", "asynchronous", @@ -2346,7 +2349,7 @@ "support": { "irc": "irc://irc.freenode.org/amphp", "issues": "https://github.com/amphp/amp/issues", - "source": "https://github.com/amphp/amp/tree/v2.6.1" + "source": "https://github.com/amphp/amp/tree/v2.6.2" }, "funding": [ { @@ -2354,7 +2357,7 @@ "type": "github" } ], - "time": "2021-09-23T18:43:08+00:00" + "time": "2022-02-20T17:52:18+00:00" }, { "name": "amphp/byte-stream", @@ -2579,16 +2582,16 @@ }, { "name": "composer/semver", - "version": "3.2.9", + "version": "3.3.2", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "a951f614bd64dcd26137bc9b7b2637ddcfc57649" + "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/a951f614bd64dcd26137bc9b7b2637ddcfc57649", - "reference": "a951f614bd64dcd26137bc9b7b2637ddcfc57649", + "url": "https://api.github.com/repos/composer/semver/zipball/3953f23262f2bff1919fc82183ad9acb13ff62c9", + "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9", "shasum": "" }, "require": { @@ -2640,7 +2643,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.2.9" + "source": "https://github.com/composer/semver/tree/3.3.2" }, "funding": [ { @@ -2656,20 +2659,20 @@ "type": "tidelift" } ], - "time": "2022-02-04T13:58:43+00:00" + "time": "2022-04-01T19:23:25+00:00" }, { "name": "composer/xdebug-handler", - "version": "2.0.4", + "version": "2.0.5", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "0c1a3925ec58a4ec98e992b9c7d171e9e184be0a" + "reference": "9e36aeed4616366d2b690bdce11f71e9178c579a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/0c1a3925ec58a4ec98e992b9c7d171e9e184be0a", - "reference": "0c1a3925ec58a4ec98e992b9c7d171e9e184be0a", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/9e36aeed4616366d2b690bdce11f71e9178c579a", + "reference": "9e36aeed4616366d2b690bdce11f71e9178c579a", "shasum": "" }, "require": { @@ -2706,7 +2709,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/xdebug-handler/issues", - "source": "https://github.com/composer/xdebug-handler/tree/2.0.4" + "source": "https://github.com/composer/xdebug-handler/tree/2.0.5" }, "funding": [ { @@ -2722,7 +2725,7 @@ "type": "tidelift" } ], - "time": "2022-01-04T17:06:45+00:00" + "time": "2022-02-24T20:20:32+00:00" }, { "name": "dealerdirect/phpcodesniffer-composer-installer", @@ -2893,29 +2896,30 @@ }, { "name": "doctrine/instantiator", - "version": "1.4.0", + "version": "1.4.1", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b" + "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b", - "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/10dcfce151b967d20fde1b34ae6640712c3891bc", + "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^8.0", + "doctrine/coding-standard": "^9", "ext-pdo": "*", "ext-phar": "*", - "phpbench/phpbench": "^0.13 || 1.0.0-alpha2", - "phpstan/phpstan": "^0.12", - "phpstan/phpstan-phpunit": "^0.12", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" + "phpbench/phpbench": "^0.16 || ^1", + "phpstan/phpstan": "^1.4", + "phpstan/phpstan-phpunit": "^1", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.22" }, "type": "library", "autoload": { @@ -2942,7 +2946,7 @@ ], "support": { "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/1.4.0" + "source": "https://github.com/doctrine/instantiator/tree/1.4.1" }, "funding": [ { @@ -2958,7 +2962,7 @@ "type": "tidelift" } ], - "time": "2020-11-10T18:47:58+00:00" + "time": "2022-03-03T08:28:38+00:00" }, { "name": "felixfbecker/advanced-json-rpc", @@ -3007,16 +3011,16 @@ }, { "name": "felixfbecker/language-server-protocol", - "version": "1.5.1", + "version": "v1.5.2", "source": { "type": "git", "url": "https://github.com/felixfbecker/php-language-server-protocol.git", - "reference": "9d846d1f5cf101deee7a61c8ba7caa0a975cd730" + "reference": "6e82196ffd7c62f7794d778ca52b69feec9f2842" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/9d846d1f5cf101deee7a61c8ba7caa0a975cd730", - "reference": "9d846d1f5cf101deee7a61c8ba7caa0a975cd730", + "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/6e82196ffd7c62f7794d778ca52b69feec9f2842", + "reference": "6e82196ffd7c62f7794d778ca52b69feec9f2842", "shasum": "" }, "require": { @@ -3057,31 +3061,35 @@ ], "support": { "issues": "https://github.com/felixfbecker/php-language-server-protocol/issues", - "source": "https://github.com/felixfbecker/php-language-server-protocol/tree/1.5.1" + "source": "https://github.com/felixfbecker/php-language-server-protocol/tree/v1.5.2" }, - "time": "2021-02-22T14:02:09+00:00" + "time": "2022-03-02T22:36:06+00:00" }, { "name": "myclabs/deep-copy", - "version": "1.10.2", + "version": "1.11.0", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220" + "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220", - "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/14daed4296fae74d9e3201d2c4925d1acb7aa614", + "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3,<3.2.2" + }, "require-dev": { - "doctrine/collections": "^1.0", - "doctrine/common": "^2.6", - "phpunit/phpunit": "^7.1" + "doctrine/collections": "^1.6.8", + "doctrine/common": "^2.13.3 || ^3.2.2", + "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" }, "type": "library", "autoload": { @@ -3106,7 +3114,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.10.2" + "source": "https://github.com/myclabs/DeepCopy/tree/1.11.0" }, "funding": [ { @@ -3114,7 +3122,7 @@ "type": "tidelift" } ], - "time": "2020-11-13T09:40:50+00:00" + "time": "2022-03-03T13:19:32+00:00" }, { "name": "netresearch/jsonmapper", @@ -3328,16 +3336,16 @@ }, { "name": "paragonie/sodium_compat", - "version": "v1.17.0", + "version": "v1.17.1", "source": { "type": "git", "url": "https://github.com/paragonie/sodium_compat.git", - "reference": "c59cac21abbcc0df06a3dd18076450ea4797b321" + "reference": "ac994053faac18d386328c91c7900f930acadf1e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paragonie/sodium_compat/zipball/c59cac21abbcc0df06a3dd18076450ea4797b321", - "reference": "c59cac21abbcc0df06a3dd18076450ea4797b321", + "url": "https://api.github.com/repos/paragonie/sodium_compat/zipball/ac994053faac18d386328c91c7900f930acadf1e", + "reference": "ac994053faac18d386328c91c7900f930acadf1e", "shasum": "" }, "require": { @@ -3408,9 +3416,9 @@ ], "support": { "issues": "https://github.com/paragonie/sodium_compat/issues", - "source": "https://github.com/paragonie/sodium_compat/tree/v1.17.0" + "source": "https://github.com/paragonie/sodium_compat/tree/v1.17.1" }, - "time": "2021-08-10T02:43:50+00:00" + "time": "2022-03-23T19:32:04+00:00" }, { "name": "phar-io/manifest", @@ -3524,16 +3532,16 @@ }, { "name": "php-webdriver/webdriver", - "version": "1.12.0", + "version": "1.12.1", "source": { "type": "git", "url": "https://github.com/php-webdriver/php-webdriver.git", - "reference": "99d4856ed7dffcdf6a52eccd6551e83d8d557ceb" + "reference": "b27ddf458d273c7d4602106fcaf978aa0b7fe15a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-webdriver/php-webdriver/zipball/99d4856ed7dffcdf6a52eccd6551e83d8d557ceb", - "reference": "99d4856ed7dffcdf6a52eccd6551e83d8d557ceb", + "url": "https://api.github.com/repos/php-webdriver/php-webdriver/zipball/b27ddf458d273c7d4602106fcaf978aa0b7fe15a", + "reference": "b27ddf458d273c7d4602106fcaf978aa0b7fe15a", "shasum": "" }, "require": { @@ -3561,12 +3569,12 @@ }, "type": "library", "autoload": { - "psr-4": { - "Facebook\\WebDriver\\": "lib/" - }, "files": [ "lib/Exception/TimeoutException.php" - ] + ], + "psr-4": { + "Facebook\\WebDriver\\": "lib/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3583,9 +3591,9 @@ ], "support": { "issues": "https://github.com/php-webdriver/php-webdriver/issues", - "source": "https://github.com/php-webdriver/php-webdriver/tree/1.12.0" + "source": "https://github.com/php-webdriver/php-webdriver/tree/1.12.1" }, - "time": "2021-10-14T09:30:02+00:00" + "time": "2022-05-03T12:16:34+00:00" }, { "name": "phpdocumentor/reflection-common", @@ -3957,16 +3965,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.4.6", + "version": "1.4.10", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "8a7761f1c520e0dad6e04d862fdc697445457cfe" + "reference": "898c479c39caa727bedf4311dd294a8f4e250e72" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/8a7761f1c520e0dad6e04d862fdc697445457cfe", - "reference": "8a7761f1c520e0dad6e04d862fdc697445457cfe", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/898c479c39caa727bedf4311dd294a8f4e250e72", + "reference": "898c479c39caa727bedf4311dd294a8f4e250e72", "shasum": "" }, "require": { @@ -3980,11 +3988,6 @@ "phpstan.phar" ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4-dev" - } - }, "autoload": { "files": [ "bootstrap.php" @@ -3997,7 +4000,7 @@ "description": "PHPStan - PHP Static Analysis Tool", "support": { "issues": "https://github.com/phpstan/phpstan/issues", - "source": "https://github.com/phpstan/phpstan/tree/1.4.6" + "source": "https://github.com/phpstan/phpstan/tree/1.4.10" }, "funding": [ { @@ -4017,7 +4020,7 @@ "type": "tidelift" } ], - "time": "2022-02-06T12:56:13+00:00" + "time": "2022-03-14T10:25:45+00:00" }, { "name": "phpstan/phpstan-phpunit", @@ -5236,16 +5239,16 @@ }, { "name": "symfony/console", - "version": "v4.4.37", + "version": "v4.4.41", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "0259f01dbf9d77badddbbf4c2abb681f24c9cac6" + "reference": "0e1e62083b20ccb39c2431293de060f756af905c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/0259f01dbf9d77badddbbf4c2abb681f24c9cac6", - "reference": "0259f01dbf9d77badddbbf4c2abb681f24c9cac6", + "url": "https://api.github.com/repos/symfony/console/zipball/0e1e62083b20ccb39c2431293de060f756af905c", + "reference": "0e1e62083b20ccb39c2431293de060f756af905c", "shasum": "" }, "require": { @@ -5306,7 +5309,7 @@ "description": "Eases the creation of beautiful and testable command line interfaces", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/console/tree/v4.4.37" + "source": "https://github.com/symfony/console/tree/v4.4.41" }, "funding": [ { @@ -5322,20 +5325,20 @@ "type": "tidelift" } ], - "time": "2022-01-26T16:15:26+00:00" + "time": "2022-04-12T15:19:55+00:00" }, { "name": "symfony/finder", - "version": "v4.4.37", + "version": "v4.4.41", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "b17d76d7ed179f017aad646e858c90a2771af15d" + "reference": "40790bdf293b462798882ef6da72bb49a4a6633a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/b17d76d7ed179f017aad646e858c90a2771af15d", - "reference": "b17d76d7ed179f017aad646e858c90a2771af15d", + "url": "https://api.github.com/repos/symfony/finder/zipball/40790bdf293b462798882ef6da72bb49a4a6633a", + "reference": "40790bdf293b462798882ef6da72bb49a4a6633a", "shasum": "" }, "require": { @@ -5368,7 +5371,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v4.4.37" + "source": "https://github.com/symfony/finder/tree/v4.4.41" }, "funding": [ { @@ -5384,20 +5387,20 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:41:36+00:00" + "time": "2022-04-14T15:36:10+00:00" }, { "name": "symfony/process", - "version": "v4.4.37", + "version": "v4.4.41", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "b2d924e5a4cb284f293d5092b1dbf0d364cb8b67" + "reference": "9eedd60225506d56e42210a70c21bb80ca8456ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/b2d924e5a4cb284f293d5092b1dbf0d364cb8b67", - "reference": "b2d924e5a4cb284f293d5092b1dbf0d364cb8b67", + "url": "https://api.github.com/repos/symfony/process/zipball/9eedd60225506d56e42210a70c21bb80ca8456ce", + "reference": "9eedd60225506d56e42210a70c21bb80ca8456ce", "shasum": "" }, "require": { @@ -5430,7 +5433,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v4.4.37" + "source": "https://github.com/symfony/process/tree/v4.4.41" }, "funding": [ { @@ -5446,20 +5449,20 @@ "type": "tidelift" } ], - "time": "2022-01-27T17:14:04+00:00" + "time": "2022-04-04T10:19:07+00:00" }, { "name": "symfony/translation-contracts", - "version": "v1.1.11", + "version": "v1.1.12", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "58ae23095ffdea045725dda70752566aa2908be6" + "reference": "c04dc8a7873a2a9196f038e99342df46b6661a29" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/58ae23095ffdea045725dda70752566aa2908be6", - "reference": "58ae23095ffdea045725dda70752566aa2908be6", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/c04dc8a7873a2a9196f038e99342df46b6661a29", + "reference": "c04dc8a7873a2a9196f038e99342df46b6661a29", "shasum": "" }, "require": { @@ -5508,7 +5511,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v1.1.11" + "source": "https://github.com/symfony/translation-contracts/tree/v1.1.12" }, "funding": [ { @@ -5524,20 +5527,20 @@ "type": "tidelift" } ], - "time": "2021-07-13T10:01:39+00:00" + "time": "2022-01-02T09:41:36+00:00" }, { "name": "symfony/twig-bridge", - "version": "v4.4.37", + "version": "v4.4.41", "source": { "type": "git", "url": "https://github.com/symfony/twig-bridge.git", - "reference": "ad832919f412e464bb099a1514c28d6d53223c76" + "reference": "48391149d8fe7fc1b0ed2d67868f02686f8171dc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/ad832919f412e464bb099a1514c28d6d53223c76", - "reference": "ad832919f412e464bb099a1514c28d6d53223c76", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/48391149d8fe7fc1b0ed2d67868f02686f8171dc", + "reference": "48391149d8fe7fc1b0ed2d67868f02686f8171dc", "shasum": "" }, "require": { @@ -5625,7 +5628,7 @@ "description": "Provides integration for Twig with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/twig-bridge/tree/v4.4.37" + "source": "https://github.com/symfony/twig-bridge/tree/v4.4.41" }, "funding": [ { @@ -5641,7 +5644,7 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:41:36+00:00" + "time": "2022-04-12T15:19:55+00:00" }, { "name": "theseer/tokenizer", @@ -5689,16 +5692,16 @@ }, { "name": "vimeo/psalm", - "version": "4.20.0", + "version": "4.23.0", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "f82a70e7edfc6cf2705e9374c8a0b6a974a779ed" + "reference": "f1fe6ff483bf325c803df9f510d09a03fd796f88" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/f82a70e7edfc6cf2705e9374c8a0b6a974a779ed", - "reference": "f82a70e7edfc6cf2705e9374c8a0b6a974a779ed", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/f1fe6ff483bf325c803df9f510d09a03fd796f88", + "reference": "f1fe6ff483bf325c803df9f510d09a03fd796f88", "shasum": "" }, "require": { @@ -5723,6 +5726,7 @@ "php": "^7.1|^8", "sebastian/diff": "^3.0 || ^4.0", "symfony/console": "^3.4.17 || ^4.1.6 || ^5.0 || ^6.0", + "symfony/polyfill-php80": "^1.25", "webmozart/path-util": "^2.3" }, "provide": { @@ -5789,9 +5793,9 @@ ], "support": { "issues": "https://github.com/vimeo/psalm/issues", - "source": "https://github.com/vimeo/psalm/tree/4.20.0" + "source": "https://github.com/vimeo/psalm/tree/4.23.0" }, - "time": "2022-02-03T17:03:47+00:00" + "time": "2022-04-28T17:35:49+00:00" }, { "name": "webmozart/assert", diff -Nru phpmyadmin-5.1.3+dfsg1/debian/autoload.php.tpl phpmyadmin-5.1.4+dfsg1/debian/autoload.php.tpl --- phpmyadmin-5.1.3+dfsg1/debian/autoload.php.tpl 2022-02-12 18:11:00.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/debian/autoload.php.tpl 2022-05-24 23:08:00.000000000 +0000 @@ -1,18 +1,18 @@ Wed, 25 May 2022 01:12:07 +0200 + phpmyadmin (4:5.1.3+dfsg1-1+focal2) focal; urgency=medium * Add a patch to allow focal versions of symfony @@ -12,6 +18,17 @@ -- William Desportes Sat, 12 Feb 2022 19:33:25 +0100 +phpmyadmin (4:5.1.4+dfsg1-1) unstable; urgency=medium + + * New upstream version 5.1.4+dfsg1 + * Remove js/vendor/jquery/{jquery.svg.js,jquery.mousewheel.js} copyrights + * Update Standards-Version to 4.6.1 + * Re order composer dependencies like phpabtpl would do + * Refresh patches + * Add a patch to disable testDownloadHeader and testDownloadHeader2 tests + + -- William Desportes Tue, 24 May 2022 00:58:39 +0200 + phpmyadmin (4:5.1.3+dfsg1-1) unstable; urgency=medium * New upstream version 5.1.3+dfsg1 diff -Nru phpmyadmin-5.1.3+dfsg1/debian/control phpmyadmin-5.1.4+dfsg1/debian/control --- phpmyadmin-5.1.3+dfsg1/debian/control 2022-02-12 18:25:33.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/debian/control 2022-05-24 23:08:00.000000000 +0000 @@ -33,7 +33,7 @@ po-debconf, python3-sphinx, webpack -Standards-Version: 4.6.0 +Standards-Version: 4.6.1 Vcs-Browser: https://salsa.debian.org/phpmyadmin-team/phpmyadmin Vcs-Git: https://salsa.debian.org/phpmyadmin-team/phpmyadmin.git -b debian/latest Homepage: https://www.phpmyadmin.net/ diff -Nru phpmyadmin-5.1.3+dfsg1/debian/copyright phpmyadmin-5.1.4+dfsg1/debian/copyright --- phpmyadmin-5.1.3+dfsg1/debian/copyright 2022-02-12 18:11:00.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/debian/copyright 2022-05-24 23:08:00.000000000 +0000 @@ -52,8 +52,6 @@ Files: js/vendor/jquery/additional-methods.js js/vendor/jquery/jquery.validate.js - js/vendor/jquery/jquery.svg.js - js/vendor/jquery/jquery.mousewheel.js js/vendor/jquery/jquery.md5.js js/vendor/jquery/jquery.fullscreen.js js/vendor/jquery/jquery-ui-timepicker-addon.js @@ -69,7 +67,6 @@ Copyright (c) 2021 Jörn Zaefferer Copyright (c) 2010-2013 Diego Perini copyright (c) 21/08/2018 13:14, Cleiton da Silva Mendonça - Copyright (c) 2007 Keith Wood Copyright (c) jQuery Foundation and other contributors Copyright (c) 2011, Sebastian Tschan Copyright (C) 1999 - 2009 Paul Johnston diff -Nru phpmyadmin-5.1.3+dfsg1/debian/patches/Allow-phpmyadmin-sql-parser-5.4.patch phpmyadmin-5.1.4+dfsg1/debian/patches/Allow-phpmyadmin-sql-parser-5.4.patch --- phpmyadmin-5.1.3+dfsg1/debian/patches/Allow-phpmyadmin-sql-parser-5.4.patch 2022-02-14 10:39:47.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/debian/patches/Allow-phpmyadmin-sql-parser-5.4.patch 2022-05-24 23:08:00.000000000 +0000 @@ -10,7 +10,7 @@ 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json -index 47f0e05..cea38d9 100644 +index 100d6d7..e8c9711 100644 --- a/composer.json +++ b/composer.json @@ -49,7 +49,7 @@ diff -Nru phpmyadmin-5.1.3+dfsg1/debian/patches/allow-symfony-v5-for-PHP-8-compat.patch phpmyadmin-5.1.4+dfsg1/debian/patches/allow-symfony-v5-for-PHP-8-compat.patch --- phpmyadmin-5.1.3+dfsg1/debian/patches/allow-symfony-v5-for-PHP-8-compat.patch 2022-02-14 10:39:47.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/debian/patches/allow-symfony-v5-for-PHP-8-compat.patch 2022-05-24 23:08:00.000000000 +0000 @@ -11,7 +11,7 @@ 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/composer.json b/composer.json -index 97e336a..47f0e05 100644 +index e1609cb..100d6d7 100644 --- a/composer.json +++ b/composer.json @@ -52,9 +52,9 @@ diff -Nru phpmyadmin-5.1.3+dfsg1/debian/patches/Define-and-use-TEST_PATH-for-Debian-CI.patch phpmyadmin-5.1.4+dfsg1/debian/patches/Define-and-use-TEST_PATH-for-Debian-CI.patch --- phpmyadmin-5.1.3+dfsg1/debian/patches/Define-and-use-TEST_PATH-for-Debian-CI.patch 2022-02-14 10:39:47.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/debian/patches/Define-and-use-TEST_PATH-for-Debian-CI.patch 2022-05-24 23:08:00.000000000 +0000 @@ -27,10 +27,10 @@ * Set precision to sane value, with higher values * things behave slightly unexpectedly, for example diff --git a/test/classes/ConfigTest.php b/test/classes/ConfigTest.php -index a2ae82b..560aa0f 100644 +index b1ca1f1..0271214 100644 --- a/test/classes/ConfigTest.php +++ b/test/classes/ConfigTest.php -@@ -898,11 +898,11 @@ class ConfigTest extends AbstractTestCase +@@ -897,11 +897,11 @@ class ConfigTest extends AbstractTestCase { return [ [ diff -Nru phpmyadmin-5.1.3+dfsg1/debian/patches/Disable-testDownloadHeader-tests.patch phpmyadmin-5.1.4+dfsg1/debian/patches/Disable-testDownloadHeader-tests.patch --- phpmyadmin-5.1.3+dfsg1/debian/patches/Disable-testDownloadHeader-tests.patch 1970-01-01 00:00:00.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/debian/patches/Disable-testDownloadHeader-tests.patch 2022-05-24 23:08:00.000000000 +0000 @@ -0,0 +1,31 @@ +From: William Desportes +Date: Fri, 20 May 2022 00:19:05 +0200 +Subject: Disable new testDownloadHeader and testDownloadHeader2 tests because + they are not possible to run with the Debian test setup + +Origin: vendor +Forwarded: not-needed +--- + test/classes/CoreTest.php | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/test/classes/CoreTest.php b/test/classes/CoreTest.php +index 8db26aa..8a55a78 100644 +--- a/test/classes/CoreTest.php ++++ b/test/classes/CoreTest.php +@@ -1503,6 +1503,7 @@ class CoreTest extends AbstractNetworkTestCase + * @runInSeparateProcess + * @preserveGlobalState disabled + * @requires extension xdebug ++ * @group environment + */ + public function testDownloadHeader(): void + { +@@ -1530,6 +1531,7 @@ class CoreTest extends AbstractNetworkTestCase + * @runInSeparateProcess + * @preserveGlobalState disabled + * @requires extension xdebug ++ * @group environment + */ + public function testDownloadHeader2(): void + { diff -Nru phpmyadmin-5.1.3+dfsg1/debian/patches/Remove-dfsg-zxcvbn-js.patch phpmyadmin-5.1.4+dfsg1/debian/patches/Remove-dfsg-zxcvbn-js.patch --- phpmyadmin-5.1.3+dfsg1/debian/patches/Remove-dfsg-zxcvbn-js.patch 2022-02-14 10:39:47.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/debian/patches/Remove-dfsg-zxcvbn-js.patch 2022-05-24 23:08:00.000000000 +0000 @@ -13,10 +13,10 @@ 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/js/dist/functions.js b/js/dist/functions.js -index ab4201c..6d1b2ad 100644 +index ceb8375..9ef04c7 100644 --- a/js/dist/functions.js +++ b/js/dist/functions.js -@@ -527,8 +527,8 @@ Functions.checkPasswordStrength = function (value, meterObject, meterObjectLabel +@@ -525,8 +525,8 @@ Functions.checkPasswordStrength = function (value, meterObject, meterObjectLabel customDict.push(username); } @@ -28,7 +28,7 @@ meterObject.val(strength); diff --git a/js/src/functions.js b/js/src/functions.js -index 5d1bc8b..0231c2a 100644 +index 7c4d62e..de013af 100644 --- a/js/src/functions.js +++ b/js/src/functions.js @@ -495,8 +495,8 @@ Functions.checkPasswordStrength = function (value, meterObject, meterObjectLabel diff -Nru phpmyadmin-5.1.3+dfsg1/debian/patches/series phpmyadmin-5.1.4+dfsg1/debian/patches/series --- phpmyadmin-5.1.3+dfsg1/debian/patches/series 2022-02-14 10:39:47.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/debian/patches/series 2022-05-24 23:08:54.000000000 +0000 @@ -11,3 +11,4 @@ Allow-phpmyadmin-sql-parser-5.4.patch Drop-symfony-polyfill-ctype-mbstring.patch Allow-symfony-focal-versions.patch +Disable-testDownloadHeader-tests.patch diff -Nru phpmyadmin-5.1.3+dfsg1/debian/patches/simplify-composer-or-versions.patch phpmyadmin-5.1.4+dfsg1/debian/patches/simplify-composer-or-versions.patch --- phpmyadmin-5.1.3+dfsg1/debian/patches/simplify-composer-or-versions.patch 2022-02-14 10:39:47.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/debian/patches/simplify-composer-or-versions.patch 2022-05-24 23:08:00.000000000 +0000 @@ -12,7 +12,7 @@ 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json -index 235c30b..97e336a 100644 +index 8fb9d67..e1609cb 100644 --- a/composer.json +++ b/composer.json @@ -57,7 +57,7 @@ diff -Nru phpmyadmin-5.1.3+dfsg1/debian/rules phpmyadmin-5.1.4+dfsg1/debian/rules --- phpmyadmin-5.1.3+dfsg1/debian/rules 2022-02-12 18:25:33.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/debian/rules 2022-05-24 23:08:00.000000000 +0000 @@ -25,7 +25,7 @@ webpack --config ./js/config/ol/webpack.config.js # build phpMyAdmin user documentation make -C doc/ html - # generate outoload-files. keep in sync with debian/tests/phpunit + # generate autoload-files. keep in sync with debian/tests/phpunit phpab --template debian/autoload.php.tpl \ --output autoload.php \ libraries/classes diff -Nru phpmyadmin-5.1.3+dfsg1/debian/tests/phpunit phpmyadmin-5.1.4+dfsg1/debian/tests/phpunit --- phpmyadmin-5.1.3+dfsg1/debian/tests/phpunit 2022-02-12 18:11:00.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/debian/tests/phpunit 2022-05-24 23:08:00.000000000 +0000 @@ -3,7 +3,7 @@ set +x set -e -# generate outoload-files. keep in sync with debian/rules::override_dh_auto_build +# generate autoload-files. keep in sync with debian/rules::override_dh_auto_build phpab --template debian/autoload-test-autopkgtest.php.tpl \ --output test/autoload.php \ diff -Nru phpmyadmin-5.1.3+dfsg1/doc/config.rst phpmyadmin-5.1.4+dfsg1/doc/config.rst --- phpmyadmin-5.1.3+dfsg1/doc/config.rst 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/doc/config.rst 2022-05-11 03:26:09.000000000 +0000 @@ -630,6 +630,27 @@ "phpMyAdmin " and either :config:option:`$cfg['Servers'][$i]['verbose']` or :config:option:`$cfg['Servers'][$i]['host']` will be used. +.. _servers_auth_swekey_config: +.. config:option:: $cfg['Servers'][$i]['auth_swekey_config'] + + :type: string + :default: ``''`` + + .. versionadded:: 3.0.0.0 + + This setting was named `$cfg['Servers'][$i]['auth_feebee_config']` and was renamed before the `3.0.0.0` release. + + .. deprecated:: 4.6.4 + + This setting was removed because their servers are no longer working and it was not working correctly. + + .. deprecated:: 4.0.10.17 + + This setting was removed in a maintenance release because their servers are no longer working and it was not working correctly. + + The name of the file containing swekey ids and login names for hardware + authentication. Leave empty to deactivate this feature. + .. _servers_user: .. config:option:: $cfg['Servers'][$i]['user'] diff -Nru phpmyadmin-5.1.3+dfsg1/doc/conf.py phpmyadmin-5.1.4+dfsg1/doc/conf.py --- phpmyadmin-5.1.3+dfsg1/doc/conf.py 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/doc/conf.py 2022-05-11 03:26:09.000000000 +0000 @@ -51,7 +51,7 @@ # built documents. # # The short X.Y version. -version = '5.1.3' +version = '5.1.4' # The full version, including alpha/beta/rc tags. release = version Binary files /tmp/tmp29ow7v0g/QdIUIy6lQT/phpmyadmin-5.1.3+dfsg1/doc/doctrees/bookmarks.doctree and /tmp/tmp29ow7v0g/crSJtO0qh6/phpmyadmin-5.1.4+dfsg1/doc/doctrees/bookmarks.doctree differ Binary files /tmp/tmp29ow7v0g/QdIUIy6lQT/phpmyadmin-5.1.3+dfsg1/doc/doctrees/charts.doctree and /tmp/tmp29ow7v0g/crSJtO0qh6/phpmyadmin-5.1.4+dfsg1/doc/doctrees/charts.doctree differ Binary files /tmp/tmp29ow7v0g/QdIUIy6lQT/phpmyadmin-5.1.3+dfsg1/doc/doctrees/config.doctree and /tmp/tmp29ow7v0g/crSJtO0qh6/phpmyadmin-5.1.4+dfsg1/doc/doctrees/config.doctree differ Binary files /tmp/tmp29ow7v0g/QdIUIy6lQT/phpmyadmin-5.1.3+dfsg1/doc/doctrees/copyright.doctree and /tmp/tmp29ow7v0g/crSJtO0qh6/phpmyadmin-5.1.4+dfsg1/doc/doctrees/copyright.doctree differ Binary files /tmp/tmp29ow7v0g/QdIUIy6lQT/phpmyadmin-5.1.3+dfsg1/doc/doctrees/credits.doctree and /tmp/tmp29ow7v0g/crSJtO0qh6/phpmyadmin-5.1.4+dfsg1/doc/doctrees/credits.doctree differ Binary files /tmp/tmp29ow7v0g/QdIUIy6lQT/phpmyadmin-5.1.3+dfsg1/doc/doctrees/developers.doctree and /tmp/tmp29ow7v0g/crSJtO0qh6/phpmyadmin-5.1.4+dfsg1/doc/doctrees/developers.doctree differ Binary files /tmp/tmp29ow7v0g/QdIUIy6lQT/phpmyadmin-5.1.3+dfsg1/doc/doctrees/environment.pickle and /tmp/tmp29ow7v0g/crSJtO0qh6/phpmyadmin-5.1.4+dfsg1/doc/doctrees/environment.pickle differ Binary files /tmp/tmp29ow7v0g/QdIUIy6lQT/phpmyadmin-5.1.3+dfsg1/doc/doctrees/faq.doctree and /tmp/tmp29ow7v0g/crSJtO0qh6/phpmyadmin-5.1.4+dfsg1/doc/doctrees/faq.doctree differ Binary files /tmp/tmp29ow7v0g/QdIUIy6lQT/phpmyadmin-5.1.3+dfsg1/doc/doctrees/glossary.doctree and /tmp/tmp29ow7v0g/crSJtO0qh6/phpmyadmin-5.1.4+dfsg1/doc/doctrees/glossary.doctree differ Binary files /tmp/tmp29ow7v0g/QdIUIy6lQT/phpmyadmin-5.1.3+dfsg1/doc/doctrees/import_export.doctree and /tmp/tmp29ow7v0g/crSJtO0qh6/phpmyadmin-5.1.4+dfsg1/doc/doctrees/import_export.doctree differ Binary files /tmp/tmp29ow7v0g/QdIUIy6lQT/phpmyadmin-5.1.3+dfsg1/doc/doctrees/index.doctree and /tmp/tmp29ow7v0g/crSJtO0qh6/phpmyadmin-5.1.4+dfsg1/doc/doctrees/index.doctree differ Binary files /tmp/tmp29ow7v0g/QdIUIy6lQT/phpmyadmin-5.1.3+dfsg1/doc/doctrees/intro.doctree and /tmp/tmp29ow7v0g/crSJtO0qh6/phpmyadmin-5.1.4+dfsg1/doc/doctrees/intro.doctree differ Binary files /tmp/tmp29ow7v0g/QdIUIy6lQT/phpmyadmin-5.1.3+dfsg1/doc/doctrees/other.doctree and /tmp/tmp29ow7v0g/crSJtO0qh6/phpmyadmin-5.1.4+dfsg1/doc/doctrees/other.doctree differ Binary files /tmp/tmp29ow7v0g/QdIUIy6lQT/phpmyadmin-5.1.3+dfsg1/doc/doctrees/privileges.doctree and /tmp/tmp29ow7v0g/crSJtO0qh6/phpmyadmin-5.1.4+dfsg1/doc/doctrees/privileges.doctree differ Binary files /tmp/tmp29ow7v0g/QdIUIy6lQT/phpmyadmin-5.1.3+dfsg1/doc/doctrees/relations.doctree and /tmp/tmp29ow7v0g/crSJtO0qh6/phpmyadmin-5.1.4+dfsg1/doc/doctrees/relations.doctree differ Binary files /tmp/tmp29ow7v0g/QdIUIy6lQT/phpmyadmin-5.1.3+dfsg1/doc/doctrees/require.doctree and /tmp/tmp29ow7v0g/crSJtO0qh6/phpmyadmin-5.1.4+dfsg1/doc/doctrees/require.doctree differ Binary files /tmp/tmp29ow7v0g/QdIUIy6lQT/phpmyadmin-5.1.3+dfsg1/doc/doctrees/security.doctree and /tmp/tmp29ow7v0g/crSJtO0qh6/phpmyadmin-5.1.4+dfsg1/doc/doctrees/security.doctree differ Binary files /tmp/tmp29ow7v0g/QdIUIy6lQT/phpmyadmin-5.1.3+dfsg1/doc/doctrees/settings.doctree and /tmp/tmp29ow7v0g/crSJtO0qh6/phpmyadmin-5.1.4+dfsg1/doc/doctrees/settings.doctree differ Binary files /tmp/tmp29ow7v0g/QdIUIy6lQT/phpmyadmin-5.1.3+dfsg1/doc/doctrees/setup.doctree and /tmp/tmp29ow7v0g/crSJtO0qh6/phpmyadmin-5.1.4+dfsg1/doc/doctrees/setup.doctree differ Binary files /tmp/tmp29ow7v0g/QdIUIy6lQT/phpmyadmin-5.1.3+dfsg1/doc/doctrees/themes.doctree and /tmp/tmp29ow7v0g/crSJtO0qh6/phpmyadmin-5.1.4+dfsg1/doc/doctrees/themes.doctree differ Binary files /tmp/tmp29ow7v0g/QdIUIy6lQT/phpmyadmin-5.1.3+dfsg1/doc/doctrees/transformations.doctree and /tmp/tmp29ow7v0g/crSJtO0qh6/phpmyadmin-5.1.4+dfsg1/doc/doctrees/transformations.doctree differ Binary files /tmp/tmp29ow7v0g/QdIUIy6lQT/phpmyadmin-5.1.3+dfsg1/doc/doctrees/two_factor.doctree and /tmp/tmp29ow7v0g/crSJtO0qh6/phpmyadmin-5.1.4+dfsg1/doc/doctrees/two_factor.doctree differ Binary files /tmp/tmp29ow7v0g/QdIUIy6lQT/phpmyadmin-5.1.3+dfsg1/doc/doctrees/user.doctree and /tmp/tmp29ow7v0g/crSJtO0qh6/phpmyadmin-5.1.4+dfsg1/doc/doctrees/user.doctree differ Binary files /tmp/tmp29ow7v0g/QdIUIy6lQT/phpmyadmin-5.1.3+dfsg1/doc/doctrees/vendors.doctree and /tmp/tmp29ow7v0g/crSJtO0qh6/phpmyadmin-5.1.4+dfsg1/doc/doctrees/vendors.doctree differ diff -Nru phpmyadmin-5.1.3+dfsg1/doc/faq.rst phpmyadmin-5.1.4+dfsg1/doc/faq.rst --- phpmyadmin-5.1.3+dfsg1/doc/faq.rst 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/doc/faq.rst 2022-05-11 03:26:09.000000000 +0000 @@ -1904,7 +1904,7 @@ to display the plot. After the plot is generated, you can use the -mousewheel to zoom in and out of the plot. In addition, panning +mouse wheel to zoom in and out of the plot. In addition, panning feature is enabled to navigate through the plot. You can zoom-in to a certain level of detail and use panning to locate your area of interest. Clicking on a point opens a dialogue box, displaying field diff -Nru phpmyadmin-5.1.3+dfsg1/doc/html/bookmarks.html phpmyadmin-5.1.4+dfsg1/doc/html/bookmarks.html --- phpmyadmin-5.1.3+dfsg1/doc/html/bookmarks.html 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/doc/html/bookmarks.html 2022-05-11 03:26:09.000000000 +0000 @@ -5,7 +5,7 @@ - Bookmarks — phpMyAdmin 5.1.3 documentation + Bookmarks — phpMyAdmin 5.1.4 documentation @@ -32,7 +32,7 @@
  • previous |
  • - + @@ -162,7 +162,7 @@
  • previous |
  • - + diff -Nru phpmyadmin-5.1.3+dfsg1/doc/html/.buildinfo phpmyadmin-5.1.4+dfsg1/doc/html/.buildinfo --- phpmyadmin-5.1.3+dfsg1/doc/html/.buildinfo 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/doc/html/.buildinfo 2022-05-11 03:26:09.000000000 +0000 @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 8a0f8dcad1667a58e96555ead0708a47 +config: 05f2be6628ac76f3913c3d1d85b91e15 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff -Nru phpmyadmin-5.1.3+dfsg1/doc/html/charts.html phpmyadmin-5.1.4+dfsg1/doc/html/charts.html --- phpmyadmin-5.1.3+dfsg1/doc/html/charts.html 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/doc/html/charts.html 2022-05-11 03:26:09.000000000 +0000 @@ -5,7 +5,7 @@ - Charts — phpMyAdmin 5.1.3 documentation + Charts — phpMyAdmin 5.1.4 documentation @@ -32,7 +32,7 @@
  • previous |
  • - + @@ -278,7 +278,7 @@
  • previous |
  • - + diff -Nru phpmyadmin-5.1.3+dfsg1/doc/html/config.html phpmyadmin-5.1.4+dfsg1/doc/html/config.html --- phpmyadmin-5.1.3+dfsg1/doc/html/config.html 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/doc/html/config.html 2022-05-11 03:26:09.000000000 +0000 @@ -5,7 +5,7 @@ - Configuration — phpMyAdmin 5.1.3 documentation + Configuration — phpMyAdmin 5.1.4 documentation @@ -32,7 +32,7 @@
  • previous |
  • - + @@ -865,6 +865,30 @@ $cfg['Servers'][$i]['host'] will be used.

    +
    +
    +$cfg['Servers'][$i]['auth_swekey_config']
    +
    +
    Type
    +

    string

    +
    +
    Default value
    +

    ''

    +
    +
    +
    +

    New in version 3.0.0.0: This setting was named $cfg[‘Servers’][$i][‘auth_feebee_config’] and was renamed before the 3.0.0.0 release.

    +
    +
    +

    Deprecated since version 4.6.4: This setting was removed because their servers are no longer working and it was not working correctly.

    +
    +
    +

    Deprecated since version 4.0.10.17: This setting was removed in a maintenance release because their servers are no longer working and it was not working correctly.

    +
    +

    The name of the file containing swekey ids and login names for hardware +authentication. Leave empty to deactivate this feature.

    +
    +
    $cfg['Servers'][$i]['user']
    @@ -6108,7 +6132,7 @@
  • previous |
  • - + diff -Nru phpmyadmin-5.1.3+dfsg1/doc/html/copyright.html phpmyadmin-5.1.4+dfsg1/doc/html/copyright.html --- phpmyadmin-5.1.3+dfsg1/doc/html/copyright.html 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/doc/html/copyright.html 2022-05-11 03:26:09.000000000 +0000 @@ -5,7 +5,7 @@ - Copyright — phpMyAdmin 5.1.3 documentation + Copyright — phpMyAdmin 5.1.4 documentation @@ -32,7 +32,7 @@
  • previous |
  • - + @@ -131,7 +131,7 @@
  • previous |
  • - + diff -Nru phpmyadmin-5.1.3+dfsg1/doc/html/credits.html phpmyadmin-5.1.4+dfsg1/doc/html/credits.html --- phpmyadmin-5.1.3+dfsg1/doc/html/credits.html 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/doc/html/credits.html 2022-05-11 03:26:09.000000000 +0000 @@ -5,7 +5,7 @@ - Credits — phpMyAdmin 5.1.3 documentation + Credits — phpMyAdmin 5.1.4 documentation @@ -32,7 +32,7 @@
  • previous |
  • - + @@ -1453,7 +1453,7 @@
  • previous |
  • - + diff -Nru phpmyadmin-5.1.3+dfsg1/doc/html/developers.html phpmyadmin-5.1.4+dfsg1/doc/html/developers.html --- phpmyadmin-5.1.3+dfsg1/doc/html/developers.html 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/doc/html/developers.html 2022-05-11 03:26:09.000000000 +0000 @@ -5,7 +5,7 @@ - Developers Information — phpMyAdmin 5.1.3 documentation + Developers Information — phpMyAdmin 5.1.4 documentation @@ -32,7 +32,7 @@
  • previous |
  • - + @@ -97,7 +97,7 @@
  • previous |
  • - + diff -Nru phpmyadmin-5.1.3+dfsg1/doc/html/faq.html phpmyadmin-5.1.4+dfsg1/doc/html/faq.html --- phpmyadmin-5.1.3+dfsg1/doc/html/faq.html 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/doc/html/faq.html 2022-05-11 03:26:09.000000000 +0000 @@ -5,7 +5,7 @@ - FAQ - Frequently Asked Questions — phpMyAdmin 5.1.3 documentation + FAQ - Frequently Asked Questions — phpMyAdmin 5.1.4 documentation @@ -32,7 +32,7 @@
  • previous |
  • - + @@ -1487,7 +1487,7 @@ to plot’ field. Once you have decided over your criteria, click ‘Go’ to display the plot.

    After the plot is generated, you can use the -mousewheel to zoom in and out of the plot. In addition, panning +mouse wheel to zoom in and out of the plot. In addition, panning feature is enabled to navigate through the plot. You can zoom-in to a certain level of detail and use panning to locate your area of interest. Clicking on a point opens a dialogue box, displaying field @@ -1987,7 +1987,7 @@

  • previous |
  • - + diff -Nru phpmyadmin-5.1.3+dfsg1/doc/html/genindex.html phpmyadmin-5.1.4+dfsg1/doc/html/genindex.html --- phpmyadmin-5.1.3+dfsg1/doc/html/genindex.html 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/doc/html/genindex.html 2022-05-11 03:26:09.000000000 +0000 @@ -5,7 +5,7 @@ - Index — phpMyAdmin 5.1.3 documentation + Index — phpMyAdmin 5.1.4 documentation @@ -24,7 +24,7 @@
  • index
  • - + @@ -351,10 +351,10 @@
  • $cfg['PDFDefaultPageSize']
  • - - + @@ -596,7 +596,7 @@
  • previous |
  • - + diff -Nru phpmyadmin-5.1.3+dfsg1/doc/html/import_export.html phpmyadmin-5.1.4+dfsg1/doc/html/import_export.html --- phpmyadmin-5.1.3+dfsg1/doc/html/import_export.html 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/doc/html/import_export.html 2022-05-11 03:26:09.000000000 +0000 @@ -5,7 +5,7 @@ - Import and export — phpMyAdmin 5.1.3 documentation + Import and export — phpMyAdmin 5.1.4 documentation @@ -32,7 +32,7 @@
  • previous |
  • - + @@ -447,7 +447,7 @@
  • previous |
  • - + diff -Nru phpmyadmin-5.1.3+dfsg1/doc/html/index.html phpmyadmin-5.1.4+dfsg1/doc/html/index.html --- phpmyadmin-5.1.3+dfsg1/doc/html/index.html 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/doc/html/index.html 2022-05-11 03:26:09.000000000 +0000 @@ -5,7 +5,7 @@ - Welcome to phpMyAdmin’s documentation! — phpMyAdmin 5.1.3 documentation + Welcome to phpMyAdmin’s documentation! — phpMyAdmin 5.1.4 documentation @@ -28,7 +28,7 @@
  • next |
  • - + @@ -211,7 +211,7 @@
  • next |
  • - + diff -Nru phpmyadmin-5.1.3+dfsg1/doc/html/intro.html phpmyadmin-5.1.4+dfsg1/doc/html/intro.html --- phpmyadmin-5.1.3+dfsg1/doc/html/intro.html 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/doc/html/intro.html 2022-05-11 03:26:09.000000000 +0000 @@ -5,7 +5,7 @@ - Introduction — phpMyAdmin 5.1.3 documentation + Introduction — phpMyAdmin 5.1.4 documentation @@ -32,7 +32,7 @@
  • previous |
  • - + @@ -174,7 +174,7 @@
  • previous |
  • - + Binary files /tmp/tmp29ow7v0g/QdIUIy6lQT/phpmyadmin-5.1.3+dfsg1/doc/html/objects.inv and /tmp/tmp29ow7v0g/crSJtO0qh6/phpmyadmin-5.1.4+dfsg1/doc/html/objects.inv differ diff -Nru phpmyadmin-5.1.3+dfsg1/doc/html/other.html phpmyadmin-5.1.4+dfsg1/doc/html/other.html --- phpmyadmin-5.1.3+dfsg1/doc/html/other.html 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/doc/html/other.html 2022-05-11 03:26:09.000000000 +0000 @@ -5,7 +5,7 @@ - Other sources of information — phpMyAdmin 5.1.3 documentation + Other sources of information — phpMyAdmin 5.1.4 documentation @@ -32,7 +32,7 @@
  • previous |
  • - + @@ -136,7 +136,7 @@
  • previous |
  • - + diff -Nru phpmyadmin-5.1.3+dfsg1/doc/html/privileges.html phpmyadmin-5.1.4+dfsg1/doc/html/privileges.html --- phpmyadmin-5.1.3+dfsg1/doc/html/privileges.html 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/doc/html/privileges.html 2022-05-11 03:26:09.000000000 +0000 @@ -5,7 +5,7 @@ - User management — phpMyAdmin 5.1.3 documentation + User management — phpMyAdmin 5.1.4 documentation @@ -32,7 +32,7 @@
  • previous |
  • - + @@ -166,7 +166,7 @@
  • previous |
  • - + diff -Nru phpmyadmin-5.1.3+dfsg1/doc/html/relations.html phpmyadmin-5.1.4+dfsg1/doc/html/relations.html --- phpmyadmin-5.1.3+dfsg1/doc/html/relations.html 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/doc/html/relations.html 2022-05-11 03:26:09.000000000 +0000 @@ -5,7 +5,7 @@ - Relations — phpMyAdmin 5.1.3 documentation + Relations — phpMyAdmin 5.1.4 documentation @@ -32,7 +32,7 @@
  • previous |
  • - + @@ -172,7 +172,7 @@
  • previous |
  • - + diff -Nru phpmyadmin-5.1.3+dfsg1/doc/html/require.html phpmyadmin-5.1.4+dfsg1/doc/html/require.html --- phpmyadmin-5.1.3+dfsg1/doc/html/require.html 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/doc/html/require.html 2022-05-11 03:26:09.000000000 +0000 @@ -5,7 +5,7 @@ - Requirements — phpMyAdmin 5.1.3 documentation + Requirements — phpMyAdmin 5.1.4 documentation @@ -32,7 +32,7 @@
  • previous |
  • - + @@ -152,7 +152,7 @@
  • previous |
  • - + diff -Nru phpmyadmin-5.1.3+dfsg1/doc/html/search.html phpmyadmin-5.1.4+dfsg1/doc/html/search.html --- phpmyadmin-5.1.3+dfsg1/doc/html/search.html 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/doc/html/search.html 2022-05-11 03:26:09.000000000 +0000 @@ -5,7 +5,7 @@ - Search — phpMyAdmin 5.1.3 documentation + Search — phpMyAdmin 5.1.4 documentation @@ -30,7 +30,7 @@
  • index
  • - + @@ -78,7 +78,7 @@
  • index
  • - + diff -Nru phpmyadmin-5.1.3+dfsg1/doc/html/searchindex.js phpmyadmin-5.1.4+dfsg1/doc/html/searchindex.js --- phpmyadmin-5.1.3+dfsg1/doc/html/searchindex.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/doc/html/searchindex.js 2022-05-11 03:26:09.000000000 +0000 @@ -1 +1 @@ -Search.setIndex({docnames:["bookmarks","charts","config","copyright","credits","developers","faq","glossary","import_export","index","intro","other","privileges","relations","require","security","settings","setup","themes","transformations","two_factor","user","vendors"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,sphinx:56},filenames:["bookmarks.rst","charts.rst","config.rst","copyright.rst","credits.rst","developers.rst","faq.rst","glossary.rst","import_export.rst","index.rst","intro.rst","other.rst","privileges.rst","relations.rst","require.rst","security.rst","settings.rst","setup.rst","themes.rst","transformations.rst","two_factor.rst","user.rst","vendors.rst"],objects:{"":{"$cfg['ActionLinksMode']":[2,0,1,"cfg_ActionLinksMode"],"$cfg['AllowArbitraryServer']":[2,0,1,"cfg_AllowArbitraryServer"],"$cfg['AllowThirdPartyFraming']":[2,0,1,"cfg_AllowThirdPartyFraming"],"$cfg['AllowUserDropDatabase']":[2,0,1,"cfg_AllowUserDropDatabase"],"$cfg['ArbitraryServerRegexp']":[2,0,1,"cfg_ArbitraryServerRegexp"],"$cfg['AuthLog']":[2,0,1,"cfg_AuthLog"],"$cfg['AuthLogSuccess']":[2,0,1,"cfg_AuthLogSuccess"],"$cfg['AvailableCharsets']":[2,0,1,"cfg_AvailableCharsets"],"$cfg['BZipDump']":[2,0,1,"cfg_BZipDump"],"$cfg['BrowseMIME']":[2,0,1,"cfg_BrowseMIME"],"$cfg['BrowseMarkerEnable']":[2,0,1,"cfg_BrowseMarkerEnable"],"$cfg['BrowsePointerEnable']":[2,0,1,"cfg_BrowsePointerEnable"],"$cfg['CSPAllow']":[2,0,1,"cfg_CSPAllow"],"$cfg['CaptchaApi']":[2,0,1,"cfg_CaptchaApi"],"$cfg['CaptchaCsp']":[2,0,1,"cfg_CaptchaCsp"],"$cfg['CaptchaLoginPrivateKey']":[2,0,1,"cfg_CaptchaLoginPrivateKey"],"$cfg['CaptchaLoginPublicKey']":[2,0,1,"cfg_CaptchaLoginPublicKey"],"$cfg['CaptchaMethod']":[2,0,1,"cfg_CaptchaMethod"],"$cfg['CaptchaRequestParam']":[2,0,1,"cfg_CaptchaRequestParam"],"$cfg['CaptchaResponseParam']":[2,0,1,"cfg_CaptchaResponseParam"],"$cfg['CaptchaSiteVerifyURL']":[2,0,1,"cfg_CaptchaSiteVerifyURL"],"$cfg['CharEditing']":[2,0,1,"cfg_CharEditing"],"$cfg['CharTextareaCols']":[2,0,1,"cfg_CharTextareaCols"],"$cfg['CharTextareaRows']":[2,0,1,"cfg_CharTextareaRows"],"$cfg['CheckConfigurationPermissions']":[2,0,1,"cfg_CheckConfigurationPermissions"],"$cfg['CodemirrorEnable']":[2,0,1,"cfg_CodemirrorEnable"],"$cfg['CompressOnFly']":[2,0,1,"cfg_CompressOnFly"],"$cfg['Confirm']":[2,0,1,"cfg_Confirm"],"$cfg['Console']['AlwaysExpand']":[2,0,1,"cfg_Console_AlwaysExpand"],"$cfg['Console']['CurrentQuery']":[2,0,1,"cfg_Console_CurrentQuery"],"$cfg['Console']['DarkTheme']":[2,0,1,"cfg_Console_DarkTheme"],"$cfg['Console']['EnterExecutes']":[2,0,1,"cfg_Console_EnterExecutes"],"$cfg['Console']['Height']":[2,0,1,"cfg_Console_Height"],"$cfg['Console']['Mode']":[2,0,1,"cfg_Console_Mode"],"$cfg['Console']['StartHistory']":[2,0,1,"cfg_Console_StartHistory"],"$cfg['ConsoleEnterExecutes']":[2,0,1,"cfg_ConsoleEnterExecutes"],"$cfg['CookieSameSite']":[2,0,1,"cfg_CookieSameSite"],"$cfg['DBG']":[2,0,1,"cfg_DBG"],"$cfg['DBG']['demo']":[2,0,1,"cfg_DBG_demo"],"$cfg['DBG']['simple2fa']":[2,0,1,"cfg_DBG_simple2fa"],"$cfg['DBG']['sql']":[2,0,1,"cfg_DBG_sql"],"$cfg['DBG']['sqllog']":[2,0,1,"cfg_DBG_sqllog"],"$cfg['DefaultConnectionCollation']":[2,0,1,"cfg_DefaultConnectionCollation"],"$cfg['DefaultForeignKeyChecks']":[2,0,1,"cfg_DefaultForeignKeyChecks"],"$cfg['DefaultFunctions']":[2,0,1,"cfg_DefaultFunctions"],"$cfg['DefaultLang']":[2,0,1,"cfg_DefaultLang"],"$cfg['DefaultQueryDatabase']":[2,0,1,"cfg_DefaultQueryDatabase"],"$cfg['DefaultQueryTable']":[2,0,1,"cfg_DefaultQueryTable"],"$cfg['DefaultTabDatabase']":[2,0,1,"cfg_DefaultTabDatabase"],"$cfg['DefaultTabServer']":[2,0,1,"cfg_DefaultTabServer"],"$cfg['DefaultTabTable']":[2,0,1,"cfg_DefaultTabTable"],"$cfg['DefaultTransformations']":[2,0,1,"cfg_DefaultTransformations"],"$cfg['DefaultTransformations']['Bool2Text']":[2,0,1,"cfg_DefaultTransformations_Bool2Text"],"$cfg['DefaultTransformations']['DateFormat']":[2,0,1,"cfg_DefaultTransformations_DateFormat"],"$cfg['DefaultTransformations']['External']":[2,0,1,"cfg_DefaultTransformations_External"],"$cfg['DefaultTransformations']['Hex']":[2,0,1,"cfg_DefaultTransformations_Hex"],"$cfg['DefaultTransformations']['Inline']":[2,0,1,"cfg_DefaultTransformations_Inline"],"$cfg['DefaultTransformations']['PreApPend']":[2,0,1,"cfg_DefaultTransformations_PreApPend"],"$cfg['DefaultTransformations']['Substring']":[2,0,1,"cfg_DefaultTransformations_Substring"],"$cfg['DefaultTransformations']['TextImageLink']":[2,0,1,"cfg_DefaultTransformations_TextImageLink"],"$cfg['DefaultTransformations']['TextLink']":[2,0,1,"cfg_DefaultTransformations_TextLink"],"$cfg['DisableMultiTableMaintenance']":[2,0,1,"cfg_DisableMultiTableMaintenance"],"$cfg['DisableShortcutKeys']":[2,0,1,"cfg_DisableShortcutKeys"],"$cfg['DisplayServersList']":[2,0,1,"cfg_DisplayServersList"],"$cfg['EnableAutocompleteForTablesAndColumns']":[2,0,1,"cfg_EnableAutocompleteForTablesAndColumns"],"$cfg['ExecTimeLimit']":[2,0,1,"cfg_ExecTimeLimit"],"$cfg['Export']":[2,0,1,"cfg_Export"],"$cfg['Export']['charset']":[2,0,1,"cfg_Export_charset"],"$cfg['Export']['file_template_database']":[2,0,1,"cfg_Export_file_template_database"],"$cfg['Export']['file_template_server']":[2,0,1,"cfg_Export_file_template_server"],"$cfg['Export']['file_template_table']":[2,0,1,"cfg_Export_file_template_table"],"$cfg['Export']['format']":[2,0,1,"cfg_Export_format"],"$cfg['Export']['method']":[2,0,1,"cfg_Export_method"],"$cfg['FilterLanguages']":[2,0,1,"cfg_FilterLanguages"],"$cfg['FirstDayOfCalendar']":[2,0,1,"cfg_FirstDayOfCalendar"],"$cfg['FirstLevelNavigationItems']":[2,0,1,"cfg_FirstLevelNavigationItems"],"$cfg['FontSize']":[2,0,1,"cfg_FontSize"],"$cfg['ForceSSL']":[2,0,1,"cfg_ForceSSL"],"$cfg['ForeignKeyDropdownOrder']":[2,0,1,"cfg_ForeignKeyDropdownOrder"],"$cfg['ForeignKeyMaxLimit']":[2,0,1,"cfg_ForeignKeyMaxLimit"],"$cfg['GD2Available']":[2,0,1,"cfg_GD2Available"],"$cfg['GZipDump']":[2,0,1,"cfg_GZipDump"],"$cfg['GridEditing']":[2,0,1,"cfg_GridEditing"],"$cfg['HideStructureActions']":[2,0,1,"cfg_HideStructureActions"],"$cfg['IconvExtraParams']":[2,0,1,"cfg_IconvExtraParams"],"$cfg['IgnoreMultiSubmitErrors']":[2,0,1,"cfg_IgnoreMultiSubmitErrors"],"$cfg['Import']":[2,0,1,"cfg_Import"],"$cfg['Import']['charset']":[2,0,1,"cfg_Import_charset"],"$cfg['InitialSlidersState']":[2,0,1,"cfg_InitialSlidersState"],"$cfg['InsertRows']":[2,0,1,"cfg_InsertRows"],"$cfg['Lang']":[2,0,1,"cfg_Lang"],"$cfg['LimitChars']":[2,0,1,"cfg_LimitChars"],"$cfg['LinkLengthLimit']":[2,0,1,"cfg_LinkLengthLimit"],"$cfg['LoginCookieDeleteAll']":[2,0,1,"cfg_LoginCookieDeleteAll"],"$cfg['LoginCookieRecall']":[2,0,1,"cfg_LoginCookieRecall"],"$cfg['LoginCookieStore']":[2,0,1,"cfg_LoginCookieStore"],"$cfg['LoginCookieValidity']":[2,0,1,"cfg_LoginCookieValidity"],"$cfg['LoginCookieValidityDisableWarning']":[2,0,1,"cfg_LoginCookieValidityDisableWarning"],"$cfg['LongtextDoubleTextarea']":[2,0,1,"cfg_LongtextDoubleTextarea"],"$cfg['MaxCharactersInDisplayedSQL']":[2,0,1,"cfg_MaxCharactersInDisplayedSQL"],"$cfg['MaxDbList']":[2,0,1,"cfg_MaxDbList"],"$cfg['MaxExactCount']":[2,0,1,"cfg_MaxExactCount"],"$cfg['MaxExactCountViews']":[2,0,1,"cfg_MaxExactCountViews"],"$cfg['MaxNavigationItems']":[2,0,1,"cfg_MaxNavigationItems"],"$cfg['MaxRows']":[2,0,1,"cfg_MaxRows"],"$cfg['MaxSizeForInputField']":[2,0,1,"cfg_MaxSizeForInputField"],"$cfg['MaxTableList']":[2,0,1,"cfg_MaxTableList"],"$cfg['MemoryLimit']":[2,0,1,"cfg_MemoryLimit"],"$cfg['MinSizeForInputField']":[2,0,1,"cfg_MinSizeForInputField"],"$cfg['MysqlMinVersion']":[2,0,1,"cfg_MysqlMinVersion"],"$cfg['MysqlSslWarningSafeHosts']":[2,0,1,"cfg_MysqlSslWarningSafeHosts"],"$cfg['NaturalOrder']":[2,0,1,"cfg_NaturalOrder"],"$cfg['NavigationDisplayLogo']":[2,0,1,"cfg_NavigationDisplayLogo"],"$cfg['NavigationDisplayServers']":[2,0,1,"cfg_NavigationDisplayServers"],"$cfg['NavigationLinkWithMainPanel']":[2,0,1,"cfg_NavigationLinkWithMainPanel"],"$cfg['NavigationLogoLink']":[2,0,1,"cfg_NavigationLogoLink"],"$cfg['NavigationLogoLinkWindow']":[2,0,1,"cfg_NavigationLogoLinkWindow"],"$cfg['NavigationTreeDbSeparator']":[2,0,1,"cfg_NavigationTreeDbSeparator"],"$cfg['NavigationTreeDefaultTabTable']":[2,0,1,"cfg_NavigationTreeDefaultTabTable"],"$cfg['NavigationTreeDefaultTabTable2']":[2,0,1,"cfg_NavigationTreeDefaultTabTable2"],"$cfg['NavigationTreeDisplayDbFilterMinimum']":[2,0,1,"cfg_NavigationTreeDisplayDbFilterMinimum"],"$cfg['NavigationTreeDisplayItemFilterMinimum']":[2,0,1,"cfg_NavigationTreeDisplayItemFilterMinimum"],"$cfg['NavigationTreeEnableExpansion']":[2,0,1,"cfg_NavigationTreeEnableExpansion"],"$cfg['NavigationTreeEnableGrouping']":[2,0,1,"cfg_NavigationTreeEnableGrouping"],"$cfg['NavigationTreePointerEnable']":[2,0,1,"cfg_NavigationTreePointerEnable"],"$cfg['NavigationTreeShowEvents']":[2,0,1,"cfg_NavigationTreeShowEvents"],"$cfg['NavigationTreeShowFunctions']":[2,0,1,"cfg_NavigationTreeShowFunctions"],"$cfg['NavigationTreeShowProcedures']":[2,0,1,"cfg_NavigationTreeShowProcedures"],"$cfg['NavigationTreeShowTables']":[2,0,1,"cfg_NavigationTreeShowTables"],"$cfg['NavigationTreeShowViews']":[2,0,1,"cfg_NavigationTreeShowViews"],"$cfg['NavigationTreeTableLevel']":[2,0,1,"cfg_NavigationTreeTableLevel"],"$cfg['NavigationTreeTableSeparator']":[2,0,1,"cfg_NavigationTreeTableSeparator"],"$cfg['NavigationWidth']":[2,0,1,"cfg_NavigationWidth"],"$cfg['NumFavoriteTables']":[2,0,1,"cfg_NumFavoriteTables"],"$cfg['NumRecentTables']":[2,0,1,"cfg_NumRecentTables"],"$cfg['OBGzip']":[2,0,1,"cfg_OBGzip"],"$cfg['Order']":[2,0,1,"cfg_Order"],"$cfg['PDFDefaultPageSize']":[2,0,1,"cfg_PDFDefaultPageSize"],"$cfg['PDFPageSizes']":[2,0,1,"cfg_PDFPageSizes"],"$cfg['PersistentConnections']":[2,0,1,"cfg_PersistentConnections"],"$cfg['PmaAbsoluteUri']":[2,0,1,"cfg_PmaAbsoluteUri"],"$cfg['PmaNoRelation_DisableWarning']":[2,0,1,"cfg_PmaNoRelation_DisableWarning"],"$cfg['PropertiesNumColumns']":[2,0,1,"cfg_PropertiesNumColumns"],"$cfg['ProtectBinary']":[2,0,1,"cfg_ProtectBinary"],"$cfg['ProxyPass']":[2,0,1,"cfg_ProxyPass"],"$cfg['ProxyUrl']":[2,0,1,"cfg_ProxyUrl"],"$cfg['ProxyUser']":[2,0,1,"cfg_ProxyUser"],"$cfg['QueryHistoryDB']":[2,0,1,"cfg_QueryHistoryDB"],"$cfg['QueryHistoryMax']":[2,0,1,"cfg_QueryHistoryMax"],"$cfg['RecodingEngine']":[2,0,1,"cfg_RecodingEngine"],"$cfg['RelationalDisplay']":[2,0,1,"cfg_RelationalDisplay"],"$cfg['RememberSorting']":[2,0,1,"cfg_RememberSorting"],"$cfg['RepeatCells']":[2,0,1,"cfg_RepeatCells"],"$cfg['ReservedWordDisableWarning']":[2,0,1,"cfg_ReservedWordDisableWarning"],"$cfg['RetainQueryBox']":[2,0,1,"cfg_RetainQueryBox"],"$cfg['RowActionLinks']":[2,0,1,"cfg_RowActionLinks"],"$cfg['RowActionLinksWithoutUnique']":[2,0,1,"cfg_RowActionLinksWithoutUnique"],"$cfg['RowActionType']":[2,0,1,"cfg_RowActionType"],"$cfg['SQLQuery']['Edit']":[2,0,1,"cfg_SQLQuery_Edit"],"$cfg['SQLQuery']['Explain']":[2,0,1,"cfg_SQLQuery_Explain"],"$cfg['SQLQuery']['Refresh']":[2,0,1,"cfg_SQLQuery_Refresh"],"$cfg['SQLQuery']['ShowAsPHP']":[2,0,1,"cfg_SQLQuery_ShowAsPHP"],"$cfg['SaveCellsAtOnce']":[2,0,1,"cfg_SaveCellsAtOnce"],"$cfg['SaveDir']":[2,0,1,"cfg_SaveDir"],"$cfg['SendErrorReports']":[2,0,1,"cfg_SendErrorReports"],"$cfg['ServerDefault']":[2,0,1,"cfg_ServerDefault"],"$cfg['ServerLibraryDifference_DisableWarning']":[2,0,1,"cfg_ServerLibraryDifference_DisableWarning"],"$cfg['Servers']":[2,0,1,"cfg_Servers"],"$cfg['Servers'][$i]['AllowDeny']['order']":[2,0,1,"cfg_Servers_AllowDeny_order"],"$cfg['Servers'][$i]['AllowDeny']['rules']":[2,0,1,"cfg_Servers_AllowDeny_rules"],"$cfg['Servers'][$i]['AllowNoPassword']":[2,0,1,"cfg_Servers_AllowNoPassword"],"$cfg['Servers'][$i]['AllowRoot']":[2,0,1,"cfg_Servers_AllowRoot"],"$cfg['Servers'][$i]['DisableIS']":[2,0,1,"cfg_Servers_DisableIS"],"$cfg['Servers'][$i]['LogoutURL']":[2,0,1,"cfg_Servers_LogoutURL"],"$cfg['Servers'][$i]['MaxTableUiprefs']":[2,0,1,"cfg_Servers_MaxTableUiprefs"],"$cfg['Servers'][$i]['SessionTimeZone']":[2,0,1,"cfg_Servers_SessionTimeZone"],"$cfg['Servers'][$i]['SignonCookieParams']":[2,0,1,"cfg_Servers_SignonCookieParams"],"$cfg['Servers'][$i]['SignonScript']":[2,0,1,"cfg_Servers_SignonScript"],"$cfg['Servers'][$i]['SignonSession']":[2,0,1,"cfg_Servers_SignonSession"],"$cfg['Servers'][$i]['SignonURL']":[2,0,1,"cfg_Servers_SignonURL"],"$cfg['Servers'][$i]['auth_http_realm']":[2,0,1,"cfg_Servers_auth_http_realm"],"$cfg['Servers'][$i]['auth_type']":[2,0,1,"cfg_Servers_auth_type"],"$cfg['Servers'][$i]['bookmarktable']":[2,0,1,"cfg_Servers_bookmarktable"],"$cfg['Servers'][$i]['central_columns']":[2,0,1,"cfg_Servers_central_columns"],"$cfg['Servers'][$i]['column_info']":[2,0,1,"cfg_Servers_column_info"],"$cfg['Servers'][$i]['compress']":[2,0,1,"cfg_Servers_compress"],"$cfg['Servers'][$i]['connect_type']":[2,0,1,"cfg_Servers_connect_type"],"$cfg['Servers'][$i]['control_*']":[2,0,1,"cfg_Servers_control_*"],"$cfg['Servers'][$i]['controlhost']":[2,0,1,"cfg_Servers_controlhost"],"$cfg['Servers'][$i]['controlpass']":[2,0,1,"cfg_Servers_controlpass"],"$cfg['Servers'][$i]['controlport']":[2,0,1,"cfg_Servers_controlport"],"$cfg['Servers'][$i]['controluser']":[2,0,1,"cfg_Servers_controluser"],"$cfg['Servers'][$i]['designer_coords']":[2,0,1,"cfg_Servers_designer_coords"],"$cfg['Servers'][$i]['designer_settings']":[2,0,1,"cfg_Servers_designer_settings"],"$cfg['Servers'][$i]['export_templates']":[2,0,1,"cfg_Servers_export_templates"],"$cfg['Servers'][$i]['extension']":[2,0,1,"cfg_Servers_extension"],"$cfg['Servers'][$i]['favorite']":[2,0,1,"cfg_Servers_favorite"],"$cfg['Servers'][$i]['hide_connection_errors']":[2,0,1,"cfg_Servers_hide_connection_errors"],"$cfg['Servers'][$i]['hide_db']":[2,0,1,"cfg_Servers_hide_db"],"$cfg['Servers'][$i]['history']":[2,0,1,"cfg_Servers_history"],"$cfg['Servers'][$i]['host']":[2,0,1,"cfg_Servers_host"],"$cfg['Servers'][$i]['navigationhiding']":[2,0,1,"cfg_Servers_navigationhiding"],"$cfg['Servers'][$i]['nopassword']":[2,0,1,"cfg_Servers_nopassword"],"$cfg['Servers'][$i]['only_db']":[2,0,1,"cfg_Servers_only_db"],"$cfg['Servers'][$i]['password']":[2,0,1,"cfg_Servers_password"],"$cfg['Servers'][$i]['pdf_pages']":[2,0,1,"cfg_Servers_pdf_pages"],"$cfg['Servers'][$i]['pmadb']":[2,0,1,"cfg_Servers_pmadb"],"$cfg['Servers'][$i]['port']":[2,0,1,"cfg_Servers_port"],"$cfg['Servers'][$i]['recent']":[2,0,1,"cfg_Servers_recent"],"$cfg['Servers'][$i]['relation']":[2,0,1,"cfg_Servers_relation"],"$cfg['Servers'][$i]['savedsearches']":[2,0,1,"cfg_Servers_savedsearches"],"$cfg['Servers'][$i]['socket']":[2,0,1,"cfg_Servers_socket"],"$cfg['Servers'][$i]['ssl']":[2,0,1,"cfg_Servers_ssl"],"$cfg['Servers'][$i]['ssl_ca']":[2,0,1,"cfg_Servers_ssl_ca"],"$cfg['Servers'][$i]['ssl_ca_path']":[2,0,1,"cfg_Servers_ssl_ca_path"],"$cfg['Servers'][$i]['ssl_cert']":[2,0,1,"cfg_Servers_ssl_cert"],"$cfg['Servers'][$i]['ssl_ciphers']":[2,0,1,"cfg_Servers_ssl_ciphers"],"$cfg['Servers'][$i]['ssl_key']":[2,0,1,"cfg_Servers_ssl_key"],"$cfg['Servers'][$i]['ssl_verify']":[2,0,1,"cfg_Servers_ssl_verify"],"$cfg['Servers'][$i]['table_coords']":[2,0,1,"cfg_Servers_table_coords"],"$cfg['Servers'][$i]['table_info']":[2,0,1,"cfg_Servers_table_info"],"$cfg['Servers'][$i]['table_uiprefs']":[2,0,1,"cfg_Servers_table_uiprefs"],"$cfg['Servers'][$i]['tracking']":[2,0,1,"cfg_Servers_tracking"],"$cfg['Servers'][$i]['tracking_add_drop_database']":[2,0,1,"cfg_Servers_tracking_add_drop_database"],"$cfg['Servers'][$i]['tracking_add_drop_table']":[2,0,1,"cfg_Servers_tracking_add_drop_table"],"$cfg['Servers'][$i]['tracking_add_drop_view']":[2,0,1,"cfg_Servers_tracking_add_drop_view"],"$cfg['Servers'][$i]['tracking_default_statements']":[2,0,1,"cfg_Servers_tracking_default_statements"],"$cfg['Servers'][$i]['tracking_version_auto_create']":[2,0,1,"cfg_Servers_tracking_version_auto_create"],"$cfg['Servers'][$i]['user']":[2,0,1,"cfg_Servers_user"],"$cfg['Servers'][$i]['userconfig']":[2,0,1,"cfg_Servers_userconfig"],"$cfg['Servers'][$i]['usergroups']":[2,0,1,"cfg_Servers_usergroups"],"$cfg['Servers'][$i]['users']":[2,0,1,"cfg_Servers_users"],"$cfg['Servers'][$i]['verbose']":[2,0,1,"cfg_Servers_verbose"],"$cfg['SessionSavePath']":[2,0,1,"cfg_SessionSavePath"],"$cfg['ShowAll']":[2,0,1,"cfg_ShowAll"],"$cfg['ShowBrowseComments']":[2,0,1,"cfg_ShowBrowseComments"],"$cfg['ShowChgPassword']":[2,0,1,"cfg_ShowChgPassword"],"$cfg['ShowColumnComments']":[2,0,1,"cfg_ShowColumnComments"],"$cfg['ShowCreateDb']":[2,0,1,"cfg_ShowCreateDb"],"$cfg['ShowDatabasesNavigationAsTree']":[2,0,1,"cfg_ShowDatabasesNavigationAsTree"],"$cfg['ShowDbStructureCreation']":[2,0,1,"cfg_ShowDbStructureCreation"],"$cfg['ShowDbStructureLastCheck']":[2,0,1,"cfg_ShowDbStructureLastCheck"],"$cfg['ShowDbStructureLastUpdate']":[2,0,1,"cfg_ShowDbStructureLastUpdate"],"$cfg['ShowFieldTypesInDataEditView']":[2,0,1,"cfg_ShowFieldTypesInDataEditView"],"$cfg['ShowFunctionFields']":[2,0,1,"cfg_ShowFunctionFields"],"$cfg['ShowGitRevision']":[2,0,1,"cfg_ShowGitRevision"],"$cfg['ShowHint']":[2,0,1,"cfg_ShowHint"],"$cfg['ShowPhpInfo']":[2,0,1,"cfg_ShowPhpInfo"],"$cfg['ShowPropertyComments']":[2,0,1,"cfg_ShowPropertyComments"],"$cfg['ShowSQL']":[2,0,1,"cfg_ShowSQL"],"$cfg['ShowServerInfo']":[2,0,1,"cfg_ShowServerInfo"],"$cfg['ShowStats']":[2,0,1,"cfg_ShowStats"],"$cfg['SkipLockedTables']":[2,0,1,"cfg_SkipLockedTables"],"$cfg['SuhosinDisableWarning']":[2,0,1,"cfg_SuhosinDisableWarning"],"$cfg['TableNavigationLinksMode']":[2,0,1,"cfg_TableNavigationLinksMode"],"$cfg['TablePrimaryKeyOrder']":[2,0,1,"cfg_TablePrimaryKeyOrder"],"$cfg['TabsMode']":[2,0,1,"cfg_TabsMode"],"$cfg['TempDir']":[2,0,1,"cfg_TempDir"],"$cfg['TextareaAutoSelect']":[2,0,1,"cfg_TextareaAutoSelect"],"$cfg['TextareaCols']":[2,0,1,"cfg_TextareaCols"],"$cfg['TextareaRows']":[2,0,1,"cfg_TextareaRows"],"$cfg['ThemeDefault']":[2,0,1,"cfg_ThemeDefault"],"$cfg['ThemeManager']":[2,0,1,"cfg_ThemeManager"],"$cfg['ThemePerServer']":[2,0,1,"cfg_ThemePerServer"],"$cfg['TitleDatabase']":[2,0,1,"cfg_TitleDatabase"],"$cfg['TitleDefault']":[2,0,1,"cfg_TitleDefault"],"$cfg['TitleServer']":[2,0,1,"cfg_TitleServer"],"$cfg['TitleTable']":[2,0,1,"cfg_TitleTable"],"$cfg['TranslationWarningThreshold']":[2,0,1,"cfg_TranslationWarningThreshold"],"$cfg['TrustedProxies']":[2,0,1,"cfg_TrustedProxies"],"$cfg['URLQueryEncryption']":[2,0,1,"cfg_URLQueryEncryption"],"$cfg['URLQueryEncryptionSecretKey']":[2,0,1,"cfg_URLQueryEncryptionSecretKey"],"$cfg['UploadDir']":[2,0,1,"cfg_UploadDir"],"$cfg['UseDbSearch']":[2,0,1,"cfg_UseDbSearch"],"$cfg['UserprefsDeveloperTab']":[2,0,1,"cfg_UserprefsDeveloperTab"],"$cfg['UserprefsDisallow']":[2,0,1,"cfg_UserprefsDisallow"],"$cfg['VersionCheck']":[2,0,1,"cfg_VersionCheck"],"$cfg['ZeroConf']":[2,0,1,"cfg_ZeroConf"],"$cfg['ZipDump']":[2,0,1,"cfg_ZipDump"],"$cfg['blowfish_secret']":[2,0,1,"cfg_blowfish_secret"],"$cfg['enable_drag_drop_import']":[2,0,1,"cfg_enable_drag_drop_import"],"$cfg['environment']":[2,0,1,"cfg_environment"],HIDE_PHP_VERSION:[17,2,1,"-"],PMA_ABSOLUTE_URI:[17,2,1,"-"],PMA_ARBITRARY:[17,2,1,"-"],PMA_CONFIG_BASE64:[17,2,1,"-"],PMA_HOST:[17,2,1,"-"],PMA_HOSTS:[17,2,1,"-"],PMA_PASSWORD:[17,2,1,"-"],PMA_PORT:[17,2,1,"-"],PMA_PORTS:[17,2,1,"-"],PMA_USER:[17,2,1,"-"],PMA_USER_CONFIG_BASE64:[17,2,1,"-"],PMA_VERBOSE:[17,2,1,"-"],PMA_VERBOSES:[17,2,1,"-"],UPLOAD_LIMIT:[17,2,1,"-"],comment:[8,1,1,""],data:[8,1,1,""],database:[8,1,1,""],name:[8,1,1,""],type:[8,1,1,""],version:[8,1,1,""]}},objnames:{"0":["config","option","Config config option"],"1":["js","data","JavaScript data"],"2":["std","envvar","environment variable"]},objtypes:{"0":"config:option","1":"js:data","2":"std:envvar"},terms:{"0000":2,"01youknowme_at_gmail":4,"0c3f":17,"0d79":17,"0eb7":17,"0pt":8,"0x9c27b31342b7511d":17,"0xce752f178259bd92":17,"0xfefc65d181af644a":17,"0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx":2,"100":[2,17],"1000":2,"1024":6,"1031":6,"113688":8,"11898":17,"11922":17,"12061":6,"12232":6,"1250":1,"127":[2,6],"13545":8,"1378":1,"14220":6,"1440":2,"1560":1,"1565":1,"168":[2,6,17],"16m":2,"172":[6,17],"179":6,"1898":1,"192":[2,6,17],"1952":[7,10],"1993":7,"1998":[3,4],"1b51":17,"1c17":17,"1df1":17,"200":6,"2000":[3,4,10],"2001":[2,3,4],"2002":6,"2004":4,"2006":1,"2007":8,"2008":4,"2009":4,"2010":4,"2011":4,"2012":4,"2013":4,"2014":4,"2015":[4,17],"2016":[1,15,17],"2017":4,"2018":[3,4],"2019":[2,6],"2048":6,"2048k":17,"2054":6,"2056":1,"210mm":8,"21704":6,"218a":15,"220":1,"2301":1,"240":2,"250":2,"255":2,"256":6,"2616":6,"26300":10,"26882":6,"297mm":8,"2cm":8,"2f17":17,"2fa":21,"300":[2,8],"3092849_at_qq":4,"31134":6,"3257":2,"3306":[2,6,17],"3457":1,"38cf":15,"3d06":17,"3d06a59ece730eb71b511c17ce752f178259bd92":17,"401":6,"404":2,"4096r":15,"42b7":17,"436f":17,"443":6,"49948350":6,"4b1a":17,"4bd7":15,"500":[1,2],"50000":2,"500000":2,"50b9":15,"511d":17,"5a32":17,"5bad":15,"5e4176fb497a31f7":15,"5xp_":17,"600":[1,6],"6375lpd_at_gmail":4,"63cb":17,"644a":17,"65d1":17,"660":6,"700":2,"720":1,"72048":2,"7383":6,"76243":6,"777":2,"7euser":6,"8000":17,"8080":17,"8192":6,"81af":17,"8259":17,"8259bd92":17,"851612429544":2,"9652":2,"98se":6,"9999":2,"999_at_yahoo":4,"9c27":17,"\u00e7okaj":4,"\u00e9tienn":4,"\u010diha\u0159":[3,4,17],"\u0161ime\u010dek":4,"\u03c0\u03b1\u03bd\u03b1\u03b3\u03b9\u03ce\u03c4\u03b7\u03c2":4,"\u03c0\u03b1\u03c0\u03ac\u03b6\u03bf\u03b3\u03bb\u03bf\u03c5":4,"\u0438\u0432\u0430\u043d":4,"\u043a\u0430\u0440\u043f\u043e\u0432":4,"\u043e\u043b\u0435\u0433":4,"\u043f\u0435\u0434\u044c\u043a\u043e":4,"\u0441\u0435\u0440\u0433\u0435\u0435\u0432\u0438\u0447":4,"\u0441\u0435\u0440\u0433\u0456\u0439":4,"\u0445\u043e\u043c\u0443\u0442\u043e\u0432":4,"\u0b95":4,"\u0b95\u0ba3":4,"\u0bae":4,"\u0bb0":4,"\u0bb7":4,"\u7f57\u6500\u767b":4,"\uc774\uacbd\uc900":4,"abstract":[4,19],"ale\u0161":4,"aputsia\u0138":4,"ara\u00fajo":4,"b\u00f8rge":4,"bal\u00e1z":4,"bokm\u00e5l":4,"boolean":2,"break":6,"byte":[2,7,8],"c\u00e9dric":4,"case":[0,2,6,12,13,17,19],"catch":17,"char":[0,2,6,15,17],"class":[2,6,17,19],"d\u00e1niel":4,"default":[0,7,9,14,17,18,19],"enum":[4,19],"export":[4,9,10,13,17,21],"final":[6,13,17,19],"fr\u00f8yshov":4,"function":[2,4,7,10,12,17,19],"garc\u00eda":4,"gesch\u00e9":4,"i\u0307sa":4,"import":[4,7,9,10,14,17,21],"j\u00fanio":4,"jo\u00e3o":4,"kate\u0159i\u0148\u00e1k":4,"kl\u00e4ger":4,"landh\u00e4u\u00df":4,"lo\u00efc":4,"long":[2,6,7,17],"lu\u00ed":4,"m\u00fcller":[3,4],"mat\u00eda":4,"maur\u00edcio":4,"micha\u0142":4,"mickevi\u010diu":4,"mirc\u0259lal":4,"montan\u00e9":4,"montr\u00e9al":6,"new":[1,2,4,7,8,15,17,18,19,20,21],"null":[2,17],"p\u00e9ter":4,"public":[2,3,6,17,22],"r\u00e4t":4,"return":[2,17,19],"seri\u00e1l":11,"short":[7,8],"switch":[2,7,17],"sz\u00e1sz":4,"t\u00f3th":4,"tom\u00e1\u0161":4,"toma\u0161t\u00edk":4,"true":[2,17],"try":[2,17],"var":[2,6,22],"vin\u00edciu":4,"void":17,"while":[1,2,19],"xos\u00e9":4,ACE:1,AES:[2,17],AND:[0,2],Abs:19,Adding:8,And:[1,4,6,17],Are:2,But:[2,8,13,15,17],CVS:4,FOR:[2,3],For:[2,4,6,8,15,17,18,19,22],GIS:6,His:17,IIS:[2,7,14,17],INTO:6,Its:6,Kis:4,NOT:[2,6,8],Not:[4,6],One:[6,17],RDS:17,Such:17,THE:[0,19],TLS:7,TWS:4,That:[2,6],The:[0,2,3,4,7,8,11,13,14,15,16,17,19,20,22],Then:[2,6,17],There:[2,6,7,13,16,17,19,20],These:[1,2,6,13,19],USING:17,Use:[2,4,6,12,17,19],Used:[8,17],Uses:17,Using:[1,2,8,9,11,14,19,20],WITH:[6,17],Was:17,With:[2,12,17],Yes:6,_db:2,_get:17,_post:17,_server:[2,17],_session:17,_variabl:[2,18],a59:17,aaleksanyants_at_yahoo:4,ab39:15,abd:4,abdulla:4,abeyrathna:4,abil:6,abiword:8,abl:[0,2,4,12,15,17,20],abort:2,about:[2,7,8,9,11,17,19],abov:[1,2,6,17,19],abram:4,abravo_at_hq:4,absenc:[0,2,6],absolut:[2,17],academi:1,accept:[2,6,7],access:[0,2,4,7,13,14,15,17],accident:2,accommod:1,accompani:17,accomplish:[6,8,17],accord:2,accordingli:[2,6,19],account:[2,6,10,12,17],achch1990_at_gmail:4,achchuthan:4,achiev:[2,6,12,17],acl:[2,7,17],acokaj_at_shkod:4,across:[2,7],act:20,action:[2,12,15,17],actionlinksmod:2,activ:[2,6],actual:[6,17,19],acunetix:6,adam:4,adapt:1,add:[0,2,4,7,8,10,12,17],added:[2,4,6,17],addhandl:6,adding:[6,10,19],addit:[2,4,7,8,15,17,18],addition:[2,3,17],addon:6,addprefix:17,addr:2,address:[0,6,7,17,19],addtyp:6,adjust:2,adler:7,admin:2,administ:10,administr:[2,4,6,7,10,12,15,17],admir:4,adnan:4,adob:7,adopt:8,adriaenssen:4,adrian:4,adsbot:6,advanc:[6,15,17],advantag:6,advic:22,advis:[2,17],affair:1,affect:[2,6,19],afraid:17,african:1,after:[2,4,8],again:[2,13,17],against:[15,17],agent:[6,7],agre:2,ahm:4,ahmedtek1993_at_gmail:4,aj_at_isit:4,ajax:4,ajaxif:4,ajaxifi:4,aka:17,ako:4,alan:4,albanian:4,albb0920_at_gmail:4,albert:4,alberti:4,alberty_at_neptunlab:4,albiol:4,aleksany:4,alemoretti2010_at_hotmail:4,ales_at_hakl:4,alessandro:4,alex:4,alexalex:4,alexand:[3,4],alexandr:4,alexei:4,alexi:4,alexrohleder96_at_outlook:4,algeri:4,algi:4,algorithm:[2,7,17],alia:4,align:6,alioglu:4,all:[2,5,6,7,8,10,12,13,15,17,18,19,22],alloc:2,allow:[1,2,4,7,8,10,12,13,17,18,19],allow_url_open:14,allowarbitraryserv:[2,17],allowdeni:[2,6,17],allownopassword:[2,17],allowoverrid:6,allowroot:[2,17],allowthirdpartyfram:2,allowuserdropdatabas:2,along:[3,17],alpha:6,alreadi:[2,17],also:[0,2,4,6,7,8,10,12,15,16,17,19,22],alter:[2,6,7,10],altern:[2,6,7,17],although:[2,4,6],alvar:4,alwai:[2,7,15,17,19],alwaysexpand:2,amalesh:4,amar:4,amazon:17,amazonaw:2,amihaita_at_yahoo:4,amir:4,ammar:4,among:[2,8],amount:[1,2,6,19],analys:4,analyz:[2,4,6],ander:4,andersen:4,andika:4,andika_at_gmail:4,andrea:4,andrei:4,android:[20,22],andrzej:4,andrzej_at_kynu:4,angular:2,ani:[0,2,3,4,7,8,10,12,13,15,17,19],ankit:4,ann:4,announc:[15,17],anonym:[2,6],anonynuin:4,anoth:[1,2,6,7,13,17,19],answer:7,anticip:7,antiviru:6,anybodi:17,anyon:17,anyth:[6,17],anywai:6,apach:[2,7,14,17],apache2:6,apache_http_serv:7,apart:6,api:[2,6,7],appear:[0,2,6,15],append:[2,19],appl:7,appli:[2,6,13,17,19],applic:[1,2,7,13,15,17,21],applytransform:19,approach:[2,20],appropri:17,approxim:[2,6],arab:4,arben:4,arbitrari:[2,6,17,18],arbitraryserverregexp:2,architectur:6,archiv:[6,7,8,17],area:[1,2],arg_separ:6,argument:6,ari:4,arifianto:4,armel:4,armenian:4,arora:4,around:[2,17],arrai:[2,6,17,18,19],arrow:6,articl:[6,8,11],artyom:4,asc:[2,17],ascend:2,ascii:[2,19],ash:4,ashkan:4,ashraf:4,ashutosh:4,ask:[2,7,9,20],aso:4,aspect:[2,14,22],assess:4,assign:[2,6,15,21],associ:2,assum:[2,6,17],astarita:4,asuni:4,attach:[2,7],attack:[2,17],attempt:[2,6,15,17],attent:17,attila:4,attribut:[2,8],atul:4,atulpratapsingh05_at_gmail:4,atvejis_at_gmail:4,aurora:17,auth:[2,17,20],auth_http_realm:2,auth_map:17,auth_typ:[2,17],authent:[4,9,14,15,21],authi:20,authlog:[2,17],authlogsuccess:2,authnam:17,author:[2,4,6,8,17,18],authrequest:17,authtyp:17,authuserfil:17,auto:2,auto_incr:[6,8],autocomplet:[2,17],autoconnect:2,autodetect:2,autom:[4,17],automat:[0,2,4,7,8,10,16,17],auxiliari:17,avail:[2,3,6,7,13,15,17,19,20,22],availablecharset:2,averag:6,avoid:[2,6,8,17],awai:6,awar:[0,6,17],axel:4,axes:1,axi:[1,6],ayush:4,azerbaijani:4,azevedo:4,azzabi:4,b313:17,b947:15,b980:15,b_renam:22,babel:4,back:[7,8,12,13],backend:[6,17],background:2,backquot:6,backslash:6,backspac:10,backup:17,backward:[2,18],bad:[6,17],badalo:4,badalo_at_sapo:4,baiduspid:6,bailout_on_error:6,bakondi:4,balanc:2,ban:6,bansod:4,bao:4,baophan94_at_icloud:4,bar:[2,14],barri:4,base64:17,base:[2,4,7,8,14,15,17,20],basic:[6,9,17,19,22],batch:10,bd92:17,becaus:[2,4,17,18,19],beck:4,beck_at_web:4,becom:6,been:[2,5,6,8,17,18],befor:[2,6,8,15,18,19],began:6,begin:[2,6,8,17],behavior:[2,17,22],behaviour:[2,6],behind:[2,6],being:[2,8,15,17,19],belarusian:4,believ:6,bellon:4,belong:[2,17],below:[0,2,7,12,13,18,19],benefit:[2,6],benjamin:4,bennetch:17,benni:4,berkelei:2,bernard:4,best:[6,8,17],better:6,between:[0,1,2,6],beyond:17,biesaga:4,big:[2,8],bigdump:6,bigger:[6,8],bimal:4,bin:[4,6],binari:[2,19],bind:17,bis:2,bisht:4,bit:[2,17],bits_at_gmail:4,bkehayov_at_gmail:4,blagynchy_at_gmail:4,blank:[2,19],blob:[2,10],blobstream:4,block:[2,6,7,17],blowfish:[2,4,7],blowfish_:7,blowfish_secret:[2,17],bluthardt:4,bob:[2,6],bodi:17,bogor_at_gmail:4,book:[7,8,21],bookmark:[2,4,9,10,17,21],bookmarkt:2,bool2text:2,boost:2,bora:4,borg:4,borge947_at_gmail:4,borggrev:4,borrow:4,bot:6,botelho:4,both:[1,2,6,8,13,16,17],bottom:[2,6,12,13],bound:19,boutel:7,box:[0,9],boyan:4,branch:17,braschi_at_outlook:4,bravo:4,brazil:4,breakag:17,broader:7,broken:6,bronshtein:4,brows:[4,9,10,13,19,21],browsemarkeren:2,browsemim:2,browsepointeren:2,browser:[2,7,8,9,15,16,17,19],bruce:7,bruguera:4,bruno:4,brunomendax_at_gmail:4,brute:17,bskim45_at_gmail:4,buddika:4,buffer:[2,6,19],bug:[2,4],bugfix:4,buggi:[6,17],bugzilla:6,build:[2,6,17,19],builder:4,built:[4,6],bulgarian:4,bum:4,bumsoo:4,bunch:6,bundl:2,burak:4,busi:7,bussier:4,button:[0,2,6,7,17,18,20],buz_at_gmail:4,bypass:[2,6],bz2:2,bzip2:[2,6,7],bzipdump:2,c0ee:17,cach:[2,6,17],caching_sha2_password:17,calcul:8,calendar:2,call:[2,6,7,10,13,17,19],calvo:4,can:[0,1,2,3,5,7,8,10,11,12,13,15,16,17,18,19,20,22],canada:6,cannot:[2,8,19],capabl:7,captcha:[2,15,17],captchaapi:2,captchacsp:2,captchaloginprivatekei:[2,17],captchaloginpublickei:[2,17],captchamethod:2,captcharequestparam:2,captcharesponseparam:2,captchasiteverifyurl:2,car:8,car_id:8,care:[6,19],carefulli:2,casotti:4,casotti_at_uol:4,cat:4,catalan:4,categori:13,category_id:13,caus:[2,15,17],caution:17,cav:4,cc0:22,cdac1234_at_gmail:4,cdba:2,ce73:17,ce75:17,cedric:4,cell:[2,6,7],center:[6,17],cento:17,central:[2,4,17],central_column:2,cert:2,certain:[2,7,19],certif:[2,17],certifi:17,cf2a:17,cfg:[2,6,8,12,13,17,18,19,20],cgi:[7,17],chanaka:4,chanc:2,chang:[2,4,7,8,10,12,17,18,19,22],changelog:7,changem:17,chao:4,chaovavanich:4,chapeaux:4,chapter:[2,6,7,17],charact:[2,7,8,19],charanyogeshwar_at_gmail:4,charedit:2,charg:2,charset:[2,4,6,17,19],chart:[4,9,21],chartextareacol:2,chartextarearow:2,chat:1,chathuranga:4,chaudhari:4,check:[2,3,4,5,6,7,10,12,17,19,22],checkbox:[1,2,8,12],checkconfigurationpermiss:2,checklink:6,chee:4,cheng:4,chien:4,chimera:6,china:4,chines:4,chirayu:4,chirip:4,chiyokawa:4,chiyokawa_at_gmail:4,chmod:[2,6],choic:[2,8,17],choos:[1,2,6,17,19],chose:[6,17],chosen:[2,6],chown:[2,6],chri:4,chrisj_at_ctel:4,christoff:4,christoph:4,chrome:20,chronolog:9,chrysler:8,cidr:2,cipher:[2,7],circumv:[2,6],cj_at_gmail:4,claimed_id:17,clanboy_at_163:4,classless:2,clau:4,claus:2,clear:[6,17],click:[1,2,7,12,13,15,19,20],clickabl:[2,13],clickjack:2,client:[2,7,9,17],client_:7,clipboard:[2,6],clone:17,close:[2,6,17],cloud:9,clshttp:6,clue:6,cluster:2,cma:4,cocerhan:4,cochran:4,code:[2,4,6,7,15,17,18,20],codemirror:2,codemirroren:2,collaps:2,collat:2,collect:[7,22],colognian:4,colon:6,color:2,column:[2,4,7,10,19],column_:7,column_com:2,column_info:[2,19],columns_priv:6,com:[2,3,4,6,8,14,17],combin:[2,6,8],come:[2,3,17,18],comma:[7,8,17],command:[2,6,17,20],comment:[0,2,4,7,8,17],commiss:7,common:[2,6,7,17,20],common_gateway_interfac:7,commonli:[7,8,19],commun:[7,10],compar:1,compat:[2,4,6,7,8,13,14,17,18,22],compil:6,complain:17,complet:[2,4,8,15,17],complex:[0,2,10],compliant:4,complic:2,compos:[2,3,9,20,22],comprehens:[4,8],compress:[2,7,8,10],compressonfli:[2,6],comput:[7,17],computation:8,computer_network:7,computer_sci:7,concept:[4,10],concern:[8,15],condit:6,conf:6,confer:4,config:[2,6,16,22],configur:[0,4,7,9,10,13,15,19,20,21],confirm:[2,6,20],conflict:6,conform:7,confus:6,connect:[7,9,10,12,15,16],connect_typ:2,consecut:6,consequ:2,consid:[12,17,20],consider:[1,17],consist:[6,18],consol:[4,9,10],consoleenterexecut:2,constanti:4,constraint:4,construct:[0,6],consult:8,consum:7,contact:[6,15],contain:[2,8,13,17,18,19,22],container_nam:17,content:[2,7,8,9,15,17,19,22],content_security_polici:7,context:6,continu:[2,17],contrib:17,contribut:[4,5,6],contributor:4,control:[2,4,7,12,15,17],control_:2,control_ssl:2,control_ssl_ca:2,control_ssl_cert:2,control_ssl_kei:2,controlconnect:15,controlhost:2,controlpass:[2,6,17],controlport:2,controlus:[2,6,17],convei:7,conveni:17,convent:19,convers:[2,4],convert:[6,19],cooki:[4,7,9,14,18],cookiesamesit:2,coordin:2,copi:[2,3,10,12,17,18],copyright:9,corazza:4,corazza_at_wanadoo:4,core:[2,4,7],correct:[2,17],correctli:[2,6,8],correspond:[2,6,19],corrupt:[2,6],cost:1,costa1988sv_at_gmail:4,costel:4,could:[2,8,12,15,17],count:[2,6,17],countri:6,country_cod:6,cours:[2,6],cover:17,coverag:6,craft:15,crawler:6,crawleradmin:6,creat:[2,4,7,8,10,13,19,21],create_t:17,creation:[2,4],creator:4,credenti:[2,17],credit:[3,9,15],criteria:6,cross:[2,7,17],cryptograph:[7,17],csp:7,cspallow:2,css2:4,css:[2,4,18],csv:[7,10,17],csv_column:17,ctrl:[2,6],ctype:14,curl:[6,14],current:[1,2,4,6,7,10,13,15,17,18,22],currentqueri:2,cursor:2,custer:2,custom:[1,4,8,9,12,16,19,21,22],cut:2,cve:15,cwlin0416_at_gmail:4,cybot_tm_at_us:[3,4],czech:[2,4],d3xter_at_us:4,da2n_s_at_yahoo:4,da68:15,da68ab39218ab947:15,dadan:4,dai:2,dalibor:4,dan:4,daniel:4,danilo:4,danish:[4,8],danorse_at_gmail:4,dark:2,darkthem:2,darlow:4,dash:[2,6],dashboard:2,data:[1,2,7,10,15,16,17,19],databas:[0,4,7,8,9,10,13,15,16,19,21],database_engin:7,database_index:7,database_trigg:7,databaseinterfac:15,date:[1,2,6,8,17],dateformat:2,datetim:2,dave:4,david:4,davidson:4,db1:[2,17],db2:[2,17],dbase:6,dbconfig:17,dbf:6,dbg:[2,20],dbhost1:17,dbhost2:17,dbhost3:17,dbhost:17,dbm:7,dcbf:17,dckyoung_at_gmail:4,dd0:17,ddrmoscow_at_gmail:4,deactiv:[2,6],deal:7,debian:2,debug:[2,4],decemb:4,decid:[2,6],declar:[2,6,8,17,19],decod:17,decreas:8,decrypt:[2,6],default_socket:6,defaultconnectioncol:2,defaultentrypoint:17,defaultforeignkeycheck:2,defaultfunct:2,defaultlang:2,defaultquerydatabas:2,defaultqueryt:2,defaulttabdatabas:2,defaulttabserv:2,defaulttabt:2,defaulttransform:[2,19],defeat:2,defin:[2,6,7,12,17,19],definit:[2,6,11,13,18],degrad:6,deki:4,deky40_at_gmail:4,delai:6,delet:[2,4,17,18,21],delimit:2,delisl:[3,4,11,17],delislma_at_collegesherbrook:4,delorm:4,demo:[2,8,17],demonstr:[2,20],den:4,deni:[2,4,17],denni:4,depend:[2,6,8,17,20,22],deploi:17,deprec:2,depth:6,der:4,derek:4,desc:2,descend:2,describ:[2,7,15,16,19],descript:[6,8,17,18,19],design:[4,7,9,17,21],designer_coord:2,designer_set:2,desir:[2,6,7,17],desktop:6,desport:4,destin:[2,7],detail:[2,3,6,15,17],detect:[2,4,6,17],determin:[2,8,12,17],dev:[2,6,8,17],dev_at_gmail:4,develop:[4,7,8,9,15,17,18],deven:4,devenbansod:4,devic:7,dhananjai:4,dhima:4,dhtml:4,dhundhara:4,diagnos:6,dialog:[6,8,17,19],dialogu:6,did:[2,6],didn:2,die_error:17,dieter:4,differ:[2,4,7,10,17,19],differenti:6,difficult:6,difficulti:10,digest:6,dimension:7,dingo13_at_gmail:4,dingo:4,dinosaur:1,diprofinfin:4,dir:[6,17],direct:[2,6,17,19],directli:[2,7,8,10,17],directori:[3,6,7,8,9,17,18,19,22],dirnam:17,disabl:[2,6,17,20],disable_emodifi:6,disable_funct:2,disablei:2,disablemultitablemainten:2,disableshortcutkei:2,disallow:[2,17],disappear:[2,6],discov:17,discuss:6,disk:[7,8],disorderman:4,disorderman_at_qq:4,displai:[0,1,4,7,8,9,10,13,14,17,18,19],display_error:[6,17],displayserverslist:2,distanc:1,distinct:6,distribut:[2,3,4,9],disturb:17,div:17,divid:7,djh1017555_at_126:4,dll:6,dnighttv_at_gmail:4,doc:[2,6,7,8,17],docker:9,doctyp:[6,17],document:[2,7,14,17,22],documentclass:[6,8],doe:[2,10,12,14,15,17,18,19,20],doesn:[2,17,19],doing:[6,13,17,20],dom:4,domain:[2,6,22],domainnam:17,domen:4,don:[2,12,17],donavan_at_hotmail:4,donavan_martin:4,done:[0,2,6,17,20],dongl:20,dongyoung:4,dorning:6,dot:2,doubl:[2,6],dougla:4,douglaseccker_at_hotmail:4,dovi:4,dovyda:4,down:[2,12,13,19],downgrad:[6,17],download:[2,3,6,10,15,16,17,18,22],dozen:20,drag:[2,6,8,13],draw:1,drawn:[1,19],dri:4,driven:17,driver:2,drizzl:4,drop:[2,4,8,10,12,13,19],dropdown:[0,6],due:[2,6,17],duguying2008_at_gmail:4,dump:[2,4,8,10],dure:[6,8,17],dutch:4,dynam:[4,6,7],each:[0,2,3,7,8,12,17,19],eas:[2,19],easi:[2,6,8,19],easier:[2,7,18],easiest:[6,17,20],easili:[1,2,6,8,17],eccker:4,echo:17,edgar:4,edgarsneims5092_at_inbox:4,edit:[8,9,10,13,17,18,21],editor:[2,4,17,19],edjacobjunior_at_gmail:4,edlund:4,edlund_at_upright:4,edu:[4,17],eduardo:4,edward:4,edwin:4,edwin_at_yohanesedwin:4,eecyh:17,ef12:17,effect:[2,11,19],effici:[2,6],effort:15,efroys_at_gmail:4,egbrave_at_hotmail:4,egg:1,egorov:4,eilertsen:4,either:[2,6,8,15,16,17,19],ek_at_luna:4,ekio_at_gmail:4,electrotechn:7,element:[6,7,19],eliovir:4,eliovir_at_gmail:4,els:[0,2,4,6,17],elseif:17,email:[4,6,15],emanuel:4,emb:8,embed:[2,8],emerg:17,emit:6,emphas:2,empti:[2,17],enabl:[2,7,12,14,17,18,19],enable_drag_drop_import:2,enableautocompletefortablesandcolumn:2,enclos:[2,6],encod:[2,4,6,17],encompass:7,encount:6,encourag:6,encrypt:[2,15,17],encyclopedia:7,end:[0,2,6,8,17,19],endors:11,enforc:13,eng_at_globomail:4,engin:[6,7,8],english:[2,4,8,17],engstrom:4,enhanc:4,ensur:[2,6,8,17],enter:[0,2,17,19,20],enterexecut:2,enterpris:6,entir:[6,14,17],entri:[2,6,17],entrypoint:17,environ:[2,6,15],epel:17,equival:[2,19],erik:[4,6],ero:4,erosakos02_at_gmail:4,error:[2,4,7,8,17],escap:[2,6,15],escapestr:15,eshin:4,eslint:4,especi:[0,2,6,17],espen:4,esperanto:4,esri:2,essam:4,est:17,estonian:4,esy_vb_at_yahoo:4,etc:[2,6,8,17,19],etienn:4,evalu:8,even:[2,3,6,8,10,12,17],event:[2,4,7,10],everi:[2,6,7,15,17,20],everyon:4,everyth:[0,6,17],everytim:2,everywher:6,evil:17,exabot:6,exact:[2,6],exactli:19,examin:6,exampl:[0,4,8,9,10,15,18,19,20,21,22],exce:2,except:[2,6,17,19],exchang:17,exclud:6,exclus:6,exectimelimit:[2,6],execut:[0,2,7,10,15,17],executor:6,exist:[2,4,7,8,15,17,19,21],exit:17,expand:[0,2,6],expans:[0,2,6],expect:[2,6,8],expens:1,experi:8,experienc:6,experiment:2,expir:4,explain:[2,6,13,17],explan:[6,17],explicit:2,explicitli:[2,17],explod:17,exploit:15,explor:[2,15,17],export_templ:2,expos:17,expose_php:17,exposur:17,express:[0,2,6,7,19],ext:6,extend:[7,8,17,19],extens:[2,4,7,10,14,17],extension_dir:6,extern:[2,4,9,15,17],extra:17,extract:[6,17],eyal:4,eye:6,f188:17,facil:2,fact:[2,6,7,17],factor:[2,9,17,21],fadhiil:4,fadhiilrachman_at_gmail:4,fail2ban:[15,17],fail:[2,17],fall:13,fallback:2,fals:[2,6,17,22],famma:4,fando:6,faq:[7,9],fashion:2,fast:[6,7],fastcgi:7,fathi:4,fauth:4,fauveau:4,fauveau_at_globali:4,favicon:17,favorit:[2,17,18],fb5b:15,fcgi:17,featur:[0,2,4,5,7,8,9,11,12,13,17,18,19],feedback:4,feedfetch:6,feel:6,fefc:17,feryanto:4,few:[2,6,17],fewer:2,fido:21,field:[1,4,7,8,9,13,17,18,19],field_:7,file:[2,3,4,7,9,10,14,16,18,21],file_format:7,file_get_cont:17,file_template_databas:2,file_template_serv:2,file_template_t:2,file_upload:6,fileinfo:6,filenam:[2,6,19],files:8,filesystem:[2,6],filippo:6,fill:[2,6,15,17],filter:[2,6],filterlanguag:2,find:[0,2,6,11,15,16,17],fingerprint:[15,17],finnish:4,firewal:[2,6,17],first:[2,4,6,7,8,12,13,15,17,19,20],first__second__third:2,first_timestamp:2,firstdayofcalendar:2,firstlevelnavigationitem:2,fit:[2,3,4,8],five:19,fix:[4,13,15],flag:2,flemish:4,floss:4,flush:6,fly:2,focu:2,folder:[2,8,17],follow:[1,2,4,7,8,10,15,17],font:2,fontsiz:2,foo:6,foobar:17,food:1,footer:2,footnot:10,forc:[2,17],forcessl:2,foreign:[2,7,10,13],foreign_db:2,foreign_kei:7,foreign_key_check:2,foreignkeydropdownord:2,foreignkeymaxlimit:[2,6],forget:[2,6,17],forgot:6,form:[2,4,7,8,17],format:[2,4,7,8,10,17,19],format_http:17,former:4,formerli:7,formula:8,forth:19,forum:[4,6],forward:2,forwardfor:17,found:[2,15,17],foundat:3,fpdf:4,fpm:17,fragment:6,frame:[2,4,6],framework:22,francesco:4,francisco:4,franco:4,free:[3,7,10,19,22],freeotp:20,french:4,frequent:[2,7,9],freshli:17,fri:17,frisian:4,from:[0,1,2,4,7,8,9,10,12,13,15,18,19,20,22],front:6,frontend:17,ftp:[2,6,17],fujifilm:4,fulanodet:4,full:[0,2,12,17],fulli:[6,17],fun:11,func_char:2,func_dat:2,func_numb:2,func_spati:2,func_uuid:2,fundawang_at_gmail:4,further:[2,4,6,16],furthermor:2,futur:[2,6],future_id:6,ga244_at_is8:4,gabriel:4,gailli:7,gain:12,galician:4,gamma:6,gandon:4,gandon_at_isia:4,ganeshtheone_at_gmail:4,garvin:[3,4],gatewai:7,gc_maxlifetim:2,gd2:[7,14],gd2avail:2,gd_graphics_librari:7,geert:4,gener:[1,3,4,7,8,9,12,15,17,19,20,22],genuin:17,geograph:8,geometri:[6,8],geomfromtext:2,georgiev:4,geospati:8,geral_at_jonil:4,german:4,get:[2,11,13,15,17,18,19],get_login_credenti:[2,17],getauthorizeurl:17,getinfo:19,getmessag:17,getmimesubtyp:19,getmimetyp:19,getnam:19,ghimir:4,giacobazzi:4,giacobazzi_at_ferrania:4,gigabot:6,gilli:4,gilli_at_gmail:4,giovanni:4,girish:4,git:[2,9,20],github1_at_openaliasbox:4,github:[4,6,17],give:[2,17,22],given:[2,6,7,8,12,15,17],global:[6,10,12,16,17,19],globalfunct:[2,17],glossari:9,glund_at_silversoft:4,gmail:17,gmbh:6,gnauk89_at_googlemail:4,gnu:[3,7,17],goe:[2,6],goerick:4,going:[4,8,17],goldfing:1,good:[2,6,17,18,19],goodlinuxuser_at_chmail:4,googl:[4,6,8,17,20],google2fa:20,googlebot:6,got:[3,8],gov:4,gpg:17,gpl:[3,22],grab:[6,17],gracefulli:6,grai:6,grant:[2,6,12,17],graphic:[7,10,13,17],great:[4,5],greatymh_at_gmail:4,greek:4,green:8,grid:2,gridedit:2,group:[2,6,7,15,21],grow:19,gryniuk:4,gstatic:2,guarante:2,guess:2,gui_at_webseibt:4,guia:4,guid:[2,9,11,17],guilherm:4,gupta:4,gzencod:6,gzip:[2,4,7,10],gzipdump:2,haa:4,had:[6,17],hakl:4,hamann:4,hamzah:4,han:4,hand:[6,17],handbook:17,handl:[2,6,8,10,12,17,18,19],handler:4,happen:17,hard:[2,17],harden:[6,15],harder:15,hardwar:21,harm:2,harush:4,harvest:6,has:[0,2,6,7,8,17,18,19],hash:[14,17],hassan:4,hate:17,haugom:4,hauk:4,have:[0,2,3,4,5,7,8,10,11,12,13,14,15,17,18,19],haven:6,head:17,header:[2,7,8,17],heart:6,hebrew:4,height:2,heis:6,helder:4,hello:4,help:[2,4,5,17],henningsen:4,here:[2,6,8,17,19],heritrix:6,hermann:4,hex:2,hexadecim:2,hhvm:6,hibern:8,hick:[3,4],hidden:2,hide:[2,17],hide_connection_error:2,hide_db:2,hide_php_vers:17,hidestructureact:2,hierarch:4,hierarchi:2,high:[2,6,8],higher:[6,17],highlight:2,hilal94_at_gmail:4,hilal:4,him:4,hindi:4,hint:[2,6,7],hiroshi:4,his:[4,17],hisakawa:4,histor:2,histori:[2,4,17],hitowerdigit_at_hotmail:4,hkp:17,hofman:4,hofman_at_gmail:4,hold:[2,6],hole:[1,2],holm:4,home:[10,12],homepag:[6,19],hope:3,hopefulli:19,hord:4,horizont:[6,7],host:[2,4,7,17],host_:7,hostnam:[2,6,7,17],hotp:20,hover:[2,13],how:[2,13,17,19],howev:[2,6,17,19],href:17,hst:17,htaccess:[2,6,7,17],html:[2,4,8,15,17,19],htmlspecialchar:17,htpasswd:17,http:[2,3,4,7,8,14,18],http_author:17,http_cooki:7,http_host:[2,6],http_post_var:6,http_user_ag:6,http_x_forwarded_for:2,httpd:[6,7],httponli:2,httrack:6,hudsonvsm_at_gmail:4,huge:2,hugu:4,human:[4,8],hung:4,hungarian:4,hungdx_at_gmail:4,huseyn:4,huseyn_esgerov_at_mail:4,hy000:6,hyperfido:20,hyperlink:13,hypertext:7,hypertext_transfer_protocol:7,iOS:20,ia_archiv:6,ian:4,ibennetch:17,ibm:[6,9],iccrawl:6,ichiro:6,ico:17,icomoon:22,icon:[2,4,6,12,17,18,19,22],icons8:22,iconv:2,iconvextraparam:2,id_new:6,idea:[2,4,6,15,17,18,19],identif:17,identifi:[1,2,6,7,17],ie6:2,iec:[7,10],ifmodul:6,ignacio:4,ignor:[2,6],ignoremultisubmiterror:2,igor:4,iis:6,illustr:1,imag:[2,7,10,12,14,17,19],img:[18,22],impact:[2,6,17],implement:[2,7,17,19,20,21],impli:3,implic:17,implicitli:7,impos:2,imposs:[2,17],improv:[2,4,7,8,10,15,17],inact:[17,19],inc:[2,6,7,16,17,18,22],includ:[2,3,4,7,8,10,15,17,18,19,20,22],include_onc:17,include_path:6,inclus:6,incom:17,incomplet:2,increas:[2,6,8],increment:2,independ:[4,6,7],index:[2,4,7,9,10,17],indic:[8,17],individu:12,indonesian:4,indrajith:4,inexperienc:12,info:[2,3,4,6,18,21],info_at_opsbielani:4,info_at_robinvandervliet:4,inform:[2,3,7,8,9,10,17,19,21],information_schema:2,infrastructur:17,ini:[2,6,10,14],ini_set:17,initi:[2,6,17],initialslidersst:2,inlin:[2,4,6,14],innodb:[2,7,10,13],innodb_strict_mod:6,innov:7,input:[0,2,4,17,19],insecur:17,insensit:6,insert:[0,2,4,8,17,19],insertrow:2,insid:[2,6,15,17,19,21,22],insist:17,instal:[2,7,8,9,14,15,20],instanc:2,instead:[2,6,8,17],instruct:[2,6,19],integ:2,integr:[2,4,6,10,17],intend:[2,10,15,17,22],inter:[2,7],interact:[6,7],interchang:8,interest:[6,11],interfac:[2,4,6,7,8,12,14,16,19],interfer:6,interlingua:4,intern:[2,4,7,8,13,17,19],international_organization_for_standard:7,internet:[2,7,17],internet_information_servic:7,internet_protocol:7,internet_protocol_suit:7,internet_server_application_programming_interfac:7,internet_service_provid:7,internetwork:7,interoper:8,interpret:[2,6],intext:6,intitl:6,introduc:[2,4,6],introduct:[9,21],invalid:[2,6,17],invis:2,invit:5,invok:17,involv:[6,17],ion:4,ionut:4,ip_address:7,ipmask:2,ipv4:[7,19],ipv6:[2,7],ironpotts_at_gmail:4,is_str:17,isaac:17,isapi:[6,7,17],isma:4,ismael_at_gmail:4,isn:2,iso:[7,10],isp:[2,7,9,17],isset:17,issu:[2,9],italian:4,item:[2,6,7],its:[2,7,8,10,15,18],itself:[0,2,6,17],itxiaopang:4,iusr_machin:6,ivan:4,ivan_at_mail:4,ivanlanin_at_us:4,jackson:4,jafar:4,jakobsen:4,jakobsen_at_gmail:4,jakub:4,jan:[4,17],jan_at_nrw:4,janhenrikm_at_yahoo:4,janni:4,januari:17,janussen:4,japanes:4,java:[6,8],javascript:[2,4,8,14,15,17],jayaratn:4,jconstanti_at_yahoo:4,jean:7,jedermann:4,jeev:6,jhaveri:4,jim:4,joan:4,joan_at_montan:4,job:17,joe:[4,6],john1db:6,john2db:6,john_at_panevo:4,john_db:6,johnson:[3,4],join:[2,4,6],jona:4,jong:4,jongdeok:4,jonsson:4,jonsson_at_norsjovallen:4,jordi:4,jose:6,josep:4,jozef:4,jpeg:[7,14,19],jpg:7,jqplot:1,jqueri:[1,3,6,14,22],jremes_at_outlook:4,jrzancan_at_hotmail:4,jsdoc:4,json:[6,14,17,18],juha:4,juli:17,julian:[4,7],jump:[2,6],june:4,junior:4,jur:4,just:[0,2,4,7,8,13,17,20],k725:4,kang:4,kanji:4,kankanamg:4,kannada:4,kasperski:6,kasun:4,katerinak_at_gmail:4,kaushalya:4,kawada:4,kawada_at_den:4,kazi:4,keck:[3,4],keep:[2,6,17],kehayov:4,kei:[2,4,7,9,13,15,17,21],kelli:4,kempf:4,kept:[2,19],kettler:4,keybas:[15,17],keyr:[15,17],keyserv:[15,17],khomutov:4,kick:6,kid:4,kiddi:6,kidsmart33_at_gmail:4,kiko:4,kim:4,kim_at_nhn:4,kind:[2,6,7,15],kindli:6,kingdom:4,kirillov:4,kissu:4,kit:[3,17,22],klau:6,kleemann:4,klokner:4,know:[17,19],knowledg:6,known:[2,7,9,22],kobayashi_at_gmail:4,koch:4,koch_at_enough:4,kollar:4,kollar_at_pg:4,kollmann:4,koo:4,koolen:4,korakot:4,korakot_at_inam:4,korean:4,kosit:4,kr_at_gmail:4,kraai:4,krasimir:4,kristjan:4,kristjanrats_at_gmail:4,kristof:4,kronsbein:4,krystian4842_at_gmail:4,krystian:4,kumari:4,kunishima:4,kuppelwies:4,kurdish:4,kurt:4,kurt_at_kh:4,kushagra4296_at_gmail:4,kushagra:4,kword:8,kyeong:4,kyungjun2_at_gmail:4,label:[0,1,6,7,15],lacina:4,ladisch:4,lakshya:4,lang:[2,17],languag:[4,7,9,10,17],languagetool_at_gmail:4,lanin:4,larg:[2,8],larger:[2,6],largest:6,lari:4,lari_at_oesch:4,lass:4,lasse_at_mydom:4,last:[2,6,19],lastpass:20,later:[0,2,8,17],latest:[2,6,7,14,17],latex:[7,10],latter:2,latvian:4,lau:4,launchpad:17,laureano:4,laureano_at_gmail:4,laurent:4,lax:2,layer:[1,7,16],layout:[2,10,13],lc_messag:2,ldi_:4,lead:[0,2,6],leak:2,learn:[8,11],least:[2,6,17],leav:[2,6,17,19],lee:4,leedermeister_at_gmail:4,left:[2,4,6,8],legal:2,legenhausen:4,leiding:4,lem9:17,length:[2,8],leonardo:4,lesli:4,less:[2,6,8,17],let:[2,13],letter:[2,6,8],lettercas:6,level:[2,6,7,8,17],lib:[6,22],libiconv:2,librari:[1,2,3,4,7,9,14,17,19],libreoffic:8,libwww:6,libxml:14,licens:[6,9],lifetim:2,lighttpd:17,lightweight:8,like:[0,2,4,8,10,13,15,17,19],lima:4,limburgish:4,limit:[8,9,12,15,17],limitchar:2,lin:4,line:[2,6,7,8,17,19],line_count:6,link:[0,1,2,4,6,10,12,13,15,17,18,19],link_id:13,linklengthlimit:2,linux:[2,9,22],list:[2,4,7,8,15,17,20,22],listen:17,liter:[2,6],lithuanian:4,load:[2,4,7,10,16,17],loadabl:6,loader:6,loadmodul:6,local:[2,4,8,16,17],localhost:[2,17],localis:8,localnet:17,localneta:2,localnetb:2,localnetc:2,locat:[7,17],lock:[2,6],log:[2,7,10,15,20],logformat:6,login:[2,4,14,15,16,17,20],logincookiedeleteal:2,logincookierecal:2,logincookiestor:2,logincookievalid:2,logincookievaliditydisablewarn:2,logo:[2,4],logout:[2,16,17],logouturl:2,lolo_at_phpheaven:4,longer:2,longtabl:[6,8],longtext:2,longtextdoubletextarea:2,look:[2,6,7,13,17,19],lori:4,lose:2,loss:6,lossi:7,lost:2,lot:[2,15],loup:7,low:[2,6],lower:[2,6],lower_case_table_nam:6,lowercas:17,lscape:8,lsml_at_liv:4,ltr:17,lts:20,lubo:4,lucen:6,lui:4,luisan00_at_hotmail:4,lund:4,m42:4,m_at_gmail:4,mac:7,machin:[2,7,8,17],maciej:4,maciejka45_at_gmail:4,macintosh:7,maco:[6,7],macof:4,made:[2,4,6,7,17],madhura:4,madlen:4,mai:[0,2,6,7,10,17,19],mail:7,main:[1,4,9,12,17,18,19],mainli:7,maintain:[4,6,17],mainten:[2,4,10],major:[4,6,18],make:[2,5,8,15,17,18,19],make_id:8,maketitl:8,malai:4,malfunct:6,malgeri_at_gmail:4,malici:15,man:2,manag:[6,7,8,9,10,11,17,21],mani:[2,4,5,7,8,10,16,17,19],manipul:[2,7,8,10,17,19],manish:4,manual:[2,6,7,19,20],manufactur:[7,20],manuzhai:4,map:17,marc:[3,4,6,11,17],marc_at_infomarc:[3,4],marcel:4,march:4,marco:4,marconcini:4,marek:4,mari:2,mariadb:[2,4,6,10,14,17],marin:4,mark:[0,2,4,7],marker:8,market:7,markt:6,markup:[7,8],mart:4,martijn:4,martin:4,martin_at_vidn:4,martin_at_whistl:4,martinelli:4,martinelli_at_gmail:4,martyna:4,masahiko:4,master:[2,11,13,17],master_db:2,mat:4,match:[2,6,8,17,18],mathemat:8,mathia:4,matiasbellon:4,matter:13,matthia:4,matthias_at_bluthardt:4,max:6,max_allowed_packet:8,max_array_index_length:6,max_execution_tim:6,max_link:6,max_request_vari:6,max_totalname_length:6,max_travers:6,max_value_length:6,max_var:6,maxcharactersindisplayedsql:2,maxdblist:2,maxexactcount:[2,6],maxexactcountview:2,maxim:[4,8],maxime_at_fre:4,maximum:[2,6],maxnavigationitem:2,maxrow:2,maxsizeforinputfield:2,maxtablelist:2,maxtableuipref:2,mayb:6,mbstring:[2,7,14],me_at_derrabu:[3,4],me_at_supergarv:[3,4],mean:[2,15,17,19],meant:2,measur:[2,7],mechan:[2,4,6,17],media:[6,7,19],media_typ:7,mediapartn:6,medio:4,meet:17,memoranda:7,memori:[2,8],memory_limit:[2,6],memorylimit:2,memoword_at_163:4,mendax:4,mendel:[3,4],meneghini:4,mention:[2,6,17],menu:[2,6,19,21],merchant:3,messag:[2,17],met:17,meta:[2,17,19],metagerbot:6,method:[2,7,8,13,17,19],methodolog:7,metro:22,michael:[3,4],michal:[3,4,17],michal_at_cihar:[3,4],michel:4,microsoft:[7,10],middl:2,might:[2,6,8,11,12,15,17,22],migrat:6,mike:4,mike_at_graftonhal:4,miko:4,mileag:8,mime:[2,4,7,11,19],mimetyp:[2,19],mind:17,miner:6,minh:4,minim:[6,17],minimum:[2,6],minor:[4,6],minsizeforinputfield:2,minu:0,miquel:4,mirror:[6,17],misc:1,miss:[2,7,15,19],mit:[3,17],mitenem_at_outlook:4,mitig:[6,15],mix:2,mj12bot:6,mkdir:6,mkkeck_at_us:[3,4],mladenov:4,mmcach:6,mmcrawler:6,mmh15_at_windowsl:4,mobil:[4,20],mod:6,mod_gzip_item_includ:6,mod_proxi:[6,7],mod_proxy_fcgi:[7,17],mod_rewrit:6,mod_ssl:6,modal:[4,6],mode:[0,4,9,14],moder:4,modern:4,modif:6,modifi:[2,3],modul:[6,7],modular:7,moham:4,mokhtari:4,molnar:4,morai:4,more:[0,1,2,3,4,7,8,15,17,19,20],moreov:6,moretti:4,mosh:4,most:[2,4,6,7,8,10,13,17,19,20],mostli:[2,8],motuza:4,motuzas_at_gmail:4,mount:2,mous:[2,6,13],mousewheel:6,move:2,movement:1,mozilla:7,mrdaniloazevedo_at_gmail:4,msie:6,msnbot:6,much:[6,19],muhammad:4,mulla:4,multi:[2,4,7,9,17],multidimension:8,multipl:[1,4,8,10,15,17],multipurpos:7,multiselect:6,multiserverexample70518:2,multithread:7,murariu:4,murariu_at_yahoo:4,must:[0,2,6,8,10,12,13,17,20],my_db:2,myadmin:17,mydatabas:2,mydb1:17,mydb2:17,mydb:[2,6],mydump:8,myisam:[6,7,10],mynam:0,mysql:[4,7,8,9,10,11,12,13,14,15,17,22],mysql_connect:6,mysql_db_serv:17,mysql_fetch_field:19,mysql_native_password:[6,17],mysql_root_password:17,mysql_upgrad:6,mysqladmin:6,mysqld:6,mysqli:[2,4,7,10],mysqli_real_connect:6,mysqlminvers:2,mysqlnd:2,mysqlsslwarningsafehost:[2,17],myung:4,n8falke_at_us:4,nabin:4,naderi:4,naderi_at_gmail:4,naeem:4,nair:4,nakandala:4,nakrani:4,name:[0,2,4,7,12,13,17,18,19],nast3zz_at_gmail:4,nasti:15,nativ:[2,13],natur:2,naturalord:2,navarro:4,navig:[4,9,12],navigationdisplaylogo:2,navigationdisplayserv:2,navigationhid:2,navigationlinkwithmainpanel:2,navigationlogolink:2,navigationlogolinkwindow:2,navigationtreedbsepar:2,navigationtreedefaulttabt:2,navigationtreedefaulttabtable2:2,navigationtreedisplaydbfilterminimum:2,navigationtreedisplayitemfilterminimum:2,navigationtreeenableexpans:2,navigationtreeenablegroup:2,navigationtreepointeren:2,navigationtreeshowev:2,navigationtreeshowfunct:2,navigationtreeshowprocedur:2,navigationtreeshowt:2,navigationtreeshowview:2,navigationtreetablelevel:2,navigationtreetablesepar:[2,6],navigationwidth:2,ne0x_at_us:4,nearli:2,necessari:[2,19],need:[0,2,8,10,12,13,14,15,17,18,19,20],neg:6,neglig:8,neil:4,neimani:4,neither:[2,6],neomo:6,nepali:4,nest:[2,4],net:[2,3,4,6,7,15,17,18],netcologn:6,network:[2,6,7,8,17],never:[2,17],nevertheless:17,newer:[8,14,17],newest:2,newli:[8,17],newlin:2,newsblog:6,next:[2,6,17],nginx:14,nhibern:8,nicola:4,niel:4,niemand:4,nijel:17,niko:4,niko_at_gmail:4,nikto:6,ninad:4,nisarg:4,nisargjhaveri_at_gmail:4,nitrotoll_at_gmail:4,nnabinn_at_hotmail:4,no1:2,no2:2,noblob:2,nobody_at_gmail:4,node:[7,17],nofoot:8,nohead:8,nokeepal:6,non:[2,8],none:2,nontawat39_at_gmail:4,nopassword:2,nor:6,nordenberg:4,noreply_at_webl:4,normal:[2,4,6,17,19],norwegian:4,not_nul:19,notabl:7,notat:8,note:[0,2,6,17,19,22],noticia:4,now:[0,2,7,8,13,17],nowher:2,ntf:2,number:[0,1,2,7,8,15,17],numer:[2,4,6],numfavoritet:[2,6],numrecentt:2,nutchcv:6,nyu:4,obgzip:[2,6],object:[6,8,17,19],obrador:4,obtain:[2,15],occur:[2,6,17],oesch:4,off:[2,6,17],offer:[1,2,6,7,13,16,17],offic:[7,8],offici:[6,11,17,19],oficial_at_gmail:4,often:[2,6,8,17],okai:17,old:[2,6,11,17],older:[2,9,10],olivi:[3,4],olof:4,om_at_omni:[3,4],omar:4,omar_2412_at_l:4,omit:2,omniexplorer_bot:6,onc:[2,12,13,17,20],ondra:4,ondrasek:4,one:[1,2,7,8,10,12,13,15,17,20,22],ones:[2,4,6,22],onli:[1,2,4,7,8,12,13,15,16,17,19,20],onlin:6,only_db:2,open:[2,5,6,7,10,13,14,17],open_basedir:2,opendocu:[7,10],opengi:4,openid:17,openid_messag:17,openid_relyingparti:17,openlay:6,openoffic:8,openssl:[6,14,17],oper:[1,2,7,8,17,19],opposit:2,opt:20,optim:[2,4,6],option:[1,9,15,16,17,19],order:[2,6,7,8,9,13,17],ordinari:17,org:[2,3,4,6,7,8,17],organ:7,orient:[2,7],origin:[2,6,9,14,17,18,19],orion1979_at_yandex:4,orzkun_at_ageag:4,other:[2,4,5,6,7,8,9,10,12,13,15,16,17,19,21,22],otherwis:[0,2,6],our:[2,5,6,15,17,18,19],out:[2,5,7],outdat:17,output:[2,4,6,8,19],output_compress:6,outsid:[2,19],outsourc:4,over:[2,6,7,12,13,17],overcom:6,overlord666_at_gmail:4,overrid:[6,17],overview:[6,19],overwhelm:12,overwrit:2,overwritten:2,own:[2,10,15,17,18,19],owner:[2,17],owneremail:6,ownerfirstnam:6,ownerlastnam:6,ownerphon:6,ownerphone1:6,ownerphone2:6,ownership:6,pack:[6,22],packag:[6,9,17],packagist:17,packet:[7,8],page:[0,4,7,9,10,12,13,14,17,18,19],pai:17,pair:[2,17],palid:4,palider_at_seznam:4,palstsiuk:4,pan:6,pandei:4,pandithawatta:4,panel:[6,9],pantola:4,papaz_p_at_yahoo:4,paper:2,param:[2,17],paramet:[2,8,17,19],parent:[2,6,17],parind:8,parkourpotex_at_gmail:4,pars:[8,18,19],parsabl:8,parse_url:6,parser:[4,8],part:[2,6,7],parti:[6,9,11,17,18],partial:2,particular:[3,6,7,12,17],particularli:[7,17],pass:[2,6,10,12,17,18,19],passhosthead:17,passphras:2,passwd:17,password:[2,10,12,17],past:2,patch:[2,4],path:[2,17,22],path_dir:17,path_to_phpmyadmin:6,path_to_your_phpmyadmin_directori:2,pathprefixstrip:17,patrik:4,pattern:2,paul:6,paulei:4,pavel:4,pbm:4,pcre:[2,7],pdf:[4,7,9,10,11,13,17],pdf_page:[2,6],pdfdefaultpages:2,pdfpageheight:8,pdfpages:2,pdfpagewidth:8,pdo:8,pear:[4,7,17],pebbl:20,peccatt:4,pedro:4,peer:2,pem:2,pencil:12,peopl:[4,5,6,10,22],per:[2,6,7],perekupka:4,perfect:[2,17],perform:[2,6,10,12,14,15,17],perhap:17,period:17,perkontevs_at_gmail:4,perl:[6,7],perl_compatible_regular_express:7,permiss:[2,6,12,17],permit:[2,12],persian:4,persist:[2,16],persiste1_at_gmail:4,persistentconnect:2,person:[2,6,7,17],person_nam:6,petbre:6,petdob:6,pete:4,peter:4,petnam:6,petr:4,pettyp:6,pgp:[15,17],ph3n1x:4,phan:4,phillip:4,phone:20,photograph:7,php3:4,php4:[4,6],php7:6,php7_modul:6,php7apache2_4:6,php:[2,4,7,9,10,16,17,18,19,20,22],php_mysqli:6,php_self:[6,17],phpc:[2,17],phpinfo:[2,6],phpinidir:6,phpmy:6,phpmyadmin:[0,1,2,3,4,5,7,8,10,11,12,13,14,15,18,19,20,21],phpmyadmin_at_zweisteinsoft:4,phpmyadmin_x:17,phpmyadminovi:11,phpmysqlformgen:4,phpseclib:4,phpstan:4,phpwizard:[4,6],piankov:4,piec:[15,22],pikto:6,piller:4,pin:2,pink:6,piotr:4,pipe:2,pistej2_at_gmail:4,pistej:4,piyush:4,place:[2,6,17],placehold:0,placella:4,plai:17,plain:[2,6,17,19],plamen_mbx_at_yahoo:4,plan:8,platform:[2,6,7,17],plathei:4,pleas:[2,6,7,8,15,17,19,22],plesk:2,plot:6,plu:[4,6],plug:19,plugin:[4,6,8,19],pma:[2,17],pma__bookmark:2,pma__central_column:2,pma__column_com:2,pma__column_info:2,pma__designer_coord:2,pma__designer_set:2,pma__export_templ:2,pma__favorit:2,pma__histori:2,pma__navigationhid:2,pma__pdf_pag:2,pma__rec:2,pma__rel:[2,6],pma__savedsearch:2,pma__table_coord:2,pma__table_info:[2,6],pma__table_uipref:2,pma__track:2,pma__us:2,pma__userconfig:2,pma__usergroup:2,pma_absolute_uri:17,pma_arbitrari:17,pma_at_sebastianmendel:4,pma_combin:6,pma_config_base64:17,pma_db:17,pma_dbi:4,pma_host:17,pma_password:[6,17],pma_port:17,pma_single_signon_cfgupd:17,pma_single_signon_error_messag:17,pma_single_signon_hmac_secret:17,pma_single_signon_host:17,pma_single_signon_messag:17,pma_single_signon_password:17,pma_single_signon_port:17,pma_single_signon_us:17,pma_us:17,pma_user_config_base64:17,pma_usernam:6,pma_verbos:17,pmaabsoluteuri:[2,6,17],pmadb:[2,13],pmahomm:[2,18],pmanorelation_disablewarn:2,pmapass:[2,17],pmasa:[6,15],pmatest:2,png:18,point:[2,6,7,17],polici:[2,7,9],polish:4,popcorn:4,popul:8,popular:[7,8],port:[2,7,17],port_:7,portabl:7,portion:2,portnumb:2,portugues:4,pose:15,posit:[2,7],possibl:[2,5,8,15,16,17,19],post:[2,6,17],post_max_s:[6,17],potenti:2,power:8,pozzato:4,practic:2,pragmarx:20,pratap:4,pre:[2,17,19],preappend:2,preconfigur:8,predatorix_at_web:4,predecessor:7,predefin:10,prefer:[2,4,17],prefix:[2,6],preform:15,prejudic:1,preliminari:8,prepar:[2,7,15,17],prepend:19,preprocessor:7,present:[2,6,8,12,15,17],press:2,pretti:4,prevent:[2,17],previou:[2,6,17],price:8,primari:[2,4,7,13,17],print:[4,21],printer:4,printview:[2,4],prior:[17,19],privaci:17,privat:[2,6,17,20],privileg:[2,4,10,15,21],probabl:[6,17,22],problem:[2,7,8,17],problemat:6,procedur:[2,7,10],process:[7,12,17],processor:8,procs_priv:6,produc:[2,8,13],product:[2,6,8,17,20],profession:7,program:[2,3,6,7,8,15],progress:14,prohibit:2,project:[2,4,7,9,17],prompt:[2,17],proper:[2,6,8,10,13,17,19],properli:[2,6,13,17],properti:[2,4,6,19],propertiesnumcolumn:2,propos:[6,10],protect:[2,15,17],protectbinari:2,protocol:[2,7,17],provid:[2,6,7,10,12,17,19,20,22],provok:15,proxi:[2,17],proxypass:[2,6],proxypassrevers:6,proxypassreversecookiedomain:6,proxypassreversecookiepath:6,proxyurl:2,proxyus:2,pruett:4,przemo:4,przybylski:4,psbot0:6,psr1:17,pub:15,publi_at_web:4,publicli:2,publish:[2,3,15,17],pull:[2,17],pundalik:4,punjabi:4,purodha:4,purpos:[2,3,7,8,15,20],put:[2,15,17,18,19],python:6,qbe:[4,10],qiang:4,qrcode:20,qualifi:17,qualiti:8,queri:[0,1,4,7,8,9,10,15,17],queryhistorydb:2,queryhistorymax:2,querystr:17,question:[7,9],quick:[2,6,7,9],quickli:8,quit:[2,4,6,18,20],quot:6,qyz:4,r9uk:17,ra4_at_openmailbox:4,rachim:4,rachman:4,radio:7,rafael:4,raghuram:4,rai:4,raj:4,rajandran:4,rand:17,random:[2,4,15],rang:[2,7],raouf:4,rare:6,rate:15,rather:[2,6,8,12,17],ratio:14,ratschil:[3,4],raul:4,raul_at_wservic:4,ray_at_datahui:4,rds:2,reach:[17,19],read:[2,6,8,10,17],readabl:[6,8],readi:17,readm:17,real:[2,6,13],real_password:17,real_us:17,realli:[2,6,17,20],realm:[2,17],rearrang:6,reason:[2,6,14],recal:2,recaptcha:[6,14],receiv:[3,7,19],recent:[2,6,7,8,17],recod:2,recode_str:2,recodingengin:2,recommend:[2,6,7,8,14,17],record:[2,7,8,12,13],recov:6,recreat:6,recv:17,redesign:4,redhat:6,redirect:[2,17],redistribut:[3,22],refactor:4,refer:[2,6,7,13],referenti:[2,10],reflect:7,refman:[2,6,8],refresh:2,regard:[2,10,19],regardless:17,regener:15,regex:17,region:2,regul:8,regular:[2,4,7,19],reject:2,rel:[2,17],rel_countri:6,rel_person:6,rel_town:6,relat:[2,4,7,9,10,17,19,21],relationaldisplai:2,relationship:13,releas:[2,4,6,9,15],relev:2,reli:17,reliabl:[2,6,8,17],relyingparti:17,relyingparty_result:17,remain:[0,2],reme:4,rememb:[0,2,17],remembersort:2,remot:[2,7,17],remote_addr:2,remote_us:6,remov:[2,4,6,10,12,17,18],renam:[2,8,10,17,22],renato:4,renatomdd_at_yahoo:4,render:[8,15],rental_r:1,reorder:6,repeat:[2,6],repeatcel:2,replac:[0,2,6,17,18,22],replacement_cost:1,repli:17,replic:[4,6],report:[2,4,6,9],repositori:[3,7,17,20],repres:[2,6,7],represent:4,reproduc:6,reqirep:17,request:[2,7,17],request_for_com:7,request_method:6,request_uri:[6,17],requir:[2,8,9,10,15,17,18,19,20],research:7,reserv:2,reservedworddisablewarn:2,reset:6,resid:6,resolut:7,resolv:6,resourc:7,respect:[2,3,6],respond:6,respons:[2,6,7],restart:[6,17],restor:8,restrict:[2,17],result:[0,1,2,10,17],retainquerybox:2,retriev:[2,17],return_to:17,returnto:17,reveal:2,revenu:1,revers:[2,17],review:17,revis:[2,6,7],revistafammatvmus:4,revok:2,rewrit:[6,17],rewritebas:6,rewritecond:6,rewriteengin:6,rewriterul:6,rewrot:4,rex:4,rfc2616_header:6,rfc6265:2,rfc:[6,7,10],ribeiro:4,ribeiro_at_gmail:4,ricardo:4,rifthi:4,rifthy456_at_gmail:4,right:[2,8,12,17,19],risk:[2,6],rob:6,robbat2_at_us:[3,4],robin:[3,4],robot:[2,17],rocha:4,rocha_at_zoho:4,rodrigo:4,rodrigu:4,rohled:4,rohmberg:4,rohmberger_at_hotmail:4,romanian:4,ronni:4,ronniesimonf_at_gmail:4,roohan:4,roohan_cena_at_yahoo:4,root:[2,12,17],roszatycki:4,rouslan:4,rout:[2,6,17],router:17,routin:[2,4],row:[1,2,4,7,8],row_:7,row_format:6,rowactionlink:2,rowactionlinkswithoutuniqu:2,rowactiontyp:2,rsa:17,rubinov:4,ruiz:4,rule:[2,6,17],ruleant_at_us:4,run:[2,7,10,15,20],russian:4,rutkowski:4,rwx:[2,6],saad:4,safe:[2,17],sai:[0,13,19],sailboat:4,sakamoto:4,sake:6,sakila:6,saksham:4,saleh:4,salvadoporjc_at_gmail:4,sam_at_gmail:4,same:[0,1,2,12,17],sameorigin:2,samesit:2,sampl:[2,6,8,17],sander:4,sandro123iv_at_gmail:4,sandro:4,sanit:6,santana:4,santana_at_gmail:4,sapi:2,sarna:4,sascha:4,saturdai:2,save:[4,6,8,9,16,17,18],save_path:6,savecellsatonc:2,savedir:[2,8],savedsearch:2,saverio:4,saw:6,sbin:17,scan:[6,20],scanner:6,scatter:6,scenario:[6,17],schaefer:4,schema:[2,4,8,13],scheme:[2,6],schneier:7,scientif:8,scooter:6,scope:17,scorpio_at_gmail:4,scp:6,scratchboard:4,screen:[8,17,18],screenshot:18,script:[2,4,8,19,22],scss:[2,18],search:[2,4,9,10],searchabl:17,sebastian:[3,4],sebastian_at_sgundersen:4,second:[2,6,12,19,20],secret:2,section:[1,2,5,6,15,17,19],secur:[2,4,7,9,12,19,21],secure_cooki:17,securer:4,see:[0,2,3,4,8,10,12,13,14,15,17,18,19],seekbot:6,seem:[2,8,17],seen:2,segment:2,seibt:4,select:[0,1,2,4,8,12,13,17,18,19],selector:[2,19],selenium:4,self:2,send:2,senderrorreport:2,sens:19,sensi:6,sensit:[0,2,6,15],sent:[2,4,7,15],seo:6,seoma:6,seongki:4,seosearch:6,separ:[2,4,6,7,8,17],separated_valu:7,sequenc:7,serbian:4,seri:[1,7],serial:8,seriou:6,serv:[7,17],server:[4,7,8,9,10,11,12,13,15,20,22],server_:7,server_address:2,server_at_gmail:4,server_nam:17,server_port:17,serverdefault:2,serverlibrarydifference_disablewarn:2,servic:[2,6,7,17],session:[2,4,6,14,16,17],session_get_cookie_param:2,session_id:17,session_nam:17,session_save_path:[2,17],session_set_cookie_param:[2,17],session_start:17,session_write_clos:17,sessionsavepath:[2,17],sessiontimezon:2,set:[1,4,7,9,10,16,17,19,20,22],set_magic_quotes_runtim:17,setenvif:[6,17],setfacl:2,setia:4,setia_at_gmail:4,setinputfilt:6,setlength:8,setoutputfilt:6,setup:[4,9,13,22],setup_config_fil:22,setup_dir_writ:22,sevdimali:4,sevdimaliisayev_at_mail:4,seven:2,sever:[2,3,6,7,8,13,16,17,19,20,22],sevillano:4,seward:7,sha1:17,shahrabani:4,shall:13,shameem:4,shapefil:[2,8],share:[2,17],sharifov_at_programm:4,sheet:8,shell:6,sherbrook:6,shift:[2,6],shin:4,ship:[7,17,18,22],shirian:4,shirian_at_gmail:4,shortcut:[2,6,9,17],shorten:6,shorter:[2,6],should:[2,3,4,7,8,12,15,17,18,20,22],shouldn:17,show:[2,6,15,17,19],show_pag:17,showal:2,showasphp:2,showbrowsecom:2,showchgpassword:2,showcolumncom:2,showcreatedb:2,showdatabasesnavigationastre:2,showdbstructurecr:2,showdbstructurelastcheck:2,showdbstructurelastupd:2,showfieldtypesindataeditview:2,showfunctionfield:2,showgitrevis:2,showhint:2,shown:[1,2,8,13,17,18,19],showphpinfo:2,showpropertycom:2,showserverinfo:2,showsql:2,showstat:2,shp:6,shutdown:6,side:[2,7,17],sideeffect:17,sign:[2,17],signatur:17,signific:4,significantli:8,signoncookieparam:[2,17],signonscript:[2,17],signonsess:[2,17],signonurl:[2,17],silent:6,silva:4,simecek_at_gmail:4,similar:[2,6,8,13,15],similarli:6,simon:4,simoncini:6,simpl:[1,2,7,8,17,21],simple2fa:[2,20],simpli:[2,8,12,17],simplifi:[4,12],sinc:[1,2,4,6,8,14,17,20],singh:4,singl:[2,7,8,17],sinhala:4,site:[2,6,7,11,17],sitesearch:6,siteverifi:2,situat:[6,7,17],siu:4,size:[2,8],skill:6,skip:[17,22],skiplockedt:2,skshin_at_gmail:4,slash:2,slider:2,slovak:4,slovenian:4,slow:2,slowdown:6,slurp:6,small:[2,6],smaller:[2,4,6],smart:[2,4],smarte_at_gmail:4,smita:4,smooth:1,smtp:4,snap:2,snappi:6,snapshot:2,snippet:2,socket:[2,7],softwar:[3,6,7,8,10,17,20,22],software_extens:7,solut:[6,17,20],solv:6,some:[2,4,7,8,15,17,19,22],someth:[2,6,13,15,17],sometim:17,somewher:[6,15],somthanat:4,somthanat_at_gmail:4,song:4,soom:4,soon:0,sora:4,sora_at_tiscali:4,sorani:4,sort:[2,6,8],soulard:4,sourc:[2,4,5,6,7,9,17,20,21],sourceforg:[3,4],souza:4,space:[0,2,6],spanish:4,special:[0,2,7,8,13,15,17,19],specif:[2,7,8,9,19,21],specifi:[1,2,4,8,17,19],speed:[2,6,8,17],spl:14,split:[2,6,8,19],sponsor:6,spreadsheet:[6,10,14],sql:[0,1,4,7,9,10,11,17,19],sqllog:2,sqlqueri:2,sqrt_at_entless:4,squiz:[2,17],src:[6,17],srnka:4,ssl:[6,7,9],ssl_ca:[2,17],ssl_ca_path:[2,17],ssl_cert:[2,17],ssl_cipher:[2,17],ssl_kei:[2,17],ssl_verifi:[2,17],ssloption:6,st_geomfromtext:2,sta:4,stabl:6,stack:1,stackoverflow:6,standard:[2,4,6,7,8,14,20],star:[2,6],start:[1,2,4,8,17],starthistori:2,startup:[2,6],state:2,stateless:15,statement:[2,6,10,17],station:6,statist:[2,4],statu:[2,4,6],stdenvvar:6,stdpass:2,stduser:2,ste:4,stefan:4,stefano:4,step:[6,17],steve:4,steven:4,still:[2,12,15,17],stock:17,stokkan:4,stop:[2,6],storag:[0,2,4,6,7,9,13,15,16,19,20],store:[2,4,7,10,16,17,18,19,21],stored_procedur:7,straka3_at_gmail:4,straka:4,strftime:6,strict:2,strict_typ:[2,17],strijbol:4,string:[0,2,4,17,19],strip:[0,2],strlen:17,strongli:[2,14],strozzi:4,structur:[4,7,8,9,10,13,17,18,21],strval:17,stuff:4,style:[2,4,6,17,18],sub:[6,15],subdirectori:[2,18],subfold:[6,17],subject:[2,6],sublevel:2,submiss:2,submit:[2,6,17],subroutin:7,subset:10,substitut:6,substr:2,subtyp:19,success:[2,6,15,17],successfulli:6,suffic:17,suffici:6,suffix:[2,17],suggest:[2,4,6,14,15,17],suhardi:4,suhosin:2,suhosindisablewarn:[2,6],suit:[6,7,17],suitabl:8,sum:6,summer:4,sun:4,sundai:2,supersed:7,superus:[12,17],suppli:[2,17],support:[1,2,4,7,8,9,13,14,17,18,20],suppos:6,suppress:2,supun:4,surbakti:4,sure:[2,17],surfac:15,surround:6,svalekja:4,svec:4,sven:4,svg:22,swedish:4,symbol:[2,18],symlinksifownermatch:6,symmetr:7,sync:4,synchron:[4,9],synoobot:6,syntax:[2,6],sysadmin:[2,6],syslog:[2,17],system:[2,4,6,7,8,16,17,18,19,22],szsilva_at_gmail:4,t10:2,t3if_at_ladisch:4,tab:[7,8,9,12,13,16,17],tabbrows:6,tabl:[2,4,7,10,12,13,17,19,21],table_:7,table_coord:[2,6,13],table_info:2,table_nam:6,table_uipref:2,tablenam:6,tablenavigationlinksmod:2,tableprimarykeyord:2,tables_priv:6,tablesepar:6,tablettws_at_gmail:4,tabsmod:2,taceloski:4,tag:6,taiwan:4,take:[1,2,6,10,19],taken:6,talk:17,tamil:4,tamsjadi:4,tape:7,tar:[7,17],tar_:7,tarbal:17,target:[2,6],tarzq28_at_gmail:4,task:10,tbl_chang:4,tbl_creat:4,tbl_dump:6,tbl_row_delet:6,tbl_select:4,tcp:[2,6,7],tcpdf:[4,6,7],tczzjin_at_gmail:4,team:[2,15,17],technic:21,technolog:7,tecnick:4,tecnickcom:6,telekom:6,tell:[2,6],telnet:6,tempdir:[2,6,17],templat:[2,4,17,19],template_abstract:19,temporari:[2,6,17],temporarili:[2,6,16],term:3,terri:4,test:[2,4,6,17,20,22],tex:[6,7,8],text:[0,4,7,9,10,17,19],textarea:2,textareaautoselect:2,textareacol:2,textarearow:2,textbox:12,textfield:19,textimagelink:2,textlink:2,textual:[6,8],thai:4,than:[2,4,8,10,12,17,20],thank:[4,6],thei:[2,4,12,17,19,22],them:[2,7,16,17,19,22],theme:[4,9,17,21,22],themedefault:[2,18],thememanag:[2,18],themenam:2,themeperserv:2,themselv:2,therefor:2,thi:[0,1,2,3,4,7,8,12,13,15,16,17,18,19,20,22],thiago:4,thilanka:4,thilina:4,thing:[2,6,15],think:[6,15],third:[2,6,9,11,17,18],thirteen:4,thoma:[4,7],those:[2,12,13,16,17,19],though:[2,7,8,15,17],three:[2,6,17,19],threshold:2,through:[2,7,10,15,16,17,19,20],throwabl:17,thu:[2,6,8,17],thumbnail:14,tickbox:6,tild:6,till:[6,17],time:[1,2,7,15,17,20],timeout:[2,8],timestamp:2,tinyint:6,tip:[2,6],titl:[1,8,9,17],titledatabas:2,titledefault:2,titleserv:2,titlet:2,tkl:6,tmp:2,tobia:[3,4],tobias_at_ratschil:[3,4],togeth:[2,15,17],toggl:[2,10],token:[15,20],tokyo:6,told:4,tom:4,toma:4,tomas_at_tomasruud:4,tomastik:4,tommi:4,tommy_at_surbakti:4,ton:2,too:[2,5,6,8],tool:[2,4,5,10,15,17],tooltip:[6,13],top:[2,6,8,16,17],topic:17,toplevel:2,tor:4,total:17,totp:20,town:6,town_cod:6,track:[2,4,10,17],tracker:[2,6,15],tracking_add_drop_databas:2,tracking_add_drop_t:2,tracking_add_drop_view:2,tracking_default_stat:2,tracking_version_auto_cr:2,tradition:17,traefik:17,traffic:2,trail:2,transfer:[2,6,7,17],transform:[4,9,10,11,17,21],transformation_opt:[2,19],transformations_generator_main_class:19,transformations_generator_plugin:19,transformationsplugin:19,transit:17,translat:[2,9],translationwarningthreshold:2,translit:2,transliter:2,transmiss:[7,8],transmit:[6,7,20],transport_layer_secur:7,travel:[1,17],treat:[2,6,7],tree:[2,4],trend:1,trezor:20,tri:[2,6,15,17],trick:15,trigger:[2,4,7,8,10],trinh:4,trinhminhbao_at_gmail:4,triwidada:4,troubl:[2,7,8],troubleshoot:6,truli:17,truncat:2,trust:[2,17],trustedproxi:2,tschopp:4,tune:17,tunnel213:4,tunnel213_at_aliyun:4,tupl:7,turck:6,turek:[3,4],turkish:4,turn:[2,6],turnitinbot:6,tutori:[6,19,21],tweak:17,twig:4,two:[2,7,9,13,17,19,21],txt:[3,6,17],type:[0,1,2,4,7,8,13,17,19],typeset:[7,8],typic:[2,6,7,9,20],typograph:8,tyron:4,u2f:21,ubuntu:2,ufpdf:4,uid:15,ukko:4,ukrainian:4,ultim:[6,17],unavail:2,uncheck:[2,6],unclean:6,uncom:[2,17],under:[2,3,15,17,18,22],underli:[1,17,18],undernetangel_at_gmail:4,understand:[10,17],undocu:8,unexpect:[0,2],ungureanu:4,uniform:7,unintend:2,union:[1,6],uniqid:17,uniqu:[2,6,7,13],unit:4,unix_domain_socket:7,unknown:17,unless:[2,6,17,20],unlik:17,unlucky_at_inbox:4,unpack:[6,17],unprivileg:2,unset:[6,17],unsign:19,unsupport:6,untar:17,until:[2,4,6,16,17,19],unus:6,unwil:6,unzip:17,updat:[2,4,6,17],upgrad:[2,4,9],upgrade_column_info_4_3_0:[2,17],upgrade_tables_4_7_0:17,upgrade_tables_mysql_4_1_2:17,upload:[8,9,14,17,19],upload_limit:17,upload_max_files:[6,17],upload_progress:6,upload_tmp_dir:6,uploaddir:[2,6,8],uploadprogress:6,upon:[1,16],upper:6,upto:6,urbalazs_at_gmail:4,uri:13,url:[2,7,17,18],urlqueryencrypt:2,urlqueryencryptionsecretkei:2,urltrend:6,uro:4,usabl:6,usag:[2,12,21],use:[0,2,4,7,8,10,12,13,15,16,17,18,19,20],use_backend:17,use_cooki:17,used:[0,1,2,4,7,8,13,16,17,18,19,20],usedbsearch:2,useful:[1,2,3,5,7,8,12,17],useless:6,usepackag:[6,8],user:[2,4,7,9,15,16,19,20,22],user_bas:17,userconfig:2,userdata:15,usergroup:[2,12],userid:6,usernam:[2,10,12,17],userprefsdevelopertab:2,userprefsdisallow:2,userstatu:6,uses:[2,8,17],using:[1,4,7,9,10,11,13,14,15,19,20,21],usr:17,usual:[2,6,7,17,19],utc_timestamp:2,utf8mb4_general_ci:2,utf:[2,6,7,17],util:[2,6,7,15,17],uuid:2,vadap:4,vainauska:4,valentin:4,valia:4,valid:[0,2,4,6,8,10,15,16,17],valter:4,valu:[2,7,8,13,17,19],van:4,varchar:2,varfilt:6,variabl:[1,2,19,21],variable1:0,variou:[4,6,8,9,10,17,22],vazquez:4,vector:8,vendor:[2,3,6,9],vendor_config:22,verb:6,verbos:[2,6,17],veri:[6,8,17],verif:[2,6,17],verifi:[2,6,9],verschuer:4,verschuere_at_outlook:4,version:[1,2,3,7,8,9,10,14,18,20,22],versioncheck:2,vertic:[4,7],vetoffic:6,via:[2,12,15,17],victor:4,vidner:4,vietnames:4,view:[2,4,7,8,10,12,21],vijai:4,viktar:4,viliu:4,villanueva:4,vinai:4,vincent:4,vinipitta_at_gmail:4,vip_at_krasio:4,vipals_at_gmail:4,virusyoon_at_gmail:4,visibl:[2,17],visit:17,visok:4,visokereyal_at_gmail:4,visual:[2,4,6],visualis:6,vitalii:4,vliet:4,vmta_at_yahoo:4,vonflyne:4,vonflynee_at_gmail:4,voogt:4,voogt_at_hccnet:4,voyag:6,vperekupka_at_gmail:4,vserver:[2,6],vulner:[2,6,9,17],vytauta:4,w3c:[6,7],w3c_valid:6,wai:[0,2,4,8,13,15,16,17,18,20],wait:6,wallet:20,walton:4,walton_at_nordicdm:4,want:[2,8,12,17,18,19,22],warn:[2,17],warranti:3,washington:4,washingtonbruno_at_msn:4,wasn:4,wasser:6,waw:4,weaker:2,web:[4,6,7,8,9,15,17,22],web_brows:7,web_serv:7,webadmin:4,webapp:17,webcrawl:6,weblate_at_gmail:4,webmaster_at_trafficg:4,webpack:4,webserv:[2,6,8,17],websit:[2,4,5,6,7,15,18],week:2,wei:4,welcom:[2,17],well:[2,4,6,10,15,17],weng:4,wengshiyu_at_gmail:4,wennberg:4,were:[2,4,6],west:[2,4],wget:6,what:[0,2,12,15,17,19],when:[0,2,4,7,8,10,13,14,15,17,19,20],whenev:[2,6,17],where:[0,2,3,7,8,12,15,17,19],whether:[2,12,17,22],whh:4,whhlcj_at_126:4,which:[0,1,2,3,7,8,10,11,12,13,14,15,16,17,18,19],who:[2,4,12,17,19,22],whole:[0,2,6,15,17],whose:[6,17],why:[0,2],wide:[7,8,16,20],width:2,wiegger:4,wigginton:4,wiki:[6,7,8,17],wikipedia:[7,8,15,17],wildcard:[2,6],wilk:4,william:4,wilson:4,win2k:6,win32:17,win98:6,window:[1,2,4,7,9,19,20],winhttp:6,winningham:4,winnt4:6,wisenutbot:6,wish:[0,2,7,8,12,17],withdrawn:4,within:[2,6,12],without:[2,3,17,18,19],witten:4,wizard:[6,17],wkito:6,won:[0,2],word:[2,6,9],wordfenc:6,work:[2,4,13,15,17,19],workaround:[6,17],workbook:8,world:[2,7],worldwideski:4,worldwideskier_at_yahoo:4,wors:6,would:[2,13,15,17,18,19],wrap:2,wrapper:17,writabl:[2,22],write:[2,8],written:[2,5,6,10],wrong:[2,13],wrongli:6,www:[2,3,4,6,7,17,18],wysiwyg:4,xampp:17,xavier:4,xhtml1:4,xml:[4,7,10,14,17],xosecalvo_at_gmail:4,xs910203_at_gmail:4,xuan:4,xvnavarro_at_gmail:4,xxx:[2,6,19],xxxx:2,xzvf:17,yacybot:6,yahoo:6,yahooseek:6,yan:4,yansilvagabriel_at_gmail:4,yarn:[4,17],yaron:4,yaron_at_gmail:4,yashodha:4,yasir:4,yasitha:4,yavuz:4,yearmad:8,yellow:6,yes:2,yet:[2,8],yetdiffer:2,yizhou:4,yml:17,yogarajah:4,yogeshwar:4,yohan:4,yong:4,yoon:4,you:[0,1,2,3,4,5,6,7,8,10,11,12,13,14,15,16,17,18,19,20,22],youbico:20,youngmin:4,youngminz:4,your:[0,2,6,8,9,10,12,13,14,15,16,18,19],your_db_host:17,your_theme_nam:18,yourpassword:2,yswy_at_hotmail:4,yug:4,yugal:4,yukihiro:4,yuval:4,yyi:2,yyyi:2,zahra:4,zancan:4,zarubin:4,zassenhau:4,zassenhaus_at_jgerman:4,zend:6,zero:[2,8,16],zeroconf:[2,17],zerofil:19,zheng:4,zhyarabdulla94_at_gmail:4,zigmanta:4,zion_at_gmail:4,zip:[2,4,6,7,8,10,14,17],zip_:7,zipdump:2,zlib:[6,7,10],zone:2,zoom:4,zrng:4,zufar:4,zzz:2,zzzz:2},titles:["Bookmarks","Charts","Configuration","Copyright","Credits","Developers Information","FAQ - Frequently Asked Questions","Glossary","Import and export","Welcome to phpMyAdmin\u2019s documentation!","Introduction","Other sources of information","User management","Relations","Requirements","Security policy","Configuring phpMyAdmin","Installation","Custom Themes","Transformations","Two-factor authentication","User Guide","Distributing and packaging phpMyAdmin"],titleterms:{"100":6,"111":6,"17a":6,"2000":8,"2fa":20,"404":6,"500":6,"5b4":6,"\u010deski":11,"\u0440\u0443\u0441\u0441\u043a\u0438\u0439":11,"default":[2,6],"export":[2,6,8],"function":6,"import":[2,6,8],"int":6,"new":[6,12],"null":6,"return":6,"try":6,"while":6,IIS:6,ODS:8,PWS:6,RDS:2,The:6,USE:6,Using:[6,17],With:6,YES:6,abl:6,about:[6,10],access:6,action:6,add:6,addit:6,address:2,adjust:6,after:[6,17],again:6,against:6,alert:6,allow:6,alreadi:6,alwai:6,amazon:2,ani:6,ansi:6,apach:6,applic:[6,20],appropri:6,area:6,arrai:8,ascii:6,ask:6,assign:12,attack:[6,15],aurora:2,auth:6,authent:[2,6,17,20],auto:6,autologin:2,automat:6,back:[6,17],backup:6,bar:[1,6],base:6,basic:2,becaus:6,behavior:6,behind:17,being:6,below:6,big:6,bind:6,blank:6,blob:6,book:11,bookmark:[0,6],box:[2,6],bring:6,brows:[0,2,6,17],browser:[6,14],brute:[6,15],bug:6,bundl:6,caching_sha2_password:6,can:6,cannot:6,caus:6,central:6,certain:6,cgi:6,chang:6,charact:6,chart:[1,6],checkbox:6,chronolog:4,click:6,clickabl:6,client:6,cloud:[2,17],cluster:6,codegen:8,column:[1,6,8,17],come:6,comment:6,complet:6,compos:17,compress:6,config:17,configur:[2,6,12,16,17,18],connect:[2,6,17],consid:6,consol:2,contain:6,content:6,control:6,cooki:[2,6,17],copi:6,copyright:3,correct:6,could:6,crash:6,creat:[6,12,17,18],credit:4,cross:15,cryptic:6,csrf:15,csv:[6,8],curiou:6,custom:[2,6,17,18],czech:11,data:[6,8],databas:[2,6,12,14,17],db_structur:6,debian:17,decim:6,delet:[6,12],deni:6,deriv:17,design:[2,6,13],determin:6,develop:[2,5,6],differ:6,directli:6,directori:2,disclosur:6,disk:6,displai:[2,6],distribut:[6,17,22],docker:17,document:[4,6,8,9],doe:6,doesn:6,don:6,dot:6,down:6,drop:6,dump:6,duplic:6,each:6,edit:[2,6,12],effect:6,employe:6,empti:6,enabl:6,encrypt:6,english:11,enter:6,enterpris:17,environ:17,error:6,errorcod:6,esri:[6,8],evil:6,exampl:[1,2,6,13,17],excel:[6,8],execut:6,exist:[6,12],explor:6,extend:6,extens:6,extern:22,face:6,factor:20,fail:6,faq:6,favorit:6,featur:[6,10],fedora:17,fido:20,field:[2,6],file:[6,8,17,19,22],fine:6,firefox:6,firstnam:6,fix:6,folder:6,follow:6,font:6,forc:[6,15],foreign:6,forgeri:15,form:6,format:6,formula:6,forward:6,found:6,frequent:6,from:[6,17],full:6,gener:[2,6],gentoo:17,german:6,get:6,git:17,give:6,glossari:7,gone:6,googl:2,group:12,guid:21,gzip:6,happen:6,haproxi:17,hardwar:20,hash:6,hat:17,have:6,hcaptcha:2,header:6,heard:6,help:6,hierarchi:6,homonym:6,host:6,how:6,html:6,http:[6,17],huge:6,hundr:6,hyphen:6,ibm:17,imag:18,implement:1,improv:6,includ:6,increment:6,index:6,indic:9,info:13,inform:[5,6,11],inject:[6,15],innodb:6,input:6,insert:6,insid:0,instal:[6,17],intend:6,intern:6,internet:6,introduct:[10,19],isp:6,issu:[6,15,17],its:6,javascript:6,json:8,just:6,kei:[6,10,20],know:6,known:[6,17],konqueror:6,lang:6,languag:[2,6],larg:6,lastnam:6,latex:[6,8],length:6,let:6,librari:[6,22],licens:[3,22],like:6,limit:[2,6],line:1,linux:17,list:6,load:[6,8],local:6,localhost:6,locat:6,log:[6,17],login:6,lose:6,lost:6,lot:6,lowercas:6,lump:6,mac:6,machin:6,main:2,make:6,manag:[2,12],mandriva:17,mani:6,manner:6,manual:17,mean:6,mediawiki:8,memori:6,menu:12,messag:6,metadata:18,method:6,microsoft:[6,8],mime:6,mimetyp:6,mine:6,misbehav:6,miss:6,mod_gzip:6,mode:[2,6,17],modifi:6,more:6,move:6,mozilla:6,multi:6,multipl:[2,6],mysql:[2,6],mysqldump:6,mysqli:6,name:[6,8],nativ:6,navig:[2,6],need:6,nest:6,netscap:6,never:6,newer:6,nick:6,non:6,noth:6,now:6,number:6,older:[6,17],onc:6,one:6,onli:6,onto:6,open:8,open_basedir:6,opendocu:8,opensus:17,oper:6,option:[2,6,8],order:4,origin:4,other:11,out:[6,17],own:6,packag:22,page:[2,6],panel:2,paramet:6,parameter:6,pars:6,parti:3,password:6,path:6,pdf:[2,6,8],php:[6,8,14],phpmyadmin:[6,9,16,17,22],pie:1,plenti:6,pmadb:6,polici:[6,15],port:6,possibl:6,potenti:6,pr1:6,pre:6,prefer:6,prevent:6,primari:6,print:11,privileg:[6,12,17],problem:6,proce:6,procedur:6,process:6,produc:6,progress:6,project:6,protect:6,protocol:6,proxi:6,put:6,queri:[2,6],question:6,quick:17,rang:6,reassign:6,recaptcha:2,receiv:6,red:17,redirect:6,reduc:6,refresh:6,refus:6,relat:[6,13],relationship:6,releas:17,reload:6,renam:6,report:15,request:[6,15],requir:[6,14],restor:6,restrict:6,result:6,revers:6,right:6,robot:6,root:6,row:6,run:[6,17],russian:11,safari:6,safe:6,sai:6,same:6,save:2,scatter:1,schema:6,script:[6,15,17],scroll:6,search:6,secur:[6,15,17,20],see:6,seem:6,select:6,send:6,sent:6,seri:6,server:[2,6,14,17],set:[2,6],setup:[2,6,17],shape:8,shapefil:6,share:18,shortcut:10,should:6,shown:6,signon:[2,17],simpl:[6,20],simpli:6,singl:6,site:15,size:6,smith:6,sock:6,socket:6,some:6,sometim:6,sourc:11,special:6,specif:[6,12,17,22],specifi:6,spline:1,spreadsheet:8,sql:[2,6,8,15],sql_mode:6,ssl:[2,17],start:6,statist:6,storag:17,store:[0,6],string:6,structur:[2,6,19],subdirectori:17,suhosin:6,support:[6,10],sure:6,symbol:6,synchron:6,tab:[2,6],tabl:[0,6,8,9],technic:13,texi:8,text:[2,6,8],than:6,thei:6,them:6,theme:[2,6,18],thi:6,third:3,those:6,through:6,time:6,timelin:1,timeout:6,titl:2,tmp:6,togeth:6,tool:6,transform:[2,6,19],translat:[4,6],troubl:[6,17],tutori:11,two:[6,20],type:6,typic:15,u2f:20,ubuntu:17,umlaut:6,unabl:[6,17],undefin:6,under:6,underscor:6,understand:6,unicod:6,unix:6,unknown:6,unsaf:6,upgrad:[6,17],upload:[2,6],url:6,usag:19,use:6,used:6,useful:6,user:[6,10,12,17,21],usernam:6,uses:6,using:[0,2,6,8,17],valu:6,varchar:6,variabl:[0,6,17],variou:2,vendor:22,verifi:17,version:[4,6,17],via:6,view:[6,13],violat:6,volum:17,vulner:15,wai:6,want:6,warn:6,web:[2,14],welcom:[6,9],what:6,when:6,where:6,which:6,whitespac:6,who:6,why:6,win32:6,window:[6,17],withdrawn:6,without:6,won:6,word:[8,10],work:6,would:6,write:6,wrong:6,xitami:6,xml:8,xss:15,yaml:8,your:17,zero:17,zoom:6}}) \ No newline at end of file +Search.setIndex({docnames:["bookmarks","charts","config","copyright","credits","developers","faq","glossary","import_export","index","intro","other","privileges","relations","require","security","settings","setup","themes","transformations","two_factor","user","vendors"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,sphinx:56},filenames:["bookmarks.rst","charts.rst","config.rst","copyright.rst","credits.rst","developers.rst","faq.rst","glossary.rst","import_export.rst","index.rst","intro.rst","other.rst","privileges.rst","relations.rst","require.rst","security.rst","settings.rst","setup.rst","themes.rst","transformations.rst","two_factor.rst","user.rst","vendors.rst"],objects:{"":{"$cfg['ActionLinksMode']":[2,0,1,"cfg_ActionLinksMode"],"$cfg['AllowArbitraryServer']":[2,0,1,"cfg_AllowArbitraryServer"],"$cfg['AllowThirdPartyFraming']":[2,0,1,"cfg_AllowThirdPartyFraming"],"$cfg['AllowUserDropDatabase']":[2,0,1,"cfg_AllowUserDropDatabase"],"$cfg['ArbitraryServerRegexp']":[2,0,1,"cfg_ArbitraryServerRegexp"],"$cfg['AuthLog']":[2,0,1,"cfg_AuthLog"],"$cfg['AuthLogSuccess']":[2,0,1,"cfg_AuthLogSuccess"],"$cfg['AvailableCharsets']":[2,0,1,"cfg_AvailableCharsets"],"$cfg['BZipDump']":[2,0,1,"cfg_BZipDump"],"$cfg['BrowseMIME']":[2,0,1,"cfg_BrowseMIME"],"$cfg['BrowseMarkerEnable']":[2,0,1,"cfg_BrowseMarkerEnable"],"$cfg['BrowsePointerEnable']":[2,0,1,"cfg_BrowsePointerEnable"],"$cfg['CSPAllow']":[2,0,1,"cfg_CSPAllow"],"$cfg['CaptchaApi']":[2,0,1,"cfg_CaptchaApi"],"$cfg['CaptchaCsp']":[2,0,1,"cfg_CaptchaCsp"],"$cfg['CaptchaLoginPrivateKey']":[2,0,1,"cfg_CaptchaLoginPrivateKey"],"$cfg['CaptchaLoginPublicKey']":[2,0,1,"cfg_CaptchaLoginPublicKey"],"$cfg['CaptchaMethod']":[2,0,1,"cfg_CaptchaMethod"],"$cfg['CaptchaRequestParam']":[2,0,1,"cfg_CaptchaRequestParam"],"$cfg['CaptchaResponseParam']":[2,0,1,"cfg_CaptchaResponseParam"],"$cfg['CaptchaSiteVerifyURL']":[2,0,1,"cfg_CaptchaSiteVerifyURL"],"$cfg['CharEditing']":[2,0,1,"cfg_CharEditing"],"$cfg['CharTextareaCols']":[2,0,1,"cfg_CharTextareaCols"],"$cfg['CharTextareaRows']":[2,0,1,"cfg_CharTextareaRows"],"$cfg['CheckConfigurationPermissions']":[2,0,1,"cfg_CheckConfigurationPermissions"],"$cfg['CodemirrorEnable']":[2,0,1,"cfg_CodemirrorEnable"],"$cfg['CompressOnFly']":[2,0,1,"cfg_CompressOnFly"],"$cfg['Confirm']":[2,0,1,"cfg_Confirm"],"$cfg['Console']['AlwaysExpand']":[2,0,1,"cfg_Console_AlwaysExpand"],"$cfg['Console']['CurrentQuery']":[2,0,1,"cfg_Console_CurrentQuery"],"$cfg['Console']['DarkTheme']":[2,0,1,"cfg_Console_DarkTheme"],"$cfg['Console']['EnterExecutes']":[2,0,1,"cfg_Console_EnterExecutes"],"$cfg['Console']['Height']":[2,0,1,"cfg_Console_Height"],"$cfg['Console']['Mode']":[2,0,1,"cfg_Console_Mode"],"$cfg['Console']['StartHistory']":[2,0,1,"cfg_Console_StartHistory"],"$cfg['ConsoleEnterExecutes']":[2,0,1,"cfg_ConsoleEnterExecutes"],"$cfg['CookieSameSite']":[2,0,1,"cfg_CookieSameSite"],"$cfg['DBG']":[2,0,1,"cfg_DBG"],"$cfg['DBG']['demo']":[2,0,1,"cfg_DBG_demo"],"$cfg['DBG']['simple2fa']":[2,0,1,"cfg_DBG_simple2fa"],"$cfg['DBG']['sql']":[2,0,1,"cfg_DBG_sql"],"$cfg['DBG']['sqllog']":[2,0,1,"cfg_DBG_sqllog"],"$cfg['DefaultConnectionCollation']":[2,0,1,"cfg_DefaultConnectionCollation"],"$cfg['DefaultForeignKeyChecks']":[2,0,1,"cfg_DefaultForeignKeyChecks"],"$cfg['DefaultFunctions']":[2,0,1,"cfg_DefaultFunctions"],"$cfg['DefaultLang']":[2,0,1,"cfg_DefaultLang"],"$cfg['DefaultQueryDatabase']":[2,0,1,"cfg_DefaultQueryDatabase"],"$cfg['DefaultQueryTable']":[2,0,1,"cfg_DefaultQueryTable"],"$cfg['DefaultTabDatabase']":[2,0,1,"cfg_DefaultTabDatabase"],"$cfg['DefaultTabServer']":[2,0,1,"cfg_DefaultTabServer"],"$cfg['DefaultTabTable']":[2,0,1,"cfg_DefaultTabTable"],"$cfg['DefaultTransformations']":[2,0,1,"cfg_DefaultTransformations"],"$cfg['DefaultTransformations']['Bool2Text']":[2,0,1,"cfg_DefaultTransformations_Bool2Text"],"$cfg['DefaultTransformations']['DateFormat']":[2,0,1,"cfg_DefaultTransformations_DateFormat"],"$cfg['DefaultTransformations']['External']":[2,0,1,"cfg_DefaultTransformations_External"],"$cfg['DefaultTransformations']['Hex']":[2,0,1,"cfg_DefaultTransformations_Hex"],"$cfg['DefaultTransformations']['Inline']":[2,0,1,"cfg_DefaultTransformations_Inline"],"$cfg['DefaultTransformations']['PreApPend']":[2,0,1,"cfg_DefaultTransformations_PreApPend"],"$cfg['DefaultTransformations']['Substring']":[2,0,1,"cfg_DefaultTransformations_Substring"],"$cfg['DefaultTransformations']['TextImageLink']":[2,0,1,"cfg_DefaultTransformations_TextImageLink"],"$cfg['DefaultTransformations']['TextLink']":[2,0,1,"cfg_DefaultTransformations_TextLink"],"$cfg['DisableMultiTableMaintenance']":[2,0,1,"cfg_DisableMultiTableMaintenance"],"$cfg['DisableShortcutKeys']":[2,0,1,"cfg_DisableShortcutKeys"],"$cfg['DisplayServersList']":[2,0,1,"cfg_DisplayServersList"],"$cfg['EnableAutocompleteForTablesAndColumns']":[2,0,1,"cfg_EnableAutocompleteForTablesAndColumns"],"$cfg['ExecTimeLimit']":[2,0,1,"cfg_ExecTimeLimit"],"$cfg['Export']":[2,0,1,"cfg_Export"],"$cfg['Export']['charset']":[2,0,1,"cfg_Export_charset"],"$cfg['Export']['file_template_database']":[2,0,1,"cfg_Export_file_template_database"],"$cfg['Export']['file_template_server']":[2,0,1,"cfg_Export_file_template_server"],"$cfg['Export']['file_template_table']":[2,0,1,"cfg_Export_file_template_table"],"$cfg['Export']['format']":[2,0,1,"cfg_Export_format"],"$cfg['Export']['method']":[2,0,1,"cfg_Export_method"],"$cfg['FilterLanguages']":[2,0,1,"cfg_FilterLanguages"],"$cfg['FirstDayOfCalendar']":[2,0,1,"cfg_FirstDayOfCalendar"],"$cfg['FirstLevelNavigationItems']":[2,0,1,"cfg_FirstLevelNavigationItems"],"$cfg['FontSize']":[2,0,1,"cfg_FontSize"],"$cfg['ForceSSL']":[2,0,1,"cfg_ForceSSL"],"$cfg['ForeignKeyDropdownOrder']":[2,0,1,"cfg_ForeignKeyDropdownOrder"],"$cfg['ForeignKeyMaxLimit']":[2,0,1,"cfg_ForeignKeyMaxLimit"],"$cfg['GD2Available']":[2,0,1,"cfg_GD2Available"],"$cfg['GZipDump']":[2,0,1,"cfg_GZipDump"],"$cfg['GridEditing']":[2,0,1,"cfg_GridEditing"],"$cfg['HideStructureActions']":[2,0,1,"cfg_HideStructureActions"],"$cfg['IconvExtraParams']":[2,0,1,"cfg_IconvExtraParams"],"$cfg['IgnoreMultiSubmitErrors']":[2,0,1,"cfg_IgnoreMultiSubmitErrors"],"$cfg['Import']":[2,0,1,"cfg_Import"],"$cfg['Import']['charset']":[2,0,1,"cfg_Import_charset"],"$cfg['InitialSlidersState']":[2,0,1,"cfg_InitialSlidersState"],"$cfg['InsertRows']":[2,0,1,"cfg_InsertRows"],"$cfg['Lang']":[2,0,1,"cfg_Lang"],"$cfg['LimitChars']":[2,0,1,"cfg_LimitChars"],"$cfg['LinkLengthLimit']":[2,0,1,"cfg_LinkLengthLimit"],"$cfg['LoginCookieDeleteAll']":[2,0,1,"cfg_LoginCookieDeleteAll"],"$cfg['LoginCookieRecall']":[2,0,1,"cfg_LoginCookieRecall"],"$cfg['LoginCookieStore']":[2,0,1,"cfg_LoginCookieStore"],"$cfg['LoginCookieValidity']":[2,0,1,"cfg_LoginCookieValidity"],"$cfg['LoginCookieValidityDisableWarning']":[2,0,1,"cfg_LoginCookieValidityDisableWarning"],"$cfg['LongtextDoubleTextarea']":[2,0,1,"cfg_LongtextDoubleTextarea"],"$cfg['MaxCharactersInDisplayedSQL']":[2,0,1,"cfg_MaxCharactersInDisplayedSQL"],"$cfg['MaxDbList']":[2,0,1,"cfg_MaxDbList"],"$cfg['MaxExactCount']":[2,0,1,"cfg_MaxExactCount"],"$cfg['MaxExactCountViews']":[2,0,1,"cfg_MaxExactCountViews"],"$cfg['MaxNavigationItems']":[2,0,1,"cfg_MaxNavigationItems"],"$cfg['MaxRows']":[2,0,1,"cfg_MaxRows"],"$cfg['MaxSizeForInputField']":[2,0,1,"cfg_MaxSizeForInputField"],"$cfg['MaxTableList']":[2,0,1,"cfg_MaxTableList"],"$cfg['MemoryLimit']":[2,0,1,"cfg_MemoryLimit"],"$cfg['MinSizeForInputField']":[2,0,1,"cfg_MinSizeForInputField"],"$cfg['MysqlMinVersion']":[2,0,1,"cfg_MysqlMinVersion"],"$cfg['MysqlSslWarningSafeHosts']":[2,0,1,"cfg_MysqlSslWarningSafeHosts"],"$cfg['NaturalOrder']":[2,0,1,"cfg_NaturalOrder"],"$cfg['NavigationDisplayLogo']":[2,0,1,"cfg_NavigationDisplayLogo"],"$cfg['NavigationDisplayServers']":[2,0,1,"cfg_NavigationDisplayServers"],"$cfg['NavigationLinkWithMainPanel']":[2,0,1,"cfg_NavigationLinkWithMainPanel"],"$cfg['NavigationLogoLink']":[2,0,1,"cfg_NavigationLogoLink"],"$cfg['NavigationLogoLinkWindow']":[2,0,1,"cfg_NavigationLogoLinkWindow"],"$cfg['NavigationTreeDbSeparator']":[2,0,1,"cfg_NavigationTreeDbSeparator"],"$cfg['NavigationTreeDefaultTabTable']":[2,0,1,"cfg_NavigationTreeDefaultTabTable"],"$cfg['NavigationTreeDefaultTabTable2']":[2,0,1,"cfg_NavigationTreeDefaultTabTable2"],"$cfg['NavigationTreeDisplayDbFilterMinimum']":[2,0,1,"cfg_NavigationTreeDisplayDbFilterMinimum"],"$cfg['NavigationTreeDisplayItemFilterMinimum']":[2,0,1,"cfg_NavigationTreeDisplayItemFilterMinimum"],"$cfg['NavigationTreeEnableExpansion']":[2,0,1,"cfg_NavigationTreeEnableExpansion"],"$cfg['NavigationTreeEnableGrouping']":[2,0,1,"cfg_NavigationTreeEnableGrouping"],"$cfg['NavigationTreePointerEnable']":[2,0,1,"cfg_NavigationTreePointerEnable"],"$cfg['NavigationTreeShowEvents']":[2,0,1,"cfg_NavigationTreeShowEvents"],"$cfg['NavigationTreeShowFunctions']":[2,0,1,"cfg_NavigationTreeShowFunctions"],"$cfg['NavigationTreeShowProcedures']":[2,0,1,"cfg_NavigationTreeShowProcedures"],"$cfg['NavigationTreeShowTables']":[2,0,1,"cfg_NavigationTreeShowTables"],"$cfg['NavigationTreeShowViews']":[2,0,1,"cfg_NavigationTreeShowViews"],"$cfg['NavigationTreeTableLevel']":[2,0,1,"cfg_NavigationTreeTableLevel"],"$cfg['NavigationTreeTableSeparator']":[2,0,1,"cfg_NavigationTreeTableSeparator"],"$cfg['NavigationWidth']":[2,0,1,"cfg_NavigationWidth"],"$cfg['NumFavoriteTables']":[2,0,1,"cfg_NumFavoriteTables"],"$cfg['NumRecentTables']":[2,0,1,"cfg_NumRecentTables"],"$cfg['OBGzip']":[2,0,1,"cfg_OBGzip"],"$cfg['Order']":[2,0,1,"cfg_Order"],"$cfg['PDFDefaultPageSize']":[2,0,1,"cfg_PDFDefaultPageSize"],"$cfg['PDFPageSizes']":[2,0,1,"cfg_PDFPageSizes"],"$cfg['PersistentConnections']":[2,0,1,"cfg_PersistentConnections"],"$cfg['PmaAbsoluteUri']":[2,0,1,"cfg_PmaAbsoluteUri"],"$cfg['PmaNoRelation_DisableWarning']":[2,0,1,"cfg_PmaNoRelation_DisableWarning"],"$cfg['PropertiesNumColumns']":[2,0,1,"cfg_PropertiesNumColumns"],"$cfg['ProtectBinary']":[2,0,1,"cfg_ProtectBinary"],"$cfg['ProxyPass']":[2,0,1,"cfg_ProxyPass"],"$cfg['ProxyUrl']":[2,0,1,"cfg_ProxyUrl"],"$cfg['ProxyUser']":[2,0,1,"cfg_ProxyUser"],"$cfg['QueryHistoryDB']":[2,0,1,"cfg_QueryHistoryDB"],"$cfg['QueryHistoryMax']":[2,0,1,"cfg_QueryHistoryMax"],"$cfg['RecodingEngine']":[2,0,1,"cfg_RecodingEngine"],"$cfg['RelationalDisplay']":[2,0,1,"cfg_RelationalDisplay"],"$cfg['RememberSorting']":[2,0,1,"cfg_RememberSorting"],"$cfg['RepeatCells']":[2,0,1,"cfg_RepeatCells"],"$cfg['ReservedWordDisableWarning']":[2,0,1,"cfg_ReservedWordDisableWarning"],"$cfg['RetainQueryBox']":[2,0,1,"cfg_RetainQueryBox"],"$cfg['RowActionLinks']":[2,0,1,"cfg_RowActionLinks"],"$cfg['RowActionLinksWithoutUnique']":[2,0,1,"cfg_RowActionLinksWithoutUnique"],"$cfg['RowActionType']":[2,0,1,"cfg_RowActionType"],"$cfg['SQLQuery']['Edit']":[2,0,1,"cfg_SQLQuery_Edit"],"$cfg['SQLQuery']['Explain']":[2,0,1,"cfg_SQLQuery_Explain"],"$cfg['SQLQuery']['Refresh']":[2,0,1,"cfg_SQLQuery_Refresh"],"$cfg['SQLQuery']['ShowAsPHP']":[2,0,1,"cfg_SQLQuery_ShowAsPHP"],"$cfg['SaveCellsAtOnce']":[2,0,1,"cfg_SaveCellsAtOnce"],"$cfg['SaveDir']":[2,0,1,"cfg_SaveDir"],"$cfg['SendErrorReports']":[2,0,1,"cfg_SendErrorReports"],"$cfg['ServerDefault']":[2,0,1,"cfg_ServerDefault"],"$cfg['ServerLibraryDifference_DisableWarning']":[2,0,1,"cfg_ServerLibraryDifference_DisableWarning"],"$cfg['Servers']":[2,0,1,"cfg_Servers"],"$cfg['Servers'][$i]['AllowDeny']['order']":[2,0,1,"cfg_Servers_AllowDeny_order"],"$cfg['Servers'][$i]['AllowDeny']['rules']":[2,0,1,"cfg_Servers_AllowDeny_rules"],"$cfg['Servers'][$i]['AllowNoPassword']":[2,0,1,"cfg_Servers_AllowNoPassword"],"$cfg['Servers'][$i]['AllowRoot']":[2,0,1,"cfg_Servers_AllowRoot"],"$cfg['Servers'][$i]['DisableIS']":[2,0,1,"cfg_Servers_DisableIS"],"$cfg['Servers'][$i]['LogoutURL']":[2,0,1,"cfg_Servers_LogoutURL"],"$cfg['Servers'][$i]['MaxTableUiprefs']":[2,0,1,"cfg_Servers_MaxTableUiprefs"],"$cfg['Servers'][$i]['SessionTimeZone']":[2,0,1,"cfg_Servers_SessionTimeZone"],"$cfg['Servers'][$i]['SignonCookieParams']":[2,0,1,"cfg_Servers_SignonCookieParams"],"$cfg['Servers'][$i]['SignonScript']":[2,0,1,"cfg_Servers_SignonScript"],"$cfg['Servers'][$i]['SignonSession']":[2,0,1,"cfg_Servers_SignonSession"],"$cfg['Servers'][$i]['SignonURL']":[2,0,1,"cfg_Servers_SignonURL"],"$cfg['Servers'][$i]['auth_http_realm']":[2,0,1,"cfg_Servers_auth_http_realm"],"$cfg['Servers'][$i]['auth_swekey_config']":[2,0,1,"cfg_Servers_auth_swekey_config"],"$cfg['Servers'][$i]['auth_type']":[2,0,1,"cfg_Servers_auth_type"],"$cfg['Servers'][$i]['bookmarktable']":[2,0,1,"cfg_Servers_bookmarktable"],"$cfg['Servers'][$i]['central_columns']":[2,0,1,"cfg_Servers_central_columns"],"$cfg['Servers'][$i]['column_info']":[2,0,1,"cfg_Servers_column_info"],"$cfg['Servers'][$i]['compress']":[2,0,1,"cfg_Servers_compress"],"$cfg['Servers'][$i]['connect_type']":[2,0,1,"cfg_Servers_connect_type"],"$cfg['Servers'][$i]['control_*']":[2,0,1,"cfg_Servers_control_*"],"$cfg['Servers'][$i]['controlhost']":[2,0,1,"cfg_Servers_controlhost"],"$cfg['Servers'][$i]['controlpass']":[2,0,1,"cfg_Servers_controlpass"],"$cfg['Servers'][$i]['controlport']":[2,0,1,"cfg_Servers_controlport"],"$cfg['Servers'][$i]['controluser']":[2,0,1,"cfg_Servers_controluser"],"$cfg['Servers'][$i]['designer_coords']":[2,0,1,"cfg_Servers_designer_coords"],"$cfg['Servers'][$i]['designer_settings']":[2,0,1,"cfg_Servers_designer_settings"],"$cfg['Servers'][$i]['export_templates']":[2,0,1,"cfg_Servers_export_templates"],"$cfg['Servers'][$i]['extension']":[2,0,1,"cfg_Servers_extension"],"$cfg['Servers'][$i]['favorite']":[2,0,1,"cfg_Servers_favorite"],"$cfg['Servers'][$i]['hide_connection_errors']":[2,0,1,"cfg_Servers_hide_connection_errors"],"$cfg['Servers'][$i]['hide_db']":[2,0,1,"cfg_Servers_hide_db"],"$cfg['Servers'][$i]['history']":[2,0,1,"cfg_Servers_history"],"$cfg['Servers'][$i]['host']":[2,0,1,"cfg_Servers_host"],"$cfg['Servers'][$i]['navigationhiding']":[2,0,1,"cfg_Servers_navigationhiding"],"$cfg['Servers'][$i]['nopassword']":[2,0,1,"cfg_Servers_nopassword"],"$cfg['Servers'][$i]['only_db']":[2,0,1,"cfg_Servers_only_db"],"$cfg['Servers'][$i]['password']":[2,0,1,"cfg_Servers_password"],"$cfg['Servers'][$i]['pdf_pages']":[2,0,1,"cfg_Servers_pdf_pages"],"$cfg['Servers'][$i]['pmadb']":[2,0,1,"cfg_Servers_pmadb"],"$cfg['Servers'][$i]['port']":[2,0,1,"cfg_Servers_port"],"$cfg['Servers'][$i]['recent']":[2,0,1,"cfg_Servers_recent"],"$cfg['Servers'][$i]['relation']":[2,0,1,"cfg_Servers_relation"],"$cfg['Servers'][$i]['savedsearches']":[2,0,1,"cfg_Servers_savedsearches"],"$cfg['Servers'][$i]['socket']":[2,0,1,"cfg_Servers_socket"],"$cfg['Servers'][$i]['ssl']":[2,0,1,"cfg_Servers_ssl"],"$cfg['Servers'][$i]['ssl_ca']":[2,0,1,"cfg_Servers_ssl_ca"],"$cfg['Servers'][$i]['ssl_ca_path']":[2,0,1,"cfg_Servers_ssl_ca_path"],"$cfg['Servers'][$i]['ssl_cert']":[2,0,1,"cfg_Servers_ssl_cert"],"$cfg['Servers'][$i]['ssl_ciphers']":[2,0,1,"cfg_Servers_ssl_ciphers"],"$cfg['Servers'][$i]['ssl_key']":[2,0,1,"cfg_Servers_ssl_key"],"$cfg['Servers'][$i]['ssl_verify']":[2,0,1,"cfg_Servers_ssl_verify"],"$cfg['Servers'][$i]['table_coords']":[2,0,1,"cfg_Servers_table_coords"],"$cfg['Servers'][$i]['table_info']":[2,0,1,"cfg_Servers_table_info"],"$cfg['Servers'][$i]['table_uiprefs']":[2,0,1,"cfg_Servers_table_uiprefs"],"$cfg['Servers'][$i]['tracking']":[2,0,1,"cfg_Servers_tracking"],"$cfg['Servers'][$i]['tracking_add_drop_database']":[2,0,1,"cfg_Servers_tracking_add_drop_database"],"$cfg['Servers'][$i]['tracking_add_drop_table']":[2,0,1,"cfg_Servers_tracking_add_drop_table"],"$cfg['Servers'][$i]['tracking_add_drop_view']":[2,0,1,"cfg_Servers_tracking_add_drop_view"],"$cfg['Servers'][$i]['tracking_default_statements']":[2,0,1,"cfg_Servers_tracking_default_statements"],"$cfg['Servers'][$i]['tracking_version_auto_create']":[2,0,1,"cfg_Servers_tracking_version_auto_create"],"$cfg['Servers'][$i]['user']":[2,0,1,"cfg_Servers_user"],"$cfg['Servers'][$i]['userconfig']":[2,0,1,"cfg_Servers_userconfig"],"$cfg['Servers'][$i]['usergroups']":[2,0,1,"cfg_Servers_usergroups"],"$cfg['Servers'][$i]['users']":[2,0,1,"cfg_Servers_users"],"$cfg['Servers'][$i]['verbose']":[2,0,1,"cfg_Servers_verbose"],"$cfg['SessionSavePath']":[2,0,1,"cfg_SessionSavePath"],"$cfg['ShowAll']":[2,0,1,"cfg_ShowAll"],"$cfg['ShowBrowseComments']":[2,0,1,"cfg_ShowBrowseComments"],"$cfg['ShowChgPassword']":[2,0,1,"cfg_ShowChgPassword"],"$cfg['ShowColumnComments']":[2,0,1,"cfg_ShowColumnComments"],"$cfg['ShowCreateDb']":[2,0,1,"cfg_ShowCreateDb"],"$cfg['ShowDatabasesNavigationAsTree']":[2,0,1,"cfg_ShowDatabasesNavigationAsTree"],"$cfg['ShowDbStructureCreation']":[2,0,1,"cfg_ShowDbStructureCreation"],"$cfg['ShowDbStructureLastCheck']":[2,0,1,"cfg_ShowDbStructureLastCheck"],"$cfg['ShowDbStructureLastUpdate']":[2,0,1,"cfg_ShowDbStructureLastUpdate"],"$cfg['ShowFieldTypesInDataEditView']":[2,0,1,"cfg_ShowFieldTypesInDataEditView"],"$cfg['ShowFunctionFields']":[2,0,1,"cfg_ShowFunctionFields"],"$cfg['ShowGitRevision']":[2,0,1,"cfg_ShowGitRevision"],"$cfg['ShowHint']":[2,0,1,"cfg_ShowHint"],"$cfg['ShowPhpInfo']":[2,0,1,"cfg_ShowPhpInfo"],"$cfg['ShowPropertyComments']":[2,0,1,"cfg_ShowPropertyComments"],"$cfg['ShowSQL']":[2,0,1,"cfg_ShowSQL"],"$cfg['ShowServerInfo']":[2,0,1,"cfg_ShowServerInfo"],"$cfg['ShowStats']":[2,0,1,"cfg_ShowStats"],"$cfg['SkipLockedTables']":[2,0,1,"cfg_SkipLockedTables"],"$cfg['SuhosinDisableWarning']":[2,0,1,"cfg_SuhosinDisableWarning"],"$cfg['TableNavigationLinksMode']":[2,0,1,"cfg_TableNavigationLinksMode"],"$cfg['TablePrimaryKeyOrder']":[2,0,1,"cfg_TablePrimaryKeyOrder"],"$cfg['TabsMode']":[2,0,1,"cfg_TabsMode"],"$cfg['TempDir']":[2,0,1,"cfg_TempDir"],"$cfg['TextareaAutoSelect']":[2,0,1,"cfg_TextareaAutoSelect"],"$cfg['TextareaCols']":[2,0,1,"cfg_TextareaCols"],"$cfg['TextareaRows']":[2,0,1,"cfg_TextareaRows"],"$cfg['ThemeDefault']":[2,0,1,"cfg_ThemeDefault"],"$cfg['ThemeManager']":[2,0,1,"cfg_ThemeManager"],"$cfg['ThemePerServer']":[2,0,1,"cfg_ThemePerServer"],"$cfg['TitleDatabase']":[2,0,1,"cfg_TitleDatabase"],"$cfg['TitleDefault']":[2,0,1,"cfg_TitleDefault"],"$cfg['TitleServer']":[2,0,1,"cfg_TitleServer"],"$cfg['TitleTable']":[2,0,1,"cfg_TitleTable"],"$cfg['TranslationWarningThreshold']":[2,0,1,"cfg_TranslationWarningThreshold"],"$cfg['TrustedProxies']":[2,0,1,"cfg_TrustedProxies"],"$cfg['URLQueryEncryption']":[2,0,1,"cfg_URLQueryEncryption"],"$cfg['URLQueryEncryptionSecretKey']":[2,0,1,"cfg_URLQueryEncryptionSecretKey"],"$cfg['UploadDir']":[2,0,1,"cfg_UploadDir"],"$cfg['UseDbSearch']":[2,0,1,"cfg_UseDbSearch"],"$cfg['UserprefsDeveloperTab']":[2,0,1,"cfg_UserprefsDeveloperTab"],"$cfg['UserprefsDisallow']":[2,0,1,"cfg_UserprefsDisallow"],"$cfg['VersionCheck']":[2,0,1,"cfg_VersionCheck"],"$cfg['ZeroConf']":[2,0,1,"cfg_ZeroConf"],"$cfg['ZipDump']":[2,0,1,"cfg_ZipDump"],"$cfg['blowfish_secret']":[2,0,1,"cfg_blowfish_secret"],"$cfg['enable_drag_drop_import']":[2,0,1,"cfg_enable_drag_drop_import"],"$cfg['environment']":[2,0,1,"cfg_environment"],HIDE_PHP_VERSION:[17,2,1,"-"],PMA_ABSOLUTE_URI:[17,2,1,"-"],PMA_ARBITRARY:[17,2,1,"-"],PMA_CONFIG_BASE64:[17,2,1,"-"],PMA_HOST:[17,2,1,"-"],PMA_HOSTS:[17,2,1,"-"],PMA_PASSWORD:[17,2,1,"-"],PMA_PORT:[17,2,1,"-"],PMA_PORTS:[17,2,1,"-"],PMA_USER:[17,2,1,"-"],PMA_USER_CONFIG_BASE64:[17,2,1,"-"],PMA_VERBOSE:[17,2,1,"-"],PMA_VERBOSES:[17,2,1,"-"],UPLOAD_LIMIT:[17,2,1,"-"],comment:[8,1,1,""],data:[8,1,1,""],database:[8,1,1,""],name:[8,1,1,""],type:[8,1,1,""],version:[8,1,1,""]}},objnames:{"0":["config","option","Config config option"],"1":["js","data","JavaScript data"],"2":["std","envvar","environment variable"]},objtypes:{"0":"config:option","1":"js:data","2":"std:envvar"},terms:{"0000":2,"01youknowme_at_gmail":4,"0c3f":17,"0d79":17,"0eb7":17,"0pt":8,"0x9c27b31342b7511d":17,"0xce752f178259bd92":17,"0xfefc65d181af644a":17,"0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx":2,"100":[2,17],"1000":2,"1024":6,"1031":6,"113688":8,"11898":17,"11922":17,"12061":6,"12232":6,"1250":1,"127":[2,6],"13545":8,"1378":1,"14220":6,"1440":2,"1560":1,"1565":1,"168":[2,6,17],"16m":2,"172":[6,17],"179":6,"1898":1,"192":[2,6,17],"1952":[7,10],"1993":7,"1998":[3,4],"1b51":17,"1c17":17,"1df1":17,"200":6,"2000":[3,4,10],"2001":[2,3,4],"2002":6,"2004":4,"2006":1,"2007":8,"2008":4,"2009":4,"2010":4,"2011":4,"2012":4,"2013":4,"2014":4,"2015":[4,17],"2016":[1,15,17],"2017":4,"2018":[3,4],"2019":[2,6],"2048":6,"2048k":17,"2054":6,"2056":1,"210mm":8,"21704":6,"218a":15,"220":1,"2301":1,"240":2,"250":2,"255":2,"256":6,"2616":6,"26300":10,"26882":6,"297mm":8,"2cm":8,"2f17":17,"2fa":21,"300":[2,8],"3092849_at_qq":4,"31134":6,"3257":2,"3306":[2,6,17],"3457":1,"38cf":15,"3d06":17,"3d06a59ece730eb71b511c17ce752f178259bd92":17,"401":6,"404":2,"4096r":15,"42b7":17,"436f":17,"443":6,"49948350":6,"4b1a":17,"4bd7":15,"500":[1,2],"50000":2,"500000":2,"50b9":15,"511d":17,"5a32":17,"5bad":15,"5e4176fb497a31f7":15,"5xp_":17,"600":[1,6],"6375lpd_at_gmail":4,"63cb":17,"644a":17,"65d1":17,"660":6,"700":2,"720":1,"72048":2,"7383":6,"76243":6,"777":2,"7euser":6,"8000":17,"8080":17,"8192":6,"81af":17,"8259":17,"8259bd92":17,"851612429544":2,"9652":2,"98se":6,"9999":2,"999_at_yahoo":4,"9c27":17,"\u00e7okaj":4,"\u00e9tienn":4,"\u010diha\u0159":[3,4,17],"\u0161ime\u010dek":4,"\u03c0\u03b1\u03bd\u03b1\u03b3\u03b9\u03ce\u03c4\u03b7\u03c2":4,"\u03c0\u03b1\u03c0\u03ac\u03b6\u03bf\u03b3\u03bb\u03bf\u03c5":4,"\u0438\u0432\u0430\u043d":4,"\u043a\u0430\u0440\u043f\u043e\u0432":4,"\u043e\u043b\u0435\u0433":4,"\u043f\u0435\u0434\u044c\u043a\u043e":4,"\u0441\u0435\u0440\u0433\u0435\u0435\u0432\u0438\u0447":4,"\u0441\u0435\u0440\u0433\u0456\u0439":4,"\u0445\u043e\u043c\u0443\u0442\u043e\u0432":4,"\u0b95":4,"\u0b95\u0ba3":4,"\u0bae":4,"\u0bb0":4,"\u0bb7":4,"\u7f57\u6500\u767b":4,"\uc774\uacbd\uc900":4,"abstract":[4,19],"ale\u0161":4,"aputsia\u0138":4,"ara\u00fajo":4,"b\u00f8rge":4,"bal\u00e1z":4,"bokm\u00e5l":4,"boolean":2,"break":6,"byte":[2,7,8],"c\u00e9dric":4,"case":[0,2,6,12,13,17,19],"catch":17,"char":[0,2,6,15,17],"class":[2,6,17,19],"d\u00e1niel":4,"default":[0,7,9,14,17,18,19],"enum":[4,19],"export":[4,9,10,13,17,21],"final":[6,13,17,19],"fr\u00f8yshov":4,"function":[2,4,7,10,12,17,19],"garc\u00eda":4,"gesch\u00e9":4,"i\u0307sa":4,"import":[4,7,9,10,14,17,21],"j\u00fanio":4,"jo\u00e3o":4,"kate\u0159i\u0148\u00e1k":4,"kl\u00e4ger":4,"landh\u00e4u\u00df":4,"lo\u00efc":4,"long":[2,6,7,17],"lu\u00ed":4,"m\u00fcller":[3,4],"mat\u00eda":4,"maur\u00edcio":4,"micha\u0142":4,"mickevi\u010diu":4,"mirc\u0259lal":4,"montan\u00e9":4,"montr\u00e9al":6,"new":[1,2,4,7,8,15,17,18,19,20,21],"null":[2,17],"p\u00e9ter":4,"public":[2,3,6,17,22],"r\u00e4t":4,"return":[2,17,19],"seri\u00e1l":11,"short":[7,8],"switch":[2,7,17],"sz\u00e1sz":4,"t\u00f3th":4,"tom\u00e1\u0161":4,"toma\u0161t\u00edk":4,"true":[2,17],"try":[2,17],"var":[2,6,22],"vin\u00edciu":4,"void":17,"while":[1,2,19],"xos\u00e9":4,ACE:1,AES:[2,17],AND:[0,2],Abs:19,Adding:8,And:[1,4,6,17],Are:2,But:[2,8,13,15,17],CVS:4,FOR:[2,3],For:[2,4,6,8,15,17,18,19,22],GIS:6,His:17,IIS:[2,7,14,17],INTO:6,Its:6,Kis:4,NOT:[2,6,8],Not:[4,6],One:[6,17],RDS:17,Such:17,THE:[0,19],TLS:7,TWS:4,That:[2,6],The:[0,2,3,4,7,8,11,13,14,15,16,17,19,20,22],Then:[2,6,17],There:[2,6,7,13,16,17,19,20],These:[1,2,6,13,19],USING:17,Use:[2,4,6,12,17,19],Used:[8,17],Uses:17,Using:[1,2,8,9,11,14,19,20],WITH:[6,17],Was:17,With:[2,12,17],Yes:6,_db:2,_get:17,_post:17,_server:[2,17],_session:17,_variabl:[2,18],a59:17,aaleksanyants_at_yahoo:4,ab39:15,abd:4,abdulla:4,abeyrathna:4,abil:6,abiword:8,abl:[0,2,4,12,15,17,20],abort:2,about:[2,7,8,9,11,17,19],abov:[1,2,6,17,19],abram:4,abravo_at_hq:4,absenc:[0,2,6],absolut:[2,17],academi:1,accept:[2,6,7],access:[0,2,4,7,13,14,15,17],accident:2,accommod:1,accompani:17,accomplish:[6,8,17],accord:2,accordingli:[2,6,19],account:[2,6,10,12,17],achch1990_at_gmail:4,achchuthan:4,achiev:[2,6,12,17],acl:[2,7,17],acokaj_at_shkod:4,across:[2,7],act:20,action:[2,12,15,17],actionlinksmod:2,activ:[2,6],actual:[6,17,19],acunetix:6,adam:4,adapt:1,add:[0,2,4,7,8,10,12,17],added:[2,4,6,17],addhandl:6,adding:[6,10,19],addit:[2,4,7,8,15,17,18],addition:[2,3,17],addon:6,addprefix:17,addr:2,address:[0,6,7,17,19],addtyp:6,adjust:2,adler:7,admin:2,administ:10,administr:[2,4,6,7,10,12,15,17],admir:4,adnan:4,adob:7,adopt:8,adriaenssen:4,adrian:4,adsbot:6,advanc:[6,15,17],advantag:6,advic:22,advis:[2,17],affair:1,affect:[2,6,19],afraid:17,african:1,after:[2,4,8],again:[2,13,17],against:[15,17],agent:[6,7],agre:2,ahm:4,ahmedtek1993_at_gmail:4,aj_at_isit:4,ajax:4,ajaxif:4,ajaxifi:4,aka:17,ako:4,alan:4,albanian:4,albb0920_at_gmail:4,albert:4,alberti:4,alberty_at_neptunlab:4,albiol:4,aleksany:4,alemoretti2010_at_hotmail:4,ales_at_hakl:4,alessandro:4,alex:4,alexalex:4,alexand:[3,4],alexandr:4,alexei:4,alexi:4,alexrohleder96_at_outlook:4,algeri:4,algi:4,algorithm:[2,7,17],alia:4,align:6,alioglu:4,all:[2,5,6,7,8,10,12,13,15,17,18,19,22],alloc:2,allow:[1,2,4,7,8,10,12,13,17,18,19],allow_url_open:14,allowarbitraryserv:[2,17],allowdeni:[2,6,17],allownopassword:[2,17],allowoverrid:6,allowroot:[2,17],allowthirdpartyfram:2,allowuserdropdatabas:2,along:[3,17],alpha:6,alreadi:[2,17],also:[0,2,4,6,7,8,10,12,15,16,17,19,22],alter:[2,6,7,10],altern:[2,6,7,17],although:[2,4,6],alvar:4,alwai:[2,7,15,17,19],alwaysexpand:2,amalesh:4,amar:4,amazon:17,amazonaw:2,amihaita_at_yahoo:4,amir:4,ammar:4,among:[2,8],amount:[1,2,6,19],analys:4,analyz:[2,4,6],ander:4,andersen:4,andika:4,andika_at_gmail:4,andrea:4,andrei:4,android:[20,22],andrzej:4,andrzej_at_kynu:4,angular:2,ani:[0,2,3,4,7,8,10,12,13,15,17,19],ankit:4,ann:4,announc:[15,17],anonym:[2,6],anonynuin:4,anoth:[1,2,6,7,13,17,19],answer:7,anticip:7,antiviru:6,anybodi:17,anyon:17,anyth:[6,17],anywai:6,apach:[2,7,14,17],apache2:6,apache_http_serv:7,apart:6,api:[2,6,7],appear:[0,2,6,15],append:[2,19],appl:7,appli:[2,6,13,17,19],applic:[1,2,7,13,15,17,21],applytransform:19,approach:[2,20],appropri:17,approxim:[2,6],arab:4,arben:4,arbitrari:[2,6,17,18],arbitraryserverregexp:2,architectur:6,archiv:[6,7,8,17],area:[1,2],arg_separ:6,argument:6,ari:4,arifianto:4,armel:4,armenian:4,arora:4,around:[2,17],arrai:[2,6,17,18,19],arrow:6,articl:[6,8,11],artyom:4,asc:[2,17],ascend:2,ascii:[2,19],ash:4,ashkan:4,ashraf:4,ashutosh:4,ask:[2,7,9,20],aso:4,aspect:[2,14,22],assess:4,assign:[2,6,15,21],associ:2,assum:[2,6,17],astarita:4,asuni:4,attach:[2,7],attack:[2,17],attempt:[2,6,15,17],attent:17,attila:4,attribut:[2,8],atul:4,atulpratapsingh05_at_gmail:4,atvejis_at_gmail:4,aurora:17,auth:[2,17,20],auth_feebee_config:2,auth_http_realm:2,auth_map:17,auth_swekey_config:2,auth_typ:[2,17],authent:[4,9,14,15,21],authi:20,authlog:[2,17],authlogsuccess:2,authnam:17,author:[2,4,6,8,17,18],authrequest:17,authtyp:17,authuserfil:17,auto:2,auto_incr:[6,8],autocomplet:[2,17],autoconnect:2,autodetect:2,autom:[4,17],automat:[0,2,4,7,8,10,16,17],auxiliari:17,avail:[2,3,6,7,13,15,17,19,20,22],availablecharset:2,averag:6,avoid:[2,6,8,17],awai:6,awar:[0,6,17],axel:4,axes:1,axi:[1,6],ayush:4,azerbaijani:4,azevedo:4,azzabi:4,b313:17,b947:15,b980:15,b_renam:22,babel:4,back:[7,8,12,13],backend:[6,17],background:2,backquot:6,backslash:6,backspac:10,backup:17,backward:[2,18],bad:[6,17],badalo:4,badalo_at_sapo:4,baiduspid:6,bailout_on_error:6,bakondi:4,balanc:2,ban:6,bansod:4,bao:4,baophan94_at_icloud:4,bar:[2,14],barri:4,base64:17,base:[2,4,7,8,14,15,17,20],basic:[6,9,17,19,22],batch:10,bd92:17,becaus:[2,4,17,18,19],beck:4,beck_at_web:4,becom:6,been:[2,5,6,8,17,18],befor:[2,6,8,15,18,19],began:6,begin:[2,6,8,17],behavior:[2,17,22],behaviour:[2,6],behind:[2,6],being:[2,8,15,17,19],belarusian:4,believ:6,bellon:4,belong:[2,17],below:[0,2,7,12,13,18,19],benefit:[2,6],benjamin:4,bennetch:17,benni:4,berkelei:2,bernard:4,best:[6,8,17],better:6,between:[0,1,2,6],beyond:17,biesaga:4,big:[2,8],bigdump:6,bigger:[6,8],bimal:4,bin:[4,6],binari:[2,19],bind:17,bis:2,bisht:4,bit:[2,17],bits_at_gmail:4,bkehayov_at_gmail:4,blagynchy_at_gmail:4,blank:[2,19],blob:[2,10],blobstream:4,block:[2,6,7,17],blowfish:[2,4,7],blowfish_:7,blowfish_secret:[2,17],bluthardt:4,bob:[2,6],bodi:17,bogor_at_gmail:4,book:[7,8,21],bookmark:[2,4,9,10,17,21],bookmarkt:2,bool2text:2,boost:2,bora:4,borg:4,borge947_at_gmail:4,borggrev:4,borrow:4,bot:6,botelho:4,both:[1,2,6,8,13,16,17],bottom:[2,6,12,13],bound:19,boutel:7,box:[0,9],boyan:4,branch:17,braschi_at_outlook:4,bravo:4,brazil:4,breakag:17,broader:7,broken:6,bronshtein:4,brows:[4,9,10,13,19,21],browsemarkeren:2,browsemim:2,browsepointeren:2,browser:[2,7,8,9,15,16,17,19],bruce:7,bruguera:4,bruno:4,brunomendax_at_gmail:4,brute:17,bskim45_at_gmail:4,buddika:4,buffer:[2,6,19],bug:[2,4],bugfix:4,buggi:[6,17],bugzilla:6,build:[2,6,17,19],builder:4,built:[4,6],bulgarian:4,bum:4,bumsoo:4,bunch:6,bundl:2,burak:4,busi:7,bussier:4,button:[0,2,6,7,17,18,20],buz_at_gmail:4,bypass:[2,6],bz2:2,bzip2:[2,6,7],bzipdump:2,c0ee:17,cach:[2,6,17],caching_sha2_password:17,calcul:8,calendar:2,call:[2,6,7,10,13,17,19],calvo:4,can:[0,1,2,3,5,7,8,10,11,12,13,15,16,17,18,19,20,22],canada:6,cannot:[2,8,19],capabl:7,captcha:[2,15,17],captchaapi:2,captchacsp:2,captchaloginprivatekei:[2,17],captchaloginpublickei:[2,17],captchamethod:2,captcharequestparam:2,captcharesponseparam:2,captchasiteverifyurl:2,car:8,car_id:8,care:[6,19],carefulli:2,casotti:4,casotti_at_uol:4,cat:4,catalan:4,categori:13,category_id:13,caus:[2,15,17],caution:17,cav:4,cc0:22,cdac1234_at_gmail:4,cdba:2,ce73:17,ce75:17,cedric:4,cell:[2,6,7],center:[6,17],cento:17,central:[2,4,17],central_column:2,cert:2,certain:[2,7,19],certif:[2,17],certifi:17,cf2a:17,cfg:[2,6,8,12,13,17,18,19,20],cgi:[7,17],chanaka:4,chanc:2,chang:[2,4,7,8,10,12,17,18,19,22],changelog:7,changem:17,chao:4,chaovavanich:4,chapeaux:4,chapter:[2,6,7,17],charact:[2,7,8,19],charanyogeshwar_at_gmail:4,charedit:2,charg:2,charset:[2,4,6,17,19],chart:[4,9,21],chartextareacol:2,chartextarearow:2,chat:1,chathuranga:4,chaudhari:4,check:[2,3,4,5,6,7,10,12,17,19,22],checkbox:[1,2,8,12],checkconfigurationpermiss:2,checklink:6,chee:4,cheng:4,chien:4,chimera:6,china:4,chines:4,chirayu:4,chirip:4,chiyokawa:4,chiyokawa_at_gmail:4,chmod:[2,6],choic:[2,8,17],choos:[1,2,6,17,19],chose:[6,17],chosen:[2,6],chown:[2,6],chri:4,chrisj_at_ctel:4,christoff:4,christoph:4,chrome:20,chronolog:9,chrysler:8,cidr:2,cipher:[2,7],circumv:[2,6],cj_at_gmail:4,claimed_id:17,clanboy_at_163:4,classless:2,clau:4,claus:2,clear:[6,17],click:[1,2,7,12,13,15,19,20],clickabl:[2,13],clickjack:2,client:[2,7,9,17],client_:7,clipboard:[2,6],clone:17,close:[2,6,17],cloud:9,clshttp:6,clue:6,cluster:2,cma:4,cocerhan:4,cochran:4,code:[2,4,6,7,15,17,18,20],codemirror:2,codemirroren:2,collaps:2,collat:2,collect:[7,22],colognian:4,colon:6,color:2,column:[2,4,7,10,19],column_:7,column_com:2,column_info:[2,19],columns_priv:6,com:[2,3,4,6,8,14,17],combin:[2,6,8],come:[2,3,17,18],comma:[7,8,17],command:[2,6,17,20],comment:[0,2,4,7,8,17],commiss:7,common:[2,6,7,17,20],common_gateway_interfac:7,commonli:[7,8,19],commun:[7,10],compar:1,compat:[2,4,6,7,8,13,14,17,18,22],compil:6,complain:17,complet:[2,4,8,15,17],complex:[0,2,10],compliant:4,complic:2,compos:[2,3,9,20,22],comprehens:[4,8],compress:[2,7,8,10],compressonfli:[2,6],comput:[7,17],computation:8,computer_network:7,computer_sci:7,concept:[4,10],concern:[8,15],condit:6,conf:6,confer:4,config:[2,6,16,22],configur:[0,4,7,9,10,13,15,19,20,21],confirm:[2,6,20],conflict:6,conform:7,confus:6,connect:[7,9,10,12,15,16],connect_typ:2,consecut:6,consequ:2,consid:[12,17,20],consider:[1,17],consist:[6,18],consol:[4,9,10],consoleenterexecut:2,constanti:4,constraint:4,construct:[0,6],consult:8,consum:7,contact:[6,15],contain:[2,8,13,17,18,19,22],container_nam:17,content:[2,7,8,9,15,17,19,22],content_security_polici:7,context:6,continu:[2,17],contrib:17,contribut:[4,5,6],contributor:4,control:[2,4,7,12,15,17],control_:2,control_ssl:2,control_ssl_ca:2,control_ssl_cert:2,control_ssl_kei:2,controlconnect:15,controlhost:2,controlpass:[2,6,17],controlport:2,controlus:[2,6,17],convei:7,conveni:17,convent:19,convers:[2,4],convert:[6,19],cooki:[4,7,9,14,18],cookiesamesit:2,coordin:2,copi:[2,3,10,12,17,18],copyright:9,corazza:4,corazza_at_wanadoo:4,core:[2,4,7],correct:[2,17],correctli:[2,6,8],correspond:[2,6,19],corrupt:[2,6],cost:1,costa1988sv_at_gmail:4,costel:4,could:[2,8,12,15,17],count:[2,6,17],countri:6,country_cod:6,cours:[2,6],cover:17,coverag:6,craft:15,crawler:6,crawleradmin:6,creat:[2,4,7,8,10,13,19,21],create_t:17,creation:[2,4],creator:4,credenti:[2,17],credit:[3,9,15],criteria:6,cross:[2,7,17],cryptograph:[7,17],csp:7,cspallow:2,css2:4,css:[2,4,18],csv:[7,10,17],csv_column:17,ctrl:[2,6],ctype:14,curl:[6,14],current:[1,2,4,6,7,10,13,15,17,18,22],currentqueri:2,cursor:2,custer:2,custom:[1,4,8,9,12,16,19,21,22],cut:2,cve:15,cwlin0416_at_gmail:4,cybot_tm_at_us:[3,4],czech:[2,4],d3xter_at_us:4,da2n_s_at_yahoo:4,da68:15,da68ab39218ab947:15,dadan:4,dai:2,dalibor:4,dan:4,daniel:4,danilo:4,danish:[4,8],danorse_at_gmail:4,dark:2,darkthem:2,darlow:4,dash:[2,6],dashboard:2,data:[1,2,7,10,15,16,17,19],databas:[0,4,7,8,9,10,13,15,16,19,21],database_engin:7,database_index:7,database_trigg:7,databaseinterfac:15,date:[1,2,6,8,17],dateformat:2,datetim:2,dave:4,david:4,davidson:4,db1:[2,17],db2:[2,17],dbase:6,dbconfig:17,dbf:6,dbg:[2,20],dbhost1:17,dbhost2:17,dbhost3:17,dbhost:17,dbm:7,dcbf:17,dckyoung_at_gmail:4,dd0:17,ddrmoscow_at_gmail:4,deactiv:[2,6],deal:7,debian:2,debug:[2,4],decemb:4,decid:[2,6],declar:[2,6,8,17,19],decod:17,decreas:8,decrypt:[2,6],default_socket:6,defaultconnectioncol:2,defaultentrypoint:17,defaultforeignkeycheck:2,defaultfunct:2,defaultlang:2,defaultquerydatabas:2,defaultqueryt:2,defaulttabdatabas:2,defaulttabserv:2,defaulttabt:2,defaulttransform:[2,19],defeat:2,defin:[2,6,7,12,17,19],definit:[2,6,11,13,18],degrad:6,deki:4,deky40_at_gmail:4,delai:6,delet:[2,4,17,18,21],delimit:2,delisl:[3,4,11,17],delislma_at_collegesherbrook:4,delorm:4,demo:[2,8,17],demonstr:[2,20],den:4,deni:[2,4,17],denni:4,depend:[2,6,8,17,20,22],deploi:17,deprec:2,depth:6,der:4,derek:4,desc:2,descend:2,describ:[2,7,15,16,19],descript:[6,8,17,18,19],design:[4,7,9,17,21],designer_coord:2,designer_set:2,desir:[2,6,7,17],desktop:6,desport:4,destin:[2,7],detail:[2,3,6,15,17],detect:[2,4,6,17],determin:[2,8,12,17],dev:[2,6,8,17],dev_at_gmail:4,develop:[4,7,8,9,15,17,18],deven:4,devenbansod:4,devic:7,dhananjai:4,dhima:4,dhtml:4,dhundhara:4,diagnos:6,dialog:[6,8,17,19],dialogu:6,did:[2,6],didn:2,die_error:17,dieter:4,differ:[2,4,7,10,17,19],differenti:6,difficult:6,difficulti:10,digest:6,dimension:7,dingo13_at_gmail:4,dingo:4,dinosaur:1,diprofinfin:4,dir:[6,17],direct:[2,6,17,19],directli:[2,7,8,10,17],directori:[3,6,7,8,9,17,18,19,22],dirnam:17,disabl:[2,6,17,20],disable_emodifi:6,disable_funct:2,disablei:2,disablemultitablemainten:2,disableshortcutkei:2,disallow:[2,17],disappear:[2,6],discov:17,discuss:6,disk:[7,8],disorderman:4,disorderman_at_qq:4,displai:[0,1,4,7,8,9,10,13,14,17,18,19],display_error:[6,17],displayserverslist:2,distanc:1,distinct:6,distribut:[2,3,4,9],disturb:17,div:17,divid:7,djh1017555_at_126:4,dll:6,dnighttv_at_gmail:4,doc:[2,6,7,8,17],docker:9,doctyp:[6,17],document:[2,7,14,17,22],documentclass:[6,8],doe:[2,10,12,14,15,17,18,19,20],doesn:[2,17,19],doing:[6,13,17,20],dom:4,domain:[2,6,22],domainnam:17,domen:4,don:[2,12,17],donavan_at_hotmail:4,donavan_martin:4,done:[0,2,6,17,20],dongl:20,dongyoung:4,dorning:6,dot:2,doubl:[2,6],dougla:4,douglaseccker_at_hotmail:4,dovi:4,dovyda:4,down:[2,12,13,19],downgrad:[6,17],download:[2,3,6,10,15,16,17,18,22],dozen:20,drag:[2,6,8,13],draw:1,drawn:[1,19],dri:4,driven:17,driver:2,drizzl:4,drop:[2,4,8,10,12,13,19],dropdown:[0,6],due:[2,6,17],duguying2008_at_gmail:4,dump:[2,4,8,10],dure:[6,8,17],dutch:4,dynam:[4,6,7],each:[0,2,3,7,8,12,17,19],eas:[2,19],easi:[2,6,8,19],easier:[2,7,18],easiest:[6,17,20],easili:[1,2,6,8,17],eccker:4,echo:17,edgar:4,edgarsneims5092_at_inbox:4,edit:[8,9,10,13,17,18,21],editor:[2,4,17,19],edjacobjunior_at_gmail:4,edlund:4,edlund_at_upright:4,edu:[4,17],eduardo:4,edward:4,edwin:4,edwin_at_yohanesedwin:4,eecyh:17,ef12:17,effect:[2,11,19],effici:[2,6],effort:15,efroys_at_gmail:4,egbrave_at_hotmail:4,egg:1,egorov:4,eilertsen:4,either:[2,6,8,15,16,17,19],ek_at_luna:4,ekio_at_gmail:4,electrotechn:7,element:[6,7,19],eliovir:4,eliovir_at_gmail:4,els:[0,2,4,6,17],elseif:17,email:[4,6,15],emanuel:4,emb:8,embed:[2,8],emerg:17,emit:6,emphas:2,empti:[2,17],enabl:[2,7,12,14,17,18,19],enable_drag_drop_import:2,enableautocompletefortablesandcolumn:2,enclos:[2,6],encod:[2,4,6,17],encompass:7,encount:6,encourag:6,encrypt:[2,15,17],encyclopedia:7,end:[0,2,6,8,17,19],endors:11,enforc:13,eng_at_globomail:4,engin:[6,7,8],english:[2,4,8,17],engstrom:4,enhanc:4,ensur:[2,6,8,17],enter:[0,2,17,19,20],enterexecut:2,enterpris:6,entir:[6,14,17],entri:[2,6,17],entrypoint:17,environ:[2,6,15],epel:17,equival:[2,19],erik:[4,6],ero:4,erosakos02_at_gmail:4,error:[2,4,7,8,17],escap:[2,6,15],escapestr:15,eshin:4,eslint:4,especi:[0,2,6,17],espen:4,esperanto:4,esri:2,essam:4,est:17,estonian:4,esy_vb_at_yahoo:4,etc:[2,6,8,17,19],etienn:4,evalu:8,even:[2,3,6,8,10,12,17],event:[2,4,7,10],everi:[2,6,7,15,17,20],everyon:4,everyth:[0,6,17],everytim:2,everywher:6,evil:17,exabot:6,exact:[2,6],exactli:19,examin:6,exampl:[0,4,8,9,10,15,18,19,20,21,22],exce:2,except:[2,6,17,19],exchang:17,exclud:6,exclus:6,exectimelimit:[2,6],execut:[0,2,7,10,15,17],executor:6,exist:[2,4,7,8,15,17,19,21],exit:17,expand:[0,2,6],expans:[0,2,6],expect:[2,6,8],expens:1,experi:8,experienc:6,experiment:2,expir:4,explain:[2,6,13,17],explan:[6,17],explicit:2,explicitli:[2,17],explod:17,exploit:15,explor:[2,15,17],export_templ:2,expos:17,expose_php:17,exposur:17,express:[0,2,6,7,19],ext:6,extend:[7,8,17,19],extens:[2,4,7,10,14,17],extension_dir:6,extern:[2,4,9,15,17],extra:17,extract:[6,17],eyal:4,eye:6,f188:17,facil:2,fact:[2,6,7,17],factor:[2,9,17,21],fadhiil:4,fadhiilrachman_at_gmail:4,fail2ban:[15,17],fail:[2,17],fall:13,fallback:2,fals:[2,6,17,22],famma:4,fando:6,faq:[7,9],fashion:2,fast:[6,7],fastcgi:7,fathi:4,fauth:4,fauveau:4,fauveau_at_globali:4,favicon:17,favorit:[2,17,18],fb5b:15,fcgi:17,featur:[0,2,4,5,7,8,9,11,12,13,17,18,19],feedback:4,feedfetch:6,feel:6,fefc:17,feryanto:4,few:[2,6,17],fewer:2,fido:21,field:[1,4,7,8,9,13,17,18,19],field_:7,file:[2,3,4,7,9,10,14,16,18,21],file_format:7,file_get_cont:17,file_template_databas:2,file_template_serv:2,file_template_t:2,file_upload:6,fileinfo:6,filenam:[2,6,19],files:8,filesystem:[2,6],filippo:6,fill:[2,6,15,17],filter:[2,6],filterlanguag:2,find:[0,2,6,11,15,16,17],fingerprint:[15,17],finnish:4,firewal:[2,6,17],first:[2,4,6,7,8,12,13,15,17,19,20],first__second__third:2,first_timestamp:2,firstdayofcalendar:2,firstlevelnavigationitem:2,fit:[2,3,4,8],five:19,fix:[4,13,15],flag:2,flemish:4,floss:4,flush:6,fly:2,focu:2,folder:[2,8,17],follow:[1,2,4,7,8,10,15,17],font:2,fontsiz:2,foo:6,foobar:17,food:1,footer:2,footnot:10,forc:[2,17],forcessl:2,foreign:[2,7,10,13],foreign_db:2,foreign_kei:7,foreign_key_check:2,foreignkeydropdownord:2,foreignkeymaxlimit:[2,6],forget:[2,6,17],forgot:6,form:[2,4,7,8,17],format:[2,4,7,8,10,17,19],format_http:17,former:4,formerli:7,formula:8,forth:19,forum:[4,6],forward:2,forwardfor:17,found:[2,15,17],foundat:3,fpdf:4,fpm:17,fragment:6,frame:[2,4,6],framework:22,francesco:4,francisco:4,franco:4,free:[3,7,10,19,22],freeotp:20,french:4,frequent:[2,7,9],freshli:17,fri:17,frisian:4,from:[0,1,2,4,7,8,9,10,12,13,15,18,19,20,22],front:6,frontend:17,ftp:[2,6,17],fujifilm:4,fulanodet:4,full:[0,2,12,17],fulli:[6,17],fun:11,func_char:2,func_dat:2,func_numb:2,func_spati:2,func_uuid:2,fundawang_at_gmail:4,further:[2,4,6,16],furthermor:2,futur:[2,6],future_id:6,ga244_at_is8:4,gabriel:4,gailli:7,gain:12,galician:4,gamma:6,gandon:4,gandon_at_isia:4,ganeshtheone_at_gmail:4,garvin:[3,4],gatewai:7,gc_maxlifetim:2,gd2:[7,14],gd2avail:2,gd_graphics_librari:7,geert:4,gener:[1,3,4,7,8,9,12,15,17,19,20,22],genuin:17,geograph:8,geometri:[6,8],geomfromtext:2,georgiev:4,geospati:8,geral_at_jonil:4,german:4,get:[2,11,13,15,17,18,19],get_login_credenti:[2,17],getauthorizeurl:17,getinfo:19,getmessag:17,getmimesubtyp:19,getmimetyp:19,getnam:19,ghimir:4,giacobazzi:4,giacobazzi_at_ferrania:4,gigabot:6,gilli:4,gilli_at_gmail:4,giovanni:4,girish:4,git:[2,9,20],github1_at_openaliasbox:4,github:[4,6,17],give:[2,17,22],given:[2,6,7,8,12,15,17],global:[6,10,12,16,17,19],globalfunct:[2,17],glossari:9,glund_at_silversoft:4,gmail:17,gmbh:6,gnauk89_at_googlemail:4,gnu:[3,7,17],goe:[2,6],goerick:4,going:[4,8,17],goldfing:1,good:[2,6,17,18,19],goodlinuxuser_at_chmail:4,googl:[4,6,8,17,20],google2fa:20,googlebot:6,got:[3,8],gov:4,gpg:17,gpl:[3,22],grab:[6,17],gracefulli:6,grai:6,grant:[2,6,12,17],graphic:[7,10,13,17],great:[4,5],greatymh_at_gmail:4,greek:4,green:8,grid:2,gridedit:2,group:[2,6,7,15,21],grow:19,gryniuk:4,gstatic:2,guarante:2,guess:2,gui_at_webseibt:4,guia:4,guid:[2,9,11,17],guilherm:4,gupta:4,gzencod:6,gzip:[2,4,7,10],gzipdump:2,haa:4,had:[6,17],hakl:4,hamann:4,hamzah:4,han:4,hand:[6,17],handbook:17,handl:[2,6,8,10,12,17,18,19],handler:4,happen:17,hard:[2,17],harden:[6,15],harder:15,hardwar:[2,21],harm:2,harush:4,harvest:6,has:[0,2,6,7,8,17,18,19],hash:[14,17],hassan:4,hate:17,haugom:4,hauk:4,have:[0,2,3,4,5,7,8,10,11,12,13,14,15,17,18,19],haven:6,head:17,header:[2,7,8,17],heart:6,hebrew:4,height:2,heis:6,helder:4,hello:4,help:[2,4,5,17],henningsen:4,here:[2,6,8,17,19],heritrix:6,hermann:4,hex:2,hexadecim:2,hhvm:6,hibern:8,hick:[3,4],hidden:2,hide:[2,17],hide_connection_error:2,hide_db:2,hide_php_vers:17,hidestructureact:2,hierarch:4,hierarchi:2,high:[2,6,8],higher:[6,17],highlight:2,hilal94_at_gmail:4,hilal:4,him:4,hindi:4,hint:[2,6,7],hiroshi:4,his:[4,17],hisakawa:4,histor:2,histori:[2,4,17],hitowerdigit_at_hotmail:4,hkp:17,hofman:4,hofman_at_gmail:4,hold:[2,6],hole:[1,2],holm:4,home:[10,12],homepag:[6,19],hope:3,hopefulli:19,hord:4,horizont:[6,7],host:[2,4,7,17],host_:7,hostnam:[2,6,7,17],hotp:20,hover:[2,13],how:[2,13,17,19],howev:[2,6,17,19],href:17,hst:17,htaccess:[2,6,7,17],html:[2,4,8,15,17,19],htmlspecialchar:17,htpasswd:17,http:[2,3,4,7,8,14,18],http_author:17,http_cooki:7,http_host:[2,6],http_post_var:6,http_user_ag:6,http_x_forwarded_for:2,httpd:[6,7],httponli:2,httrack:6,hudsonvsm_at_gmail:4,huge:2,hugu:4,human:[4,8],hung:4,hungarian:4,hungdx_at_gmail:4,huseyn:4,huseyn_esgerov_at_mail:4,hy000:6,hyperfido:20,hyperlink:13,hypertext:7,hypertext_transfer_protocol:7,iOS:20,ia_archiv:6,ian:4,ibennetch:17,ibm:[6,9],iccrawl:6,ichiro:6,ico:17,icomoon:22,icon:[2,4,6,12,17,18,19,22],icons8:22,iconv:2,iconvextraparam:2,id_new:6,idea:[2,4,6,15,17,18,19],identif:17,identifi:[1,2,6,7,17],ids:2,ie6:2,iec:[7,10],ifmodul:6,ignacio:4,ignor:[2,6],ignoremultisubmiterror:2,igor:4,iis:6,illustr:1,imag:[2,7,10,12,14,17,19],img:[18,22],impact:[2,6,17],implement:[2,7,17,19,20,21],impli:3,implic:17,implicitli:7,impos:2,imposs:[2,17],improv:[2,4,7,8,10,15,17],inact:[17,19],inc:[2,6,7,16,17,18,22],includ:[2,3,4,7,8,10,15,17,18,19,20,22],include_onc:17,include_path:6,inclus:6,incom:17,incomplet:2,increas:[2,6,8],increment:2,independ:[4,6,7],index:[2,4,7,9,10,17],indic:[8,17],individu:12,indonesian:4,indrajith:4,inexperienc:12,info:[2,3,4,6,18,21],info_at_opsbielani:4,info_at_robinvandervliet:4,inform:[2,3,7,8,9,10,17,19,21],information_schema:2,infrastructur:17,ini:[2,6,10,14],ini_set:17,initi:[2,6,17],initialslidersst:2,inlin:[2,4,6,14],innodb:[2,7,10,13],innodb_strict_mod:6,innov:7,input:[0,2,4,17,19],insecur:17,insensit:6,insert:[0,2,4,8,17,19],insertrow:2,insid:[2,6,15,17,19,21,22],insist:17,instal:[2,7,8,9,14,15,20],instanc:2,instead:[2,6,8,17],instruct:[2,6,19],integ:2,integr:[2,4,6,10,17],intend:[2,10,15,17,22],inter:[2,7],interact:[6,7],interchang:8,interest:[6,11],interfac:[2,4,6,7,8,12,14,16,19],interfer:6,interlingua:4,intern:[2,4,7,8,13,17,19],international_organization_for_standard:7,internet:[2,7,17],internet_information_servic:7,internet_protocol:7,internet_protocol_suit:7,internet_server_application_programming_interfac:7,internet_service_provid:7,internetwork:7,interoper:8,interpret:[2,6],intext:6,intitl:6,introduc:[2,4,6],introduct:[9,21],invalid:[2,6,17],invis:2,invit:5,invok:17,involv:[6,17],ion:4,ionut:4,ip_address:7,ipmask:2,ipv4:[7,19],ipv6:[2,7],ironpotts_at_gmail:4,is_str:17,isaac:17,isapi:[6,7,17],isma:4,ismael_at_gmail:4,isn:2,iso:[7,10],isp:[2,7,9,17],isset:17,issu:[2,9],italian:4,item:[2,6,7],its:[2,7,8,10,15,18],itself:[0,2,6,17],itxiaopang:4,iusr_machin:6,ivan:4,ivan_at_mail:4,ivanlanin_at_us:4,jackson:4,jafar:4,jakobsen:4,jakobsen_at_gmail:4,jakub:4,jan:[4,17],jan_at_nrw:4,janhenrikm_at_yahoo:4,janni:4,januari:17,janussen:4,japanes:4,java:[6,8],javascript:[2,4,8,14,15,17],jayaratn:4,jconstanti_at_yahoo:4,jean:7,jedermann:4,jeev:6,jhaveri:4,jim:4,joan:4,joan_at_montan:4,job:17,joe:[4,6],john1db:6,john2db:6,john_at_panevo:4,john_db:6,johnson:[3,4],join:[2,4,6],jona:4,jong:4,jongdeok:4,jonsson:4,jonsson_at_norsjovallen:4,jordi:4,jose:6,josep:4,jozef:4,jpeg:[7,14,19],jpg:7,jqplot:1,jqueri:[1,3,6,14,22],jremes_at_outlook:4,jrzancan_at_hotmail:4,jsdoc:4,json:[6,14,17,18],juha:4,juli:17,julian:[4,7],jump:[2,6],june:4,junior:4,jur:4,just:[0,2,4,7,8,13,17,20],k725:4,kang:4,kanji:4,kankanamg:4,kannada:4,kasperski:6,kasun:4,katerinak_at_gmail:4,kaushalya:4,kawada:4,kawada_at_den:4,kazi:4,keck:[3,4],keep:[2,6,17],kehayov:4,kei:[2,4,7,9,13,15,17,21],kelli:4,kempf:4,kept:[2,19],kettler:4,keybas:[15,17],keyr:[15,17],keyserv:[15,17],khomutov:4,kick:6,kid:4,kiddi:6,kidsmart33_at_gmail:4,kiko:4,kim:4,kim_at_nhn:4,kind:[2,6,7,15],kindli:6,kingdom:4,kirillov:4,kissu:4,kit:[3,17,22],klau:6,kleemann:4,klokner:4,know:[17,19],knowledg:6,known:[2,7,9,22],kobayashi_at_gmail:4,koch:4,koch_at_enough:4,kollar:4,kollar_at_pg:4,kollmann:4,koo:4,koolen:4,korakot:4,korakot_at_inam:4,korean:4,kosit:4,kr_at_gmail:4,kraai:4,krasimir:4,kristjan:4,kristjanrats_at_gmail:4,kristof:4,kronsbein:4,krystian4842_at_gmail:4,krystian:4,kumari:4,kunishima:4,kuppelwies:4,kurdish:4,kurt:4,kurt_at_kh:4,kushagra4296_at_gmail:4,kushagra:4,kword:8,kyeong:4,kyungjun2_at_gmail:4,label:[0,1,6,7,15],lacina:4,ladisch:4,lakshya:4,lang:[2,17],languag:[4,7,9,10,17],languagetool_at_gmail:4,lanin:4,larg:[2,8],larger:[2,6],largest:6,lari:4,lari_at_oesch:4,lass:4,lasse_at_mydom:4,last:[2,6,19],lastpass:20,later:[0,2,8,17],latest:[2,6,7,14,17],latex:[7,10],latter:2,latvian:4,lau:4,launchpad:17,laureano:4,laureano_at_gmail:4,laurent:4,lax:2,layer:[1,7,16],layout:[2,10,13],lc_messag:2,ldi_:4,lead:[0,2,6],leak:2,learn:[8,11],least:[2,6,17],leav:[2,6,17,19],lee:4,leedermeister_at_gmail:4,left:[2,4,6,8],legal:2,legenhausen:4,leiding:4,lem9:17,length:[2,8],leonardo:4,lesli:4,less:[2,6,8,17],let:[2,13],letter:[2,6,8],lettercas:6,level:[2,6,7,8,17],lib:[6,22],libiconv:2,librari:[1,2,3,4,7,9,14,17,19],libreoffic:8,libwww:6,libxml:14,licens:[6,9],lifetim:2,lighttpd:17,lightweight:8,like:[0,2,4,8,10,13,15,17,19],lima:4,limburgish:4,limit:[8,9,12,15,17],limitchar:2,lin:4,line:[2,6,7,8,17,19],line_count:6,link:[0,1,2,4,6,10,12,13,15,17,18,19],link_id:13,linklengthlimit:2,linux:[2,9,22],list:[2,4,7,8,15,17,20,22],listen:17,liter:[2,6],lithuanian:4,load:[2,4,7,10,16,17],loadabl:6,loader:6,loadmodul:6,local:[2,4,8,16,17],localhost:[2,17],localis:8,localnet:17,localneta:2,localnetb:2,localnetc:2,locat:[7,17],lock:[2,6],log:[2,7,10,15,20],logformat:6,login:[2,4,14,15,16,17,20],logincookiedeleteal:2,logincookierecal:2,logincookiestor:2,logincookievalid:2,logincookievaliditydisablewarn:2,logo:[2,4],logout:[2,16,17],logouturl:2,lolo_at_phpheaven:4,longer:2,longtabl:[6,8],longtext:2,longtextdoubletextarea:2,look:[2,6,7,13,17,19],lori:4,lose:2,loss:6,lossi:7,lost:2,lot:[2,15],loup:7,low:[2,6],lower:[2,6],lower_case_table_nam:6,lowercas:17,lscape:8,lsml_at_liv:4,ltr:17,lts:20,lubo:4,lucen:6,lui:4,luisan00_at_hotmail:4,lund:4,m42:4,m_at_gmail:4,mac:7,machin:[2,7,8,17],maciej:4,maciejka45_at_gmail:4,macintosh:7,maco:[6,7],macof:4,made:[2,4,6,7,17],madhura:4,madlen:4,mai:[0,2,6,7,10,17,19],mail:7,main:[1,4,9,12,17,18,19],mainli:7,maintain:[4,6,17],mainten:[2,4,10],major:[4,6,18],make:[2,5,8,15,17,18,19],make_id:8,maketitl:8,malai:4,malfunct:6,malgeri_at_gmail:4,malici:15,man:2,manag:[6,7,8,9,10,11,17,21],mani:[2,4,5,7,8,10,16,17,19],manipul:[2,7,8,10,17,19],manish:4,manual:[2,6,7,19,20],manufactur:[7,20],manuzhai:4,map:17,marc:[3,4,6,11,17],marc_at_infomarc:[3,4],marcel:4,march:4,marco:4,marconcini:4,marek:4,mari:2,mariadb:[2,4,6,10,14,17],marin:4,mark:[0,2,4,7],marker:8,market:7,markt:6,markup:[7,8],mart:4,martijn:4,martin:4,martin_at_vidn:4,martin_at_whistl:4,martinelli:4,martinelli_at_gmail:4,martyna:4,masahiko:4,master:[2,11,13,17],master_db:2,mat:4,match:[2,6,8,17,18],mathemat:8,mathia:4,matiasbellon:4,matter:13,matthia:4,matthias_at_bluthardt:4,max:6,max_allowed_packet:8,max_array_index_length:6,max_execution_tim:6,max_link:6,max_request_vari:6,max_totalname_length:6,max_travers:6,max_value_length:6,max_var:6,maxcharactersindisplayedsql:2,maxdblist:2,maxexactcount:[2,6],maxexactcountview:2,maxim:[4,8],maxime_at_fre:4,maximum:[2,6],maxnavigationitem:2,maxrow:2,maxsizeforinputfield:2,maxtablelist:2,maxtableuipref:2,mayb:6,mbstring:[2,7,14],me_at_derrabu:[3,4],me_at_supergarv:[3,4],mean:[2,15,17,19],meant:2,measur:[2,7],mechan:[2,4,6,17],media:[6,7,19],media_typ:7,mediapartn:6,medio:4,meet:17,memoranda:7,memori:[2,8],memory_limit:[2,6],memorylimit:2,memoword_at_163:4,mendax:4,mendel:[3,4],meneghini:4,mention:[2,6,17],menu:[2,6,19,21],merchant:3,messag:[2,17],met:17,meta:[2,17,19],metagerbot:6,method:[2,7,8,13,17,19],methodolog:7,metro:22,michael:[3,4],michal:[3,4,17],michal_at_cihar:[3,4],michel:4,microsoft:[7,10],middl:2,might:[2,6,8,11,12,15,17,22],migrat:6,mike:4,mike_at_graftonhal:4,miko:4,mileag:8,mime:[2,4,7,11,19],mimetyp:[2,19],mind:17,miner:6,minh:4,minim:[6,17],minimum:[2,6],minor:[4,6],minsizeforinputfield:2,minu:0,miquel:4,mirror:[6,17],misc:1,miss:[2,7,15,19],mit:[3,17],mitenem_at_outlook:4,mitig:[6,15],mix:2,mj12bot:6,mkdir:6,mkkeck_at_us:[3,4],mladenov:4,mmcach:6,mmcrawler:6,mmh15_at_windowsl:4,mobil:[4,20],mod:6,mod_gzip_item_includ:6,mod_proxi:[6,7],mod_proxy_fcgi:[7,17],mod_rewrit:6,mod_ssl:6,modal:[4,6],mode:[0,4,9,14],moder:4,modern:4,modif:6,modifi:[2,3],modul:[6,7],modular:7,moham:4,mokhtari:4,molnar:4,morai:4,more:[0,1,2,3,4,7,8,15,17,19,20],moreov:6,moretti:4,mosh:4,most:[2,4,6,7,8,10,13,17,19,20],mostli:[2,8],motuza:4,motuzas_at_gmail:4,mount:2,mous:[2,6,13],move:2,movement:1,mozilla:7,mrdaniloazevedo_at_gmail:4,msie:6,msnbot:6,much:[6,19],muhammad:4,mulla:4,multi:[2,4,7,9,17],multidimension:8,multipl:[1,4,8,10,15,17],multipurpos:7,multiselect:6,multiserverexample70518:2,multithread:7,murariu:4,murariu_at_yahoo:4,must:[0,2,6,8,10,12,13,17,20],my_db:2,myadmin:17,mydatabas:2,mydb1:17,mydb2:17,mydb:[2,6],mydump:8,myisam:[6,7,10],mynam:0,mysql:[4,7,8,9,10,11,12,13,14,15,17,22],mysql_connect:6,mysql_db_serv:17,mysql_fetch_field:19,mysql_native_password:[6,17],mysql_root_password:17,mysql_upgrad:6,mysqladmin:6,mysqld:6,mysqli:[2,4,7,10],mysqli_real_connect:6,mysqlminvers:2,mysqlnd:2,mysqlsslwarningsafehost:[2,17],myung:4,n8falke_at_us:4,nabin:4,naderi:4,naderi_at_gmail:4,naeem:4,nair:4,nakandala:4,nakrani:4,name:[0,2,4,7,12,13,17,18,19],nast3zz_at_gmail:4,nasti:15,nativ:[2,13],natur:2,naturalord:2,navarro:4,navig:[4,9,12],navigationdisplaylogo:2,navigationdisplayserv:2,navigationhid:2,navigationlinkwithmainpanel:2,navigationlogolink:2,navigationlogolinkwindow:2,navigationtreedbsepar:2,navigationtreedefaulttabt:2,navigationtreedefaulttabtable2:2,navigationtreedisplaydbfilterminimum:2,navigationtreedisplayitemfilterminimum:2,navigationtreeenableexpans:2,navigationtreeenablegroup:2,navigationtreepointeren:2,navigationtreeshowev:2,navigationtreeshowfunct:2,navigationtreeshowprocedur:2,navigationtreeshowt:2,navigationtreeshowview:2,navigationtreetablelevel:2,navigationtreetablesepar:[2,6],navigationwidth:2,ne0x_at_us:4,nearli:2,necessari:[2,19],need:[0,2,8,10,12,13,14,15,17,18,19,20],neg:6,neglig:8,neil:4,neimani:4,neither:[2,6],neomo:6,nepali:4,nest:[2,4],net:[2,3,4,6,7,15,17,18],netcologn:6,network:[2,6,7,8,17],never:[2,17],nevertheless:17,newer:[8,14,17],newest:2,newli:[8,17],newlin:2,newsblog:6,next:[2,6,17],nginx:14,nhibern:8,nicola:4,niel:4,niemand:4,nijel:17,niko:4,niko_at_gmail:4,nikto:6,ninad:4,nisarg:4,nisargjhaveri_at_gmail:4,nitrotoll_at_gmail:4,nnabinn_at_hotmail:4,no1:2,no2:2,noblob:2,nobody_at_gmail:4,node:[7,17],nofoot:8,nohead:8,nokeepal:6,non:[2,8],none:2,nontawat39_at_gmail:4,nopassword:2,nor:6,nordenberg:4,noreply_at_webl:4,normal:[2,4,6,17,19],norwegian:4,not_nul:19,notabl:7,notat:8,note:[0,2,6,17,19,22],noticia:4,now:[0,2,7,8,13,17],nowher:2,ntf:2,number:[0,1,2,7,8,15,17],numer:[2,4,6],numfavoritet:[2,6],numrecentt:2,nutchcv:6,nyu:4,obgzip:[2,6],object:[6,8,17,19],obrador:4,obtain:[2,15],occur:[2,6,17],oesch:4,off:[2,6,17],offer:[1,2,6,7,13,16,17],offic:[7,8],offici:[6,11,17,19],oficial_at_gmail:4,often:[2,6,8,17],okai:17,old:[2,6,11,17],older:[2,9,10],olivi:[3,4],olof:4,om_at_omni:[3,4],omar:4,omar_2412_at_l:4,omit:2,omniexplorer_bot:6,onc:[2,12,13,17,20],ondra:4,ondrasek:4,one:[1,2,7,8,10,12,13,15,17,20,22],ones:[2,4,6,22],onli:[1,2,4,7,8,12,13,15,16,17,19,20],onlin:6,only_db:2,open:[2,5,6,7,10,13,14,17],open_basedir:2,opendocu:[7,10],opengi:4,openid:17,openid_messag:17,openid_relyingparti:17,openlay:6,openoffic:8,openssl:[6,14,17],oper:[1,2,7,8,17,19],opposit:2,opt:20,optim:[2,4,6],option:[1,9,15,16,17,19],order:[2,6,7,8,9,13,17],ordinari:17,org:[2,3,4,6,7,8,17],organ:7,orient:[2,7],origin:[2,6,9,14,17,18,19],orion1979_at_yandex:4,orzkun_at_ageag:4,other:[2,4,5,6,7,8,9,10,12,13,15,16,17,19,21,22],otherwis:[0,2,6],our:[2,5,6,15,17,18,19],out:[2,5,7],outdat:17,output:[2,4,6,8,19],output_compress:6,outsid:[2,19],outsourc:4,over:[2,6,7,12,13,17],overcom:6,overlord666_at_gmail:4,overrid:[6,17],overview:[6,19],overwhelm:12,overwrit:2,overwritten:2,own:[2,10,15,17,18,19],owner:[2,17],owneremail:6,ownerfirstnam:6,ownerlastnam:6,ownerphon:6,ownerphone1:6,ownerphone2:6,ownership:6,pack:[6,22],packag:[6,9,17],packagist:17,packet:[7,8],page:[0,4,7,9,10,12,13,14,17,18,19],pai:17,pair:[2,17],palid:4,palider_at_seznam:4,palstsiuk:4,pan:6,pandei:4,pandithawatta:4,panel:[6,9],pantola:4,papaz_p_at_yahoo:4,paper:2,param:[2,17],paramet:[2,8,17,19],parent:[2,6,17],parind:8,parkourpotex_at_gmail:4,pars:[8,18,19],parsabl:8,parse_url:6,parser:[4,8],part:[2,6,7],parti:[6,9,11,17,18],partial:2,particular:[3,6,7,12,17],particularli:[7,17],pass:[2,6,10,12,17,18,19],passhosthead:17,passphras:2,passwd:17,password:[2,10,12,17],past:2,patch:[2,4],path:[2,17,22],path_dir:17,path_to_phpmyadmin:6,path_to_your_phpmyadmin_directori:2,pathprefixstrip:17,patrik:4,pattern:2,paul:6,paulei:4,pavel:4,pbm:4,pcre:[2,7],pdf:[4,7,9,10,11,13,17],pdf_page:[2,6],pdfdefaultpages:2,pdfpageheight:8,pdfpages:2,pdfpagewidth:8,pdo:8,pear:[4,7,17],pebbl:20,peccatt:4,pedro:4,peer:2,pem:2,pencil:12,peopl:[4,5,6,10,22],per:[2,6,7],perekupka:4,perfect:[2,17],perform:[2,6,10,12,14,15,17],perhap:17,period:17,perkontevs_at_gmail:4,perl:[6,7],perl_compatible_regular_express:7,permiss:[2,6,12,17],permit:[2,12],persian:4,persist:[2,16],persiste1_at_gmail:4,persistentconnect:2,person:[2,6,7,17],person_nam:6,petbre:6,petdob:6,pete:4,peter:4,petnam:6,petr:4,pettyp:6,pgp:[15,17],ph3n1x:4,phan:4,phillip:4,phone:20,photograph:7,php3:4,php4:[4,6],php7:6,php7_modul:6,php7apache2_4:6,php:[2,4,7,9,10,16,17,18,19,20,22],php_mysqli:6,php_self:[6,17],phpc:[2,17],phpinfo:[2,6],phpinidir:6,phpmy:6,phpmyadmin:[0,1,2,3,4,5,7,8,10,11,12,13,14,15,18,19,20,21],phpmyadmin_at_zweisteinsoft:4,phpmyadmin_x:17,phpmyadminovi:11,phpmysqlformgen:4,phpseclib:4,phpstan:4,phpwizard:[4,6],piankov:4,piec:[15,22],pikto:6,piller:4,pin:2,pink:6,piotr:4,pipe:2,pistej2_at_gmail:4,pistej:4,piyush:4,place:[2,6,17],placehold:0,placella:4,plai:17,plain:[2,6,17,19],plamen_mbx_at_yahoo:4,plan:8,platform:[2,6,7,17],plathei:4,pleas:[2,6,7,8,15,17,19,22],plesk:2,plot:6,plu:[4,6],plug:19,plugin:[4,6,8,19],pma:[2,17],pma__bookmark:2,pma__central_column:2,pma__column_com:2,pma__column_info:2,pma__designer_coord:2,pma__designer_set:2,pma__export_templ:2,pma__favorit:2,pma__histori:2,pma__navigationhid:2,pma__pdf_pag:2,pma__rec:2,pma__rel:[2,6],pma__savedsearch:2,pma__table_coord:2,pma__table_info:[2,6],pma__table_uipref:2,pma__track:2,pma__us:2,pma__userconfig:2,pma__usergroup:2,pma_absolute_uri:17,pma_arbitrari:17,pma_at_sebastianmendel:4,pma_combin:6,pma_config_base64:17,pma_db:17,pma_dbi:4,pma_host:17,pma_password:[6,17],pma_port:17,pma_single_signon_cfgupd:17,pma_single_signon_error_messag:17,pma_single_signon_hmac_secret:17,pma_single_signon_host:17,pma_single_signon_messag:17,pma_single_signon_password:17,pma_single_signon_port:17,pma_single_signon_us:17,pma_us:17,pma_user_config_base64:17,pma_usernam:6,pma_verbos:17,pmaabsoluteuri:[2,6,17],pmadb:[2,13],pmahomm:[2,18],pmanorelation_disablewarn:2,pmapass:[2,17],pmasa:[6,15],pmatest:2,png:18,point:[2,6,7,17],polici:[2,7,9],polish:4,popcorn:4,popul:8,popular:[7,8],port:[2,7,17],port_:7,portabl:7,portion:2,portnumb:2,portugues:4,pose:15,posit:[2,7],possibl:[2,5,8,15,16,17,19],post:[2,6,17],post_max_s:[6,17],potenti:2,power:8,pozzato:4,practic:2,pragmarx:20,pratap:4,pre:[2,17,19],preappend:2,preconfigur:8,predatorix_at_web:4,predecessor:7,predefin:10,prefer:[2,4,17],prefix:[2,6],preform:15,prejudic:1,preliminari:8,prepar:[2,7,15,17],prepend:19,preprocessor:7,present:[2,6,8,12,15,17],press:2,pretti:4,prevent:[2,17],previou:[2,6,17],price:8,primari:[2,4,7,13,17],print:[4,21],printer:4,printview:[2,4],prior:[17,19],privaci:17,privat:[2,6,17,20],privileg:[2,4,10,15,21],probabl:[6,17,22],problem:[2,7,8,17],problemat:6,procedur:[2,7,10],process:[7,12,17],processor:8,procs_priv:6,produc:[2,8,13],product:[2,6,8,17,20],profession:7,program:[2,3,6,7,8,15],progress:14,prohibit:2,project:[2,4,7,9,17],prompt:[2,17],proper:[2,6,8,10,13,17,19],properli:[2,6,13,17],properti:[2,4,6,19],propertiesnumcolumn:2,propos:[6,10],protect:[2,15,17],protectbinari:2,protocol:[2,7,17],provid:[2,6,7,10,12,17,19,20,22],provok:15,proxi:[2,17],proxypass:[2,6],proxypassrevers:6,proxypassreversecookiedomain:6,proxypassreversecookiepath:6,proxyurl:2,proxyus:2,pruett:4,przemo:4,przybylski:4,psbot0:6,psr1:17,pub:15,publi_at_web:4,publicli:2,publish:[2,3,15,17],pull:[2,17],pundalik:4,punjabi:4,purodha:4,purpos:[2,3,7,8,15,20],put:[2,15,17,18,19],python:6,qbe:[4,10],qiang:4,qrcode:20,qualifi:17,qualiti:8,queri:[0,1,4,7,8,9,10,15,17],queryhistorydb:2,queryhistorymax:2,querystr:17,question:[7,9],quick:[2,6,7,9],quickli:8,quit:[2,4,6,18,20],quot:6,qyz:4,r9uk:17,ra4_at_openmailbox:4,rachim:4,rachman:4,radio:7,rafael:4,raghuram:4,rai:4,raj:4,rajandran:4,rand:17,random:[2,4,15],rang:[2,7],raouf:4,rare:6,rate:15,rather:[2,6,8,12,17],ratio:14,ratschil:[3,4],raul:4,raul_at_wservic:4,ray_at_datahui:4,rds:2,reach:[17,19],read:[2,6,8,10,17],readabl:[6,8],readi:17,readm:17,real:[2,6,13],real_password:17,real_us:17,realli:[2,6,17,20],realm:[2,17],rearrang:6,reason:[2,6,14],recal:2,recaptcha:[6,14],receiv:[3,7,19],recent:[2,6,7,8,17],recod:2,recode_str:2,recodingengin:2,recommend:[2,6,7,8,14,17],record:[2,7,8,12,13],recov:6,recreat:6,recv:17,redesign:4,redhat:6,redirect:[2,17],redistribut:[3,22],refactor:4,refer:[2,6,7,13],referenti:[2,10],reflect:7,refman:[2,6,8],refresh:2,regard:[2,10,19],regardless:17,regener:15,regex:17,region:2,regul:8,regular:[2,4,7,19],reject:2,rel:[2,17],rel_countri:6,rel_person:6,rel_town:6,relat:[2,4,7,9,10,17,19,21],relationaldisplai:2,relationship:13,releas:[2,4,6,9,15],relev:2,reli:17,reliabl:[2,6,8,17],relyingparti:17,relyingparty_result:17,remain:[0,2],reme:4,rememb:[0,2,17],remembersort:2,remot:[2,7,17],remote_addr:2,remote_us:6,remov:[2,4,6,10,12,17,18],renam:[2,8,10,17,22],renato:4,renatomdd_at_yahoo:4,render:[8,15],rental_r:1,reorder:6,repeat:[2,6],repeatcel:2,replac:[0,2,6,17,18,22],replacement_cost:1,repli:17,replic:[4,6],report:[2,4,6,9],repositori:[3,7,17,20],repres:[2,6,7],represent:4,reproduc:6,reqirep:17,request:[2,7,17],request_for_com:7,request_method:6,request_uri:[6,17],requir:[2,8,9,10,15,17,18,19,20],research:7,reserv:2,reservedworddisablewarn:2,reset:6,resid:6,resolut:7,resolv:6,resourc:7,respect:[2,3,6],respond:6,respons:[2,6,7],restart:[6,17],restor:8,restrict:[2,17],result:[0,1,2,10,17],retainquerybox:2,retriev:[2,17],return_to:17,returnto:17,reveal:2,revenu:1,revers:[2,17],review:17,revis:[2,6,7],revistafammatvmus:4,revok:2,rewrit:[6,17],rewritebas:6,rewritecond:6,rewriteengin:6,rewriterul:6,rewrot:4,rex:4,rfc2616_header:6,rfc6265:2,rfc:[6,7,10],ribeiro:4,ribeiro_at_gmail:4,ricardo:4,rifthi:4,rifthy456_at_gmail:4,right:[2,8,12,17,19],risk:[2,6],rob:6,robbat2_at_us:[3,4],robin:[3,4],robot:[2,17],rocha:4,rocha_at_zoho:4,rodrigo:4,rodrigu:4,rohled:4,rohmberg:4,rohmberger_at_hotmail:4,romanian:4,ronni:4,ronniesimonf_at_gmail:4,roohan:4,roohan_cena_at_yahoo:4,root:[2,12,17],roszatycki:4,rouslan:4,rout:[2,6,17],router:17,routin:[2,4],row:[1,2,4,7,8],row_:7,row_format:6,rowactionlink:2,rowactionlinkswithoutuniqu:2,rowactiontyp:2,rsa:17,rubinov:4,ruiz:4,rule:[2,6,17],ruleant_at_us:4,run:[2,7,10,15,20],russian:4,rutkowski:4,rwx:[2,6],saad:4,safe:[2,17],sai:[0,13,19],sailboat:4,sakamoto:4,sake:6,sakila:6,saksham:4,saleh:4,salvadoporjc_at_gmail:4,sam_at_gmail:4,same:[0,1,2,12,17],sameorigin:2,samesit:2,sampl:[2,6,8,17],sander:4,sandro123iv_at_gmail:4,sandro:4,sanit:6,santana:4,santana_at_gmail:4,sapi:2,sarna:4,sascha:4,saturdai:2,save:[4,6,8,9,16,17,18],save_path:6,savecellsatonc:2,savedir:[2,8],savedsearch:2,saverio:4,saw:6,sbin:17,scan:[6,20],scanner:6,scatter:6,scenario:[6,17],schaefer:4,schema:[2,4,8,13],scheme:[2,6],schneier:7,scientif:8,scooter:6,scope:17,scorpio_at_gmail:4,scp:6,scratchboard:4,screen:[8,17,18],screenshot:18,script:[2,4,8,19,22],scss:[2,18],search:[2,4,9,10],searchabl:17,sebastian:[3,4],sebastian_at_sgundersen:4,second:[2,6,12,19,20],secret:2,section:[1,2,5,6,15,17,19],secur:[2,4,7,9,12,19,21],secure_cooki:17,securer:4,see:[0,2,3,4,8,10,12,13,14,15,17,18,19],seekbot:6,seem:[2,8,17],seen:2,segment:2,seibt:4,select:[0,1,2,4,8,12,13,17,18,19],selector:[2,19],selenium:4,self:2,send:2,senderrorreport:2,sens:19,sensi:6,sensit:[0,2,6,15],sent:[2,4,7,15],seo:6,seoma:6,seongki:4,seosearch:6,separ:[2,4,6,7,8,17],separated_valu:7,sequenc:7,serbian:4,seri:[1,7],serial:8,seriou:6,serv:[7,17],server:[4,7,8,9,10,11,12,13,15,20,22],server_:7,server_address:2,server_at_gmail:4,server_nam:17,server_port:17,serverdefault:2,serverlibrarydifference_disablewarn:2,servic:[2,6,7,17],session:[2,4,6,14,16,17],session_get_cookie_param:2,session_id:17,session_nam:17,session_save_path:[2,17],session_set_cookie_param:[2,17],session_start:17,session_write_clos:17,sessionsavepath:[2,17],sessiontimezon:2,set:[1,4,7,9,10,16,17,19,20,22],set_magic_quotes_runtim:17,setenvif:[6,17],setfacl:2,setia:4,setia_at_gmail:4,setinputfilt:6,setlength:8,setoutputfilt:6,setup:[4,9,13,22],setup_config_fil:22,setup_dir_writ:22,sevdimali:4,sevdimaliisayev_at_mail:4,seven:2,sever:[2,3,6,7,8,13,16,17,19,20,22],sevillano:4,seward:7,sha1:17,shahrabani:4,shall:13,shameem:4,shapefil:[2,8],share:[2,17],sharifov_at_programm:4,sheet:8,shell:6,sherbrook:6,shift:[2,6],shin:4,ship:[7,17,18,22],shirian:4,shirian_at_gmail:4,shortcut:[2,6,9,17],shorten:6,shorter:[2,6],should:[2,3,4,7,8,12,15,17,18,20,22],shouldn:17,show:[2,6,15,17,19],show_pag:17,showal:2,showasphp:2,showbrowsecom:2,showchgpassword:2,showcolumncom:2,showcreatedb:2,showdatabasesnavigationastre:2,showdbstructurecr:2,showdbstructurelastcheck:2,showdbstructurelastupd:2,showfieldtypesindataeditview:2,showfunctionfield:2,showgitrevis:2,showhint:2,shown:[1,2,8,13,17,18,19],showphpinfo:2,showpropertycom:2,showserverinfo:2,showsql:2,showstat:2,shp:6,shutdown:6,side:[2,7,17],sideeffect:17,sign:[2,17],signatur:17,signific:4,significantli:8,signoncookieparam:[2,17],signonscript:[2,17],signonsess:[2,17],signonurl:[2,17],silent:6,silva:4,simecek_at_gmail:4,similar:[2,6,8,13,15],similarli:6,simon:4,simoncini:6,simpl:[1,2,7,8,17,21],simple2fa:[2,20],simpli:[2,8,12,17],simplifi:[4,12],sinc:[1,2,4,6,8,14,17,20],singh:4,singl:[2,7,8,17],sinhala:4,site:[2,6,7,11,17],sitesearch:6,siteverifi:2,situat:[6,7,17],siu:4,size:[2,8],skill:6,skip:[17,22],skiplockedt:2,skshin_at_gmail:4,slash:2,slider:2,slovak:4,slovenian:4,slow:2,slowdown:6,slurp:6,small:[2,6],smaller:[2,4,6],smart:[2,4],smarte_at_gmail:4,smita:4,smooth:1,smtp:4,snap:2,snappi:6,snapshot:2,snippet:2,socket:[2,7],softwar:[3,6,7,8,10,17,20,22],software_extens:7,solut:[6,17,20],solv:6,some:[2,4,7,8,15,17,19,22],someth:[2,6,13,15,17],sometim:17,somewher:[6,15],somthanat:4,somthanat_at_gmail:4,song:4,soom:4,soon:0,sora:4,sora_at_tiscali:4,sorani:4,sort:[2,6,8],soulard:4,sourc:[2,4,5,6,7,9,17,20,21],sourceforg:[3,4],souza:4,space:[0,2,6],spanish:4,special:[0,2,7,8,13,15,17,19],specif:[2,7,8,9,19,21],specifi:[1,2,4,8,17,19],speed:[2,6,8,17],spl:14,split:[2,6,8,19],sponsor:6,spreadsheet:[6,10,14],sql:[0,1,4,7,9,10,11,17,19],sqllog:2,sqlqueri:2,sqrt_at_entless:4,squiz:[2,17],src:[6,17],srnka:4,ssl:[6,7,9],ssl_ca:[2,17],ssl_ca_path:[2,17],ssl_cert:[2,17],ssl_cipher:[2,17],ssl_kei:[2,17],ssl_verifi:[2,17],ssloption:6,st_geomfromtext:2,sta:4,stabl:6,stack:1,stackoverflow:6,standard:[2,4,6,7,8,14,20],star:[2,6],start:[1,2,4,8,17],starthistori:2,startup:[2,6],state:2,stateless:15,statement:[2,6,10,17],station:6,statist:[2,4],statu:[2,4,6],stdenvvar:6,stdpass:2,stduser:2,ste:4,stefan:4,stefano:4,step:[6,17],steve:4,steven:4,still:[2,12,15,17],stock:17,stokkan:4,stop:[2,6],storag:[0,2,4,6,7,9,13,15,16,19,20],store:[2,4,7,10,16,17,18,19,21],stored_procedur:7,straka3_at_gmail:4,straka:4,strftime:6,strict:2,strict_typ:[2,17],strijbol:4,string:[0,2,4,17,19],strip:[0,2],strlen:17,strongli:[2,14],strozzi:4,structur:[4,7,8,9,10,13,17,18,21],strval:17,stuff:4,style:[2,4,6,17,18],sub:[6,15],subdirectori:[2,18],subfold:[6,17],subject:[2,6],sublevel:2,submiss:2,submit:[2,6,17],subroutin:7,subset:10,substitut:6,substr:2,subtyp:19,success:[2,6,15,17],successfulli:6,suffic:17,suffici:6,suffix:[2,17],suggest:[2,4,6,14,15,17],suhardi:4,suhosin:2,suhosindisablewarn:[2,6],suit:[6,7,17],suitabl:8,sum:6,summer:4,sun:4,sundai:2,supersed:7,superus:[12,17],suppli:[2,17],support:[1,2,4,7,8,9,13,14,17,18,20],suppos:6,suppress:2,supun:4,surbakti:4,sure:[2,17],surfac:15,surround:6,svalekja:4,svec:4,sven:4,svg:22,swedish:4,swekei:2,symbol:[2,18],symlinksifownermatch:6,symmetr:7,sync:4,synchron:[4,9],synoobot:6,syntax:[2,6],sysadmin:[2,6],syslog:[2,17],system:[2,4,6,7,8,16,17,18,19,22],szsilva_at_gmail:4,t10:2,t3if_at_ladisch:4,tab:[7,8,9,12,13,16,17],tabbrows:6,tabl:[2,4,7,10,12,13,17,19,21],table_:7,table_coord:[2,6,13],table_info:2,table_nam:6,table_uipref:2,tablenam:6,tablenavigationlinksmod:2,tableprimarykeyord:2,tables_priv:6,tablesepar:6,tablettws_at_gmail:4,tabsmod:2,taceloski:4,tag:6,taiwan:4,take:[1,2,6,10,19],taken:6,talk:17,tamil:4,tamsjadi:4,tape:7,tar:[7,17],tar_:7,tarbal:17,target:[2,6],tarzq28_at_gmail:4,task:10,tbl_chang:4,tbl_creat:4,tbl_dump:6,tbl_row_delet:6,tbl_select:4,tcp:[2,6,7],tcpdf:[4,6,7],tczzjin_at_gmail:4,team:[2,15,17],technic:21,technolog:7,tecnick:4,tecnickcom:6,telekom:6,tell:[2,6],telnet:6,tempdir:[2,6,17],templat:[2,4,17,19],template_abstract:19,temporari:[2,6,17],temporarili:[2,6,16],term:3,terri:4,test:[2,4,6,17,20,22],tex:[6,7,8],text:[0,4,7,9,10,17,19],textarea:2,textareaautoselect:2,textareacol:2,textarearow:2,textbox:12,textfield:19,textimagelink:2,textlink:2,textual:[6,8],thai:4,than:[2,4,8,10,12,17,20],thank:[4,6],thei:[2,4,12,17,19,22],them:[2,7,16,17,19,22],theme:[4,9,17,21,22],themedefault:[2,18],thememanag:[2,18],themenam:2,themeperserv:2,themselv:2,therefor:2,thi:[0,1,2,3,4,7,8,12,13,15,16,17,18,19,20,22],thiago:4,thilanka:4,thilina:4,thing:[2,6,15],think:[6,15],third:[2,6,9,11,17,18],thirteen:4,thoma:[4,7],those:[2,12,13,16,17,19],though:[2,7,8,15,17],three:[2,6,17,19],threshold:2,through:[2,7,10,15,16,17,19,20],throwabl:17,thu:[2,6,8,17],thumbnail:14,tickbox:6,tild:6,till:[6,17],time:[1,2,7,15,17,20],timeout:[2,8],timestamp:2,tinyint:6,tip:[2,6],titl:[1,8,9,17],titledatabas:2,titledefault:2,titleserv:2,titlet:2,tkl:6,tmp:2,tobia:[3,4],tobias_at_ratschil:[3,4],togeth:[2,15,17],toggl:[2,10],token:[15,20],tokyo:6,told:4,tom:4,toma:4,tomas_at_tomasruud:4,tomastik:4,tommi:4,tommy_at_surbakti:4,ton:2,too:[2,5,6,8],tool:[2,4,5,10,15,17],tooltip:[6,13],top:[2,6,8,16,17],topic:17,toplevel:2,tor:4,total:17,totp:20,town:6,town_cod:6,track:[2,4,10,17],tracker:[2,6,15],tracking_add_drop_databas:2,tracking_add_drop_t:2,tracking_add_drop_view:2,tracking_default_stat:2,tracking_version_auto_cr:2,tradition:17,traefik:17,traffic:2,trail:2,transfer:[2,6,7,17],transform:[4,9,10,11,17,21],transformation_opt:[2,19],transformations_generator_main_class:19,transformations_generator_plugin:19,transformationsplugin:19,transit:17,translat:[2,9],translationwarningthreshold:2,translit:2,transliter:2,transmiss:[7,8],transmit:[6,7,20],transport_layer_secur:7,travel:[1,17],treat:[2,6,7],tree:[2,4],trend:1,trezor:20,tri:[2,6,15,17],trick:15,trigger:[2,4,7,8,10],trinh:4,trinhminhbao_at_gmail:4,triwidada:4,troubl:[2,7,8],troubleshoot:6,truli:17,truncat:2,trust:[2,17],trustedproxi:2,tschopp:4,tune:17,tunnel213:4,tunnel213_at_aliyun:4,tupl:7,turck:6,turek:[3,4],turkish:4,turn:[2,6],turnitinbot:6,tutori:[6,19,21],tweak:17,twig:4,two:[2,7,9,13,17,19,21],txt:[3,6,17],type:[0,1,2,4,7,8,13,17,19],typeset:[7,8],typic:[2,6,7,9,20],typograph:8,tyron:4,u2f:21,ubuntu:2,ufpdf:4,uid:15,ukko:4,ukrainian:4,ultim:[6,17],unavail:2,uncheck:[2,6],unclean:6,uncom:[2,17],under:[2,3,15,17,18,22],underli:[1,17,18],undernetangel_at_gmail:4,understand:[10,17],undocu:8,unexpect:[0,2],ungureanu:4,uniform:7,unintend:2,union:[1,6],uniqid:17,uniqu:[2,6,7,13],unit:4,unix_domain_socket:7,unknown:17,unless:[2,6,17,20],unlik:17,unlucky_at_inbox:4,unpack:[6,17],unprivileg:2,unset:[6,17],unsign:19,unsupport:6,untar:17,until:[2,4,6,16,17,19],unus:6,unwil:6,unzip:17,updat:[2,4,6,17],upgrad:[2,4,9],upgrade_column_info_4_3_0:[2,17],upgrade_tables_4_7_0:17,upgrade_tables_mysql_4_1_2:17,upload:[8,9,14,17,19],upload_limit:17,upload_max_files:[6,17],upload_progress:6,upload_tmp_dir:6,uploaddir:[2,6,8],uploadprogress:6,upon:[1,16],upper:6,upto:6,urbalazs_at_gmail:4,uri:13,url:[2,7,17,18],urlqueryencrypt:2,urlqueryencryptionsecretkei:2,urltrend:6,uro:4,usabl:6,usag:[2,12,21],use:[0,2,4,7,8,10,12,13,15,16,17,18,19,20],use_backend:17,use_cooki:17,used:[0,1,2,4,7,8,13,16,17,18,19,20],usedbsearch:2,useful:[1,2,3,5,7,8,12,17],useless:6,usepackag:[6,8],user:[2,4,7,9,15,16,19,20,22],user_bas:17,userconfig:2,userdata:15,usergroup:[2,12],userid:6,usernam:[2,10,12,17],userprefsdevelopertab:2,userprefsdisallow:2,userstatu:6,uses:[2,8,17],using:[1,4,7,9,10,11,13,14,15,19,20,21],usr:17,usual:[2,6,7,17,19],utc_timestamp:2,utf8mb4_general_ci:2,utf:[2,6,7,17],util:[2,6,7,15,17],uuid:2,vadap:4,vainauska:4,valentin:4,valia:4,valid:[0,2,4,6,8,10,15,16,17],valter:4,valu:[2,7,8,13,17,19],van:4,varchar:2,varfilt:6,variabl:[1,2,19,21],variable1:0,variou:[4,6,8,9,10,17,22],vazquez:4,vector:8,vendor:[2,3,6,9],vendor_config:22,verb:6,verbos:[2,6,17],veri:[6,8,17],verif:[2,6,17],verifi:[2,6,9],verschuer:4,verschuere_at_outlook:4,version:[1,2,3,7,8,9,10,14,18,20,22],versioncheck:2,vertic:[4,7],vetoffic:6,via:[2,12,15,17],victor:4,vidner:4,vietnames:4,view:[2,4,7,8,10,12,21],vijai:4,viktar:4,viliu:4,villanueva:4,vinai:4,vincent:4,vinipitta_at_gmail:4,vip_at_krasio:4,vipals_at_gmail:4,virusyoon_at_gmail:4,visibl:[2,17],visit:17,visok:4,visokereyal_at_gmail:4,visual:[2,4,6],visualis:6,vitalii:4,vliet:4,vmta_at_yahoo:4,vonflyne:4,vonflynee_at_gmail:4,voogt:4,voogt_at_hccnet:4,voyag:6,vperekupka_at_gmail:4,vserver:[2,6],vulner:[2,6,9,17],vytauta:4,w3c:[6,7],w3c_valid:6,wai:[0,2,4,8,13,15,16,17,18,20],wait:6,wallet:20,walton:4,walton_at_nordicdm:4,want:[2,8,12,17,18,19,22],warn:[2,17],warranti:3,washington:4,washingtonbruno_at_msn:4,wasn:4,wasser:6,waw:4,weaker:2,web:[4,6,7,8,9,15,17,22],web_brows:7,web_serv:7,webadmin:4,webapp:17,webcrawl:6,weblate_at_gmail:4,webmaster_at_trafficg:4,webpack:4,webserv:[2,6,8,17],websit:[2,4,5,6,7,15,18],week:2,wei:4,welcom:[2,17],well:[2,4,6,10,15,17],weng:4,wengshiyu_at_gmail:4,wennberg:4,were:[2,4,6],west:[2,4],wget:6,what:[0,2,12,15,17,19],wheel:6,when:[0,2,4,7,8,10,13,14,15,17,19,20],whenev:[2,6,17],where:[0,2,3,7,8,12,15,17,19],whether:[2,12,17,22],whh:4,whhlcj_at_126:4,which:[0,1,2,3,7,8,10,11,12,13,14,15,16,17,18,19],who:[2,4,12,17,19,22],whole:[0,2,6,15,17],whose:[6,17],why:[0,2],wide:[7,8,16,20],width:2,wiegger:4,wigginton:4,wiki:[6,7,8,17],wikipedia:[7,8,15,17],wildcard:[2,6],wilk:4,william:4,wilson:4,win2k:6,win32:17,win98:6,window:[1,2,4,7,9,19,20],winhttp:6,winningham:4,winnt4:6,wisenutbot:6,wish:[0,2,7,8,12,17],withdrawn:4,within:[2,6,12],without:[2,3,17,18,19],witten:4,wizard:[6,17],wkito:6,won:[0,2],word:[2,6,9],wordfenc:6,work:[2,4,13,15,17,19],workaround:[6,17],workbook:8,world:[2,7],worldwideski:4,worldwideskier_at_yahoo:4,wors:6,would:[2,13,15,17,18,19],wrap:2,wrapper:17,writabl:[2,22],write:[2,8],written:[2,5,6,10],wrong:[2,13],wrongli:6,www:[2,3,4,6,7,17,18],wysiwyg:4,xampp:17,xavier:4,xhtml1:4,xml:[4,7,10,14,17],xosecalvo_at_gmail:4,xs910203_at_gmail:4,xuan:4,xvnavarro_at_gmail:4,xxx:[2,6,19],xxxx:2,xzvf:17,yacybot:6,yahoo:6,yahooseek:6,yan:4,yansilvagabriel_at_gmail:4,yarn:[4,17],yaron:4,yaron_at_gmail:4,yashodha:4,yasir:4,yasitha:4,yavuz:4,yearmad:8,yellow:6,yes:2,yet:[2,8],yetdiffer:2,yizhou:4,yml:17,yogarajah:4,yogeshwar:4,yohan:4,yong:4,yoon:4,you:[0,1,2,3,4,5,6,7,8,10,11,12,13,14,15,16,17,18,19,20,22],youbico:20,youngmin:4,youngminz:4,your:[0,2,6,8,9,10,12,13,14,15,16,18,19],your_db_host:17,your_theme_nam:18,yourpassword:2,yswy_at_hotmail:4,yug:4,yugal:4,yukihiro:4,yuval:4,yyi:2,yyyi:2,zahra:4,zancan:4,zarubin:4,zassenhau:4,zassenhaus_at_jgerman:4,zend:6,zero:[2,8,16],zeroconf:[2,17],zerofil:19,zheng:4,zhyarabdulla94_at_gmail:4,zigmanta:4,zion_at_gmail:4,zip:[2,4,6,7,8,10,14,17],zip_:7,zipdump:2,zlib:[6,7,10],zone:2,zoom:4,zrng:4,zufar:4,zzz:2,zzzz:2},titles:["Bookmarks","Charts","Configuration","Copyright","Credits","Developers Information","FAQ - Frequently Asked Questions","Glossary","Import and export","Welcome to phpMyAdmin\u2019s documentation!","Introduction","Other sources of information","User management","Relations","Requirements","Security policy","Configuring phpMyAdmin","Installation","Custom Themes","Transformations","Two-factor authentication","User Guide","Distributing and packaging phpMyAdmin"],titleterms:{"100":6,"111":6,"17a":6,"2000":8,"2fa":20,"404":6,"500":6,"5b4":6,"\u010deski":11,"\u0440\u0443\u0441\u0441\u043a\u0438\u0439":11,"default":[2,6],"export":[2,6,8],"function":6,"import":[2,6,8],"int":6,"new":[6,12],"null":6,"return":6,"try":6,"while":6,IIS:6,ODS:8,PWS:6,RDS:2,The:6,USE:6,Using:[6,17],With:6,YES:6,abl:6,about:[6,10],access:6,action:6,add:6,addit:6,address:2,adjust:6,after:[6,17],again:6,against:6,alert:6,allow:6,alreadi:6,alwai:6,amazon:2,ani:6,ansi:6,apach:6,applic:[6,20],appropri:6,area:6,arrai:8,ascii:6,ask:6,assign:12,attack:[6,15],aurora:2,auth:6,authent:[2,6,17,20],auto:6,autologin:2,automat:6,back:[6,17],backup:6,bar:[1,6],base:6,basic:2,becaus:6,behavior:6,behind:17,being:6,below:6,big:6,bind:6,blank:6,blob:6,book:11,bookmark:[0,6],box:[2,6],bring:6,brows:[0,2,6,17],browser:[6,14],brute:[6,15],bug:6,bundl:6,caching_sha2_password:6,can:6,cannot:6,caus:6,central:6,certain:6,cgi:6,chang:6,charact:6,chart:[1,6],checkbox:6,chronolog:4,click:6,clickabl:6,client:6,cloud:[2,17],cluster:6,codegen:8,column:[1,6,8,17],come:6,comment:6,complet:6,compos:17,compress:6,config:17,configur:[2,6,12,16,17,18],connect:[2,6,17],consid:6,consol:2,contain:6,content:6,control:6,cooki:[2,6,17],copi:6,copyright:3,correct:6,could:6,crash:6,creat:[6,12,17,18],credit:4,cross:15,cryptic:6,csrf:15,csv:[6,8],curiou:6,custom:[2,6,17,18],czech:11,data:[6,8],databas:[2,6,12,14,17],db_structur:6,debian:17,decim:6,delet:[6,12],deni:6,deriv:17,design:[2,6,13],determin:6,develop:[2,5,6],differ:6,directli:6,directori:2,disclosur:6,disk:6,displai:[2,6],distribut:[6,17,22],docker:17,document:[4,6,8,9],doe:6,doesn:6,don:6,dot:6,down:6,drop:6,dump:6,duplic:6,each:6,edit:[2,6,12],effect:6,employe:6,empti:6,enabl:6,encrypt:6,english:11,enter:6,enterpris:17,environ:17,error:6,errorcod:6,esri:[6,8],evil:6,exampl:[1,2,6,13,17],excel:[6,8],execut:6,exist:[6,12],explor:6,extend:6,extens:6,extern:22,face:6,factor:20,fail:6,faq:6,favorit:6,featur:[6,10],fedora:17,fido:20,field:[2,6],file:[6,8,17,19,22],fine:6,firefox:6,firstnam:6,fix:6,folder:6,follow:6,font:6,forc:[6,15],foreign:6,forgeri:15,form:6,format:6,formula:6,forward:6,found:6,frequent:6,from:[6,17],full:6,gener:[2,6],gentoo:17,german:6,get:6,git:17,give:6,glossari:7,gone:6,googl:2,group:12,guid:21,gzip:6,happen:6,haproxi:17,hardwar:20,hash:6,hat:17,have:6,hcaptcha:2,header:6,heard:6,help:6,hierarchi:6,homonym:6,host:6,how:6,html:6,http:[6,17],huge:6,hundr:6,hyphen:6,ibm:17,imag:18,implement:1,improv:6,includ:6,increment:6,index:6,indic:9,info:13,inform:[5,6,11],inject:[6,15],innodb:6,input:6,insert:6,insid:0,instal:[6,17],intend:6,intern:6,internet:6,introduct:[10,19],isp:6,issu:[6,15,17],its:6,javascript:6,json:8,just:6,kei:[6,10,20],know:6,known:[6,17],konqueror:6,lang:6,languag:[2,6],larg:6,lastnam:6,latex:[6,8],length:6,let:6,librari:[6,22],licens:[3,22],like:6,limit:[2,6],line:1,linux:17,list:6,load:[6,8],local:6,localhost:6,locat:6,log:[6,17],login:6,lose:6,lost:6,lot:6,lowercas:6,lump:6,mac:6,machin:6,main:2,make:6,manag:[2,12],mandriva:17,mani:6,manner:6,manual:17,mean:6,mediawiki:8,memori:6,menu:12,messag:6,metadata:18,method:6,microsoft:[6,8],mime:6,mimetyp:6,mine:6,misbehav:6,miss:6,mod_gzip:6,mode:[2,6,17],modifi:6,more:6,move:6,mozilla:6,multi:6,multipl:[2,6],mysql:[2,6],mysqldump:6,mysqli:6,name:[6,8],nativ:6,navig:[2,6],need:6,nest:6,netscap:6,never:6,newer:6,nick:6,non:6,noth:6,now:6,number:6,older:[6,17],onc:6,one:6,onli:6,onto:6,open:8,open_basedir:6,opendocu:8,opensus:17,oper:6,option:[2,6,8],order:4,origin:4,other:11,out:[6,17],own:6,packag:22,page:[2,6],panel:2,paramet:6,parameter:6,pars:6,parti:3,password:6,path:6,pdf:[2,6,8],php:[6,8,14],phpmyadmin:[6,9,16,17,22],pie:1,plenti:6,pmadb:6,polici:[6,15],port:6,possibl:6,potenti:6,pr1:6,pre:6,prefer:6,prevent:6,primari:6,print:11,privileg:[6,12,17],problem:6,proce:6,procedur:6,process:6,produc:6,progress:6,project:6,protect:6,protocol:6,proxi:6,put:6,queri:[2,6],question:6,quick:17,rang:6,reassign:6,recaptcha:2,receiv:6,red:17,redirect:6,reduc:6,refresh:6,refus:6,relat:[6,13],relationship:6,releas:17,reload:6,renam:6,report:15,request:[6,15],requir:[6,14],restor:6,restrict:6,result:6,revers:6,right:6,robot:6,root:6,row:6,run:[6,17],russian:11,safari:6,safe:6,sai:6,same:6,save:2,scatter:1,schema:6,script:[6,15,17],scroll:6,search:6,secur:[6,15,17,20],see:6,seem:6,select:6,send:6,sent:6,seri:6,server:[2,6,14,17],set:[2,6],setup:[2,6,17],shape:8,shapefil:6,share:18,shortcut:10,should:6,shown:6,signon:[2,17],simpl:[6,20],simpli:6,singl:6,site:15,size:6,smith:6,sock:6,socket:6,some:6,sometim:6,sourc:11,special:6,specif:[6,12,17,22],specifi:6,spline:1,spreadsheet:8,sql:[2,6,8,15],sql_mode:6,ssl:[2,17],start:6,statist:6,storag:17,store:[0,6],string:6,structur:[2,6,19],subdirectori:17,suhosin:6,support:[6,10],sure:6,symbol:6,synchron:6,tab:[2,6],tabl:[0,6,8,9],technic:13,texi:8,text:[2,6,8],than:6,thei:6,them:6,theme:[2,6,18],thi:6,third:3,those:6,through:6,time:6,timelin:1,timeout:6,titl:2,tmp:6,togeth:6,tool:6,transform:[2,6,19],translat:[4,6],troubl:[6,17],tutori:11,two:[6,20],type:6,typic:15,u2f:20,ubuntu:17,umlaut:6,unabl:[6,17],undefin:6,under:6,underscor:6,understand:6,unicod:6,unix:6,unknown:6,unsaf:6,upgrad:[6,17],upload:[2,6],url:6,usag:19,use:6,used:6,useful:6,user:[6,10,12,17,21],usernam:6,uses:6,using:[0,2,6,8,17],valu:6,varchar:6,variabl:[0,6,17],variou:2,vendor:22,verifi:17,version:[4,6,17],via:6,view:[6,13],violat:6,volum:17,vulner:15,wai:6,want:6,warn:6,web:[2,14],welcom:[6,9],what:6,when:6,where:6,which:6,whitespac:6,who:6,why:6,win32:6,window:[6,17],withdrawn:6,without:6,won:6,word:[8,10],work:6,would:6,write:6,wrong:6,xitami:6,xml:8,xss:15,yaml:8,your:17,zero:17,zoom:6}}) \ No newline at end of file diff -Nru phpmyadmin-5.1.3+dfsg1/doc/html/security.html phpmyadmin-5.1.4+dfsg1/doc/html/security.html --- phpmyadmin-5.1.3+dfsg1/doc/html/security.html 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/doc/html/security.html 2022-05-11 03:26:09.000000000 +0000 @@ -5,7 +5,7 @@ - Security policy — phpMyAdmin 5.1.3 documentation + Security policy — phpMyAdmin 5.1.4 documentation @@ -32,7 +32,7 @@
  • previous |
  • - + @@ -199,7 +199,7 @@
  • previous |
  • - + diff -Nru phpmyadmin-5.1.3+dfsg1/doc/html/settings.html phpmyadmin-5.1.4+dfsg1/doc/html/settings.html --- phpmyadmin-5.1.3+dfsg1/doc/html/settings.html 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/doc/html/settings.html 2022-05-11 03:26:09.000000000 +0000 @@ -5,7 +5,7 @@ - Configuring phpMyAdmin — phpMyAdmin 5.1.3 documentation + Configuring phpMyAdmin — phpMyAdmin 5.1.4 documentation @@ -32,7 +32,7 @@
  • previous |
  • - + @@ -108,7 +108,7 @@
  • previous |
  • - + diff -Nru phpmyadmin-5.1.3+dfsg1/doc/html/setup.html phpmyadmin-5.1.4+dfsg1/doc/html/setup.html --- phpmyadmin-5.1.3+dfsg1/doc/html/setup.html 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/doc/html/setup.html 2022-05-11 03:26:09.000000000 +0000 @@ -5,7 +5,7 @@ - Installation — phpMyAdmin 5.1.3 documentation + Installation — phpMyAdmin 5.1.4 documentation @@ -32,7 +32,7 @@
  • previous |
  • - + @@ -1460,7 +1460,7 @@
  • previous |
  • - + diff -Nru phpmyadmin-5.1.3+dfsg1/doc/html/_sources/config.rst.txt phpmyadmin-5.1.4+dfsg1/doc/html/_sources/config.rst.txt --- phpmyadmin-5.1.3+dfsg1/doc/html/_sources/config.rst.txt 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/doc/html/_sources/config.rst.txt 2022-05-11 03:26:09.000000000 +0000 @@ -630,6 +630,27 @@ "phpMyAdmin " and either :config:option:`$cfg['Servers'][$i]['verbose']` or :config:option:`$cfg['Servers'][$i]['host']` will be used. +.. _servers_auth_swekey_config: +.. config:option:: $cfg['Servers'][$i]['auth_swekey_config'] + + :type: string + :default: ``''`` + + .. versionadded:: 3.0.0.0 + + This setting was named `$cfg['Servers'][$i]['auth_feebee_config']` and was renamed before the `3.0.0.0` release. + + .. deprecated:: 4.6.4 + + This setting was removed because their servers are no longer working and it was not working correctly. + + .. deprecated:: 4.0.10.17 + + This setting was removed in a maintenance release because their servers are no longer working and it was not working correctly. + + The name of the file containing swekey ids and login names for hardware + authentication. Leave empty to deactivate this feature. + .. _servers_user: .. config:option:: $cfg['Servers'][$i]['user'] diff -Nru phpmyadmin-5.1.3+dfsg1/doc/html/_sources/faq.rst.txt phpmyadmin-5.1.4+dfsg1/doc/html/_sources/faq.rst.txt --- phpmyadmin-5.1.3+dfsg1/doc/html/_sources/faq.rst.txt 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/doc/html/_sources/faq.rst.txt 2022-05-11 03:26:09.000000000 +0000 @@ -1904,7 +1904,7 @@ to display the plot. After the plot is generated, you can use the -mousewheel to zoom in and out of the plot. In addition, panning +mouse wheel to zoom in and out of the plot. In addition, panning feature is enabled to navigate through the plot. You can zoom-in to a certain level of detail and use panning to locate your area of interest. Clicking on a point opens a dialogue box, displaying field diff -Nru phpmyadmin-5.1.3+dfsg1/doc/html/_static/documentation_options.js phpmyadmin-5.1.4+dfsg1/doc/html/_static/documentation_options.js --- phpmyadmin-5.1.3+dfsg1/doc/html/_static/documentation_options.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/doc/html/_static/documentation_options.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,6 +1,6 @@ var DOCUMENTATION_OPTIONS = { URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), - VERSION: '5.1.3', + VERSION: '5.1.4', LANGUAGE: 'None', COLLAPSE_INDEX: false, BUILDER: 'html', diff -Nru phpmyadmin-5.1.3+dfsg1/doc/html/themes.html phpmyadmin-5.1.4+dfsg1/doc/html/themes.html --- phpmyadmin-5.1.3+dfsg1/doc/html/themes.html 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/doc/html/themes.html 2022-05-11 03:26:09.000000000 +0000 @@ -5,7 +5,7 @@ - Custom Themes — phpMyAdmin 5.1.3 documentation + Custom Themes — phpMyAdmin 5.1.4 documentation @@ -32,7 +32,7 @@
  • previous |
  • - + @@ -202,7 +202,7 @@
  • previous |
  • - + diff -Nru phpmyadmin-5.1.3+dfsg1/doc/html/transformations.html phpmyadmin-5.1.4+dfsg1/doc/html/transformations.html --- phpmyadmin-5.1.3+dfsg1/doc/html/transformations.html 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/doc/html/transformations.html 2022-05-11 03:26:09.000000000 +0000 @@ -5,7 +5,7 @@ - Transformations — phpMyAdmin 5.1.3 documentation + Transformations — phpMyAdmin 5.1.4 documentation @@ -32,7 +32,7 @@
  • previous |
  • - + @@ -238,7 +238,7 @@
  • previous |
  • - + diff -Nru phpmyadmin-5.1.3+dfsg1/doc/html/two_factor.html phpmyadmin-5.1.4+dfsg1/doc/html/two_factor.html --- phpmyadmin-5.1.3+dfsg1/doc/html/two_factor.html 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/doc/html/two_factor.html 2022-05-11 03:26:09.000000000 +0000 @@ -5,7 +5,7 @@ - Two-factor authentication — phpMyAdmin 5.1.3 documentation + Two-factor authentication — phpMyAdmin 5.1.4 documentation @@ -32,7 +32,7 @@
  • previous |
  • - + @@ -158,7 +158,7 @@
  • previous |
  • - + diff -Nru phpmyadmin-5.1.3+dfsg1/doc/html/user.html phpmyadmin-5.1.4+dfsg1/doc/html/user.html --- phpmyadmin-5.1.3+dfsg1/doc/html/user.html 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/doc/html/user.html 2022-05-11 03:26:09.000000000 +0000 @@ -5,7 +5,7 @@ - User Guide — phpMyAdmin 5.1.3 documentation + User Guide — phpMyAdmin 5.1.4 documentation @@ -32,7 +32,7 @@
  • previous |
  • - + @@ -149,7 +149,7 @@
  • previous |
  • - + diff -Nru phpmyadmin-5.1.3+dfsg1/doc/html/vendors.html phpmyadmin-5.1.4+dfsg1/doc/html/vendors.html --- phpmyadmin-5.1.3+dfsg1/doc/html/vendors.html 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/doc/html/vendors.html 2022-05-11 03:26:09.000000000 +0000 @@ -5,7 +5,7 @@ - Distributing and packaging phpMyAdmin — phpMyAdmin 5.1.3 documentation + Distributing and packaging phpMyAdmin — phpMyAdmin 5.1.4 documentation @@ -32,7 +32,7 @@
  • previous |
  • - + @@ -143,7 +143,7 @@
  • previous |
  • - + diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/ajax.js phpmyadmin-5.1.4+dfsg1/js/dist/ajax.js --- phpmyadmin-5.1.3+dfsg1/js/dist/ajax.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/ajax.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /* global ErrorReport */ // js/error_report.js diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/chart.js phpmyadmin-5.1.4+dfsg1/js/dist/chart.js --- phpmyadmin-5.1.3+dfsg1/js/dist/chart.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/chart.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,6 +1,4 @@ -"use strict"; - -function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } +function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } /** * Chart type enumerations diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/codemirror/addon/lint/sql-lint.js phpmyadmin-5.1.4+dfsg1/js/dist/codemirror/addon/lint/sql-lint.js --- phpmyadmin-5.1.3+dfsg1/js/dist/codemirror/addon/lint/sql-lint.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/codemirror/addon/lint/sql-lint.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - CodeMirror.sqlLint = function (text, updateLinting, options, cm) { // Skipping check if text box is empty. if (text.trim() === '') { diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/common.js phpmyadmin-5.1.4+dfsg1/js/dist/common.js --- phpmyadmin-5.1.3+dfsg1/js/dist/common.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/common.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - $(function () { Functions.checkNumberOfFields(); }); diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/config.js phpmyadmin-5.1.4+dfsg1/js/dist/config.js --- phpmyadmin-5.1.3+dfsg1/js/dist/config.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/config.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * Functions used in configuration forms and on user preferences pages */ diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/console.js phpmyadmin-5.1.4+dfsg1/js/dist/console.js --- phpmyadmin-5.1.3+dfsg1/js/dist/console.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/console.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,6 +1,4 @@ -"use strict"; - -function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } +function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } /** * Used in or for console diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/cross_framing_protection.js phpmyadmin-5.1.4+dfsg1/js/dist/cross_framing_protection.js --- phpmyadmin-5.1.3+dfsg1/js/dist/cross_framing_protection.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/cross_framing_protection.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * Conditionally included if framing is not allowed */ diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/database/central_columns.js phpmyadmin-5.1.4+dfsg1/js/dist/database/central_columns.js --- phpmyadmin-5.1.3+dfsg1/js/dist/database/central_columns.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/database/central_columns.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * @fileoverview events handling from central columns page * @name Central columns diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/database/multi_table_query.js phpmyadmin-5.1.4+dfsg1/js/dist/database/multi_table_query.js --- phpmyadmin-5.1.3+dfsg1/js/dist/database/multi_table_query.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/database/multi_table_query.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * @fileoverview function used in QBE for DB * @name Database Operations diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/database/operations.js phpmyadmin-5.1.4+dfsg1/js/dist/database/operations.js --- phpmyadmin-5.1.3+dfsg1/js/dist/database/operations.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/database/operations.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * @fileoverview function used in server privilege pages * @name Database Operations diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/database/qbe.js phpmyadmin-5.1.4+dfsg1/js/dist/database/qbe.js --- phpmyadmin-5.1.3+dfsg1/js/dist/database/qbe.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/database/qbe.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * @fileoverview function used in QBE for DB * @name Database Operations diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/database/query_generator.js phpmyadmin-5.1.4+dfsg1/js/dist/database/query_generator.js --- phpmyadmin-5.1.3+dfsg1/js/dist/database/query_generator.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/database/query_generator.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * @fileoverview function used in QBE for DB * @name Database Operations diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/database/search.js phpmyadmin-5.1.4+dfsg1/js/dist/database/search.js --- phpmyadmin-5.1.3+dfsg1/js/dist/database/search.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/database/search.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * JavaScript functions used on Database Search page * diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/database/structure.js phpmyadmin-5.1.4+dfsg1/js/dist/database/structure.js --- phpmyadmin-5.1.3+dfsg1/js/dist/database/structure.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/database/structure.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * @fileoverview functions used on the database structure page * @name Database Structure diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/database/tracking.js phpmyadmin-5.1.4+dfsg1/js/dist/database/tracking.js --- phpmyadmin-5.1.3+dfsg1/js/dist/database/tracking.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/database/tracking.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * Unbind all event handlers before tearing down the page */ diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/designer/database.js phpmyadmin-5.1.4+dfsg1/js/dist/designer/database.js --- phpmyadmin-5.1.3+dfsg1/js/dist/designer/database.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/designer/database.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - var designerTables = [{ name: 'pdf_pages', key: 'pgNr', @@ -45,10 +43,17 @@ } }; - request.onerror = designerDB.onerror; + request.onerror = function () { + Functions.ajaxShowMessage(Messages.strIndexedDBNotWorking, null, 'error'); + }; }; designerDB.loadObject = function (table, id, callback) { + if (datastore === null) { + Functions.ajaxShowMessage(Messages.strIndexedDBNotWorking, null, 'error'); + return; + } + var db = datastore; var transaction = db.transaction([table], 'readwrite'); var objStore = transaction.objectStore(table); @@ -62,6 +67,11 @@ }; designerDB.loadAllObjects = function (table, callback) { + if (datastore === null) { + Functions.ajaxShowMessage(Messages.strIndexedDBNotWorking, null, 'error'); + return; + } + var db = datastore; var transaction = db.transaction([table], 'readwrite'); var objStore = transaction.objectStore(table); @@ -88,6 +98,11 @@ }; designerDB.loadFirstObject = function (table, callback) { + if (datastore === null) { + Functions.ajaxShowMessage(Messages.strIndexedDBNotWorking, null, 'error'); + return; + } + var db = datastore; var transaction = db.transaction([table], 'readwrite'); var objStore = transaction.objectStore(table); @@ -113,6 +128,11 @@ }; designerDB.addObject = function (table, obj, callback) { + if (datastore === null) { + Functions.ajaxShowMessage(Messages.strIndexedDBNotWorking, null, 'error'); + return; + } + var db = datastore; var transaction = db.transaction([table], 'readwrite'); var objStore = transaction.objectStore(table); @@ -128,6 +148,11 @@ }; designerDB.deleteObject = function (table, id, callback) { + if (datastore === null) { + Functions.ajaxShowMessage(Messages.strIndexedDBNotWorking, null, 'error'); + return; + } + var db = datastore; var transaction = db.transaction([table], 'readwrite'); var objStore = transaction.objectStore(table); diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/designer/history.js phpmyadmin-5.1.4+dfsg1/js/dist/designer/history.js --- phpmyadmin-5.1.3+dfsg1/js/dist/designer/history.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/designer/history.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * @fileoverview function used in this file builds history tab and generates query. * diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/designer/init.js phpmyadmin-5.1.4+dfsg1/js/dist/designer/init.js --- phpmyadmin-5.1.3+dfsg1/js/dist/designer/init.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/designer/init.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * Initializes the data required to run Designer, then fires it up. */ diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/designer/move.js phpmyadmin-5.1.4+dfsg1/js/dist/designer/move.js --- phpmyadmin-5.1.3+dfsg1/js/dist/designer/move.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/designer/move.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * @package PhpMyAdmin-Designer */ diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/designer/objects.js phpmyadmin-5.1.4+dfsg1/js/dist/designer/objects.js --- phpmyadmin-5.1.3+dfsg1/js/dist/designer/objects.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/designer/objects.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - // eslint-disable-next-line no-unused-vars var DesignerObjects = { PdfPage: function PdfPage(dbName, pageDescr, tblCords) { diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/designer/page.js phpmyadmin-5.1.4+dfsg1/js/dist/designer/page.js --- phpmyadmin-5.1.3+dfsg1/js/dist/designer/page.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/designer/page.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /* global DesignerOfflineDB */ // js/designer/database.js // eslint-disable-next-line no-unused-vars diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/doclinks.js phpmyadmin-5.1.4+dfsg1/js/dist/doclinks.js --- phpmyadmin-5.1.3+dfsg1/js/dist/doclinks.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/doclinks.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * Definition of links to MySQL documentation. */ diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/drag_drop_import.js phpmyadmin-5.1.4+dfsg1/js/dist/drag_drop_import.js --- phpmyadmin-5.1.3+dfsg1/js/dist/drag_drop_import.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/drag_drop_import.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /* This script handles PMA Drag Drop Import, loaded only when configuration is enabled.*/ /** diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/error_report.js phpmyadmin-5.1.4+dfsg1/js/dist/error_report.js --- phpmyadmin-5.1.3+dfsg1/js/dist/error_report.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/error_report.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /* global TraceKit */ // js/vendor/tracekit.js diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/export.js phpmyadmin-5.1.4+dfsg1/js/dist/export.js --- phpmyadmin-5.1.3+dfsg1/js/dist/export.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/export.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * Functions used in the export tab * diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/export_output.js phpmyadmin-5.1.4+dfsg1/js/dist/export_output.js --- phpmyadmin-5.1.3+dfsg1/js/dist/export_output.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/export_output.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - AJAX.registerOnload('export_output.js', function () { $(document).on('keydown', function (e) { if ((e.which || e.keyCode) === 116) { diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/functions.js phpmyadmin-5.1.4+dfsg1/js/dist/functions.js --- phpmyadmin-5.1.3+dfsg1/js/dist/functions.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/functions.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,6 +1,4 @@ -"use strict"; - -function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } +function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } /* global isStorageSupported */ // js/config.js @@ -2490,7 +2488,7 @@ } // Figure out whether (or after how long) to remove the notification - if (newTimeOut === undefined) { + if (newTimeOut === undefined || newTimeOut === null) { newTimeOut = 5000; } else if (newTimeOut === false) { selfClosing = false; diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/gis_data_editor.js phpmyadmin-5.1.4+dfsg1/js/dist/gis_data_editor.js --- phpmyadmin-5.1.3+dfsg1/js/dist/gis_data_editor.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/gis_data_editor.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * @fileoverview functions used in GIS data editor * @@ -85,19 +83,13 @@ function loadJSAndGISEditor(value, field, type, inputName) { var head = document.getElementsByTagName('head')[0]; - var script; // Loads a set of small JS file needed for the GIS editor - - var smallScripts = ['js/vendor/jquery/jquery.svg.js', 'js/vendor/jquery/jquery.mousewheel.js', 'js/dist/table/gis_visualization.js']; - - for (var i = 0; i < smallScripts.length; i++) { - script = document.createElement('script'); - script.type = 'text/javascript'; - script.src = smallScripts[i]; - head.appendChild(script); - } // OpenLayers.js is BIG and takes time. So asynchronous loading would not work. + var script; + script = document.createElement('script'); + script.type = 'text/javascript'; + script.src = 'js/dist/table/gis_visualization.js'; + head.appendChild(script); // OpenLayers.js is BIG and takes time. So asynchronous loading would not work. // Load the JS and do a callback to load the content for the GIS Editor. - script = document.createElement('script'); script.type = 'text/javascript'; diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/import.js phpmyadmin-5.1.4+dfsg1/js/dist/import.js --- phpmyadmin-5.1.3+dfsg1/js/dist/import.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/import.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * Functions used in the import tab * diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/indexes.js phpmyadmin-5.1.4+dfsg1/js/dist/indexes.js --- phpmyadmin-5.1.3+dfsg1/js/dist/indexes.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/indexes.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * @fileoverview function used for index manipulation pages * @name Table Structure diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/jqplot/plugins/jqplot.byteFormatter.js phpmyadmin-5.1.4+dfsg1/js/dist/jqplot/plugins/jqplot.byteFormatter.js --- phpmyadmin-5.1.3+dfsg1/js/dist/jqplot/plugins/jqplot.byteFormatter.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/jqplot/plugins/jqplot.byteFormatter.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * jqplot formatter for byte values * diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/jquery.sortable-table.js phpmyadmin-5.1.4+dfsg1/js/dist/jquery.sortable-table.js --- phpmyadmin-5.1.3+dfsg1/js/dist/jquery.sortable-table.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/jquery.sortable-table.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,6 +1,4 @@ -"use strict"; - -function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } +function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } /** * This file is internal to phpMyAdmin. diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/keyhandler.js phpmyadmin-5.1.4+dfsg1/js/dist/keyhandler.js --- phpmyadmin-5.1.3+dfsg1/js/dist/keyhandler.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/keyhandler.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - // global var that holds: 0- if ctrl key is not pressed 1- if ctrl key is pressed var ctrlKeyHistory = 0; /** diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/makegrid.js phpmyadmin-5.1.4+dfsg1/js/dist/makegrid.js --- phpmyadmin-5.1.3+dfsg1/js/dist/makegrid.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/makegrid.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,6 +1,4 @@ -"use strict"; - -function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } +function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } /* global firstDayOfCalendar */ // templates/javascript/variables.twig diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/menu_resizer.js phpmyadmin-5.1.4+dfsg1/js/dist/menu_resizer.js --- phpmyadmin-5.1.3+dfsg1/js/dist/menu_resizer.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/menu_resizer.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * Handles the resizing of a menu according to the available screen width * diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/microhistory.js phpmyadmin-5.1.4+dfsg1/js/dist/microhistory.js --- phpmyadmin-5.1.3+dfsg1/js/dist/microhistory.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/microhistory.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * An implementation of a client-side page cache. * This object also uses the cache to provide a simple microhistory, diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/multi_column_sort.js phpmyadmin-5.1.4+dfsg1/js/dist/multi_column_sort.js --- phpmyadmin-5.1.3+dfsg1/js/dist/multi_column_sort.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/multi_column_sort.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * @fileoverview Implements the shiftkey + click remove column * from order by clause functionality diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/navigation.js phpmyadmin-5.1.4+dfsg1/js/dist/navigation.js --- phpmyadmin-5.1.3+dfsg1/js/dist/navigation.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/navigation.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * function used in or for navigation panel * diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/normalization.js phpmyadmin-5.1.4+dfsg1/js/dist/normalization.js --- phpmyadmin-5.1.3+dfsg1/js/dist/normalization.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/normalization.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * @fileoverview events handling from normalization page * @name normalization diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/page_settings.js phpmyadmin-5.1.4+dfsg1/js/dist/page_settings.js --- phpmyadmin-5.1.3+dfsg1/js/dist/page_settings.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/page_settings.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * @fileoverview function used for page-related settings * @name Page-related settings diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/replication.js phpmyadmin-5.1.4+dfsg1/js/dist/replication.js --- phpmyadmin-5.1.3+dfsg1/js/dist/replication.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/replication.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * @fileoverview Javascript functions used in server replication page * @name Server Replication diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/rte.js phpmyadmin-5.1.4+dfsg1/js/dist/rte.js --- phpmyadmin-5.1.3+dfsg1/js/dist/rte.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/rte.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * JavaScript functionality for Routines, Triggers and Events. * diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/server/databases.js phpmyadmin-5.1.4+dfsg1/js/dist/server/databases.js --- phpmyadmin-5.1.3+dfsg1/js/dist/server/databases.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/server/databases.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * @fileoverview functions used on the server databases list page * @name Server Databases diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/server/plugins.js phpmyadmin-5.1.4+dfsg1/js/dist/server/plugins.js --- phpmyadmin-5.1.3+dfsg1/js/dist/server/plugins.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/server/plugins.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * Functions used in server plugins pages */ diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/server/privileges.js phpmyadmin-5.1.4+dfsg1/js/dist/server/privileges.js --- phpmyadmin-5.1.3+dfsg1/js/dist/server/privileges.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/server/privileges.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * @fileoverview functions used in server privilege pages * @name Server Privileges @@ -56,7 +54,6 @@ $(document).off('click', 'a.edit_user_group_anchor.ajax'); $(document).off('click', 'button.mult_submit[value=export]'); $(document).off('click', 'a.export_user_anchor.ajax'); - $(document).off('click', '#initials_table a.ajax'); $('#dropUsersDbCheckbox').off('click'); $(document).off('click', '.checkall_box'); $(document).off('change', '#checkbox_SSL_priv'); @@ -321,36 +318,6 @@ }); // end $.get }); // end export privileges - /** - * AJAX handler to Paginate the Users Table - * - * @see Functions.ajaxShowMessage() - * @name paginate_users_table_click - * @memberOf jQuery - */ - - $(document).on('click', '#initials_table a.ajax', function (event) { - event.preventDefault(); - var $msgbox = Functions.ajaxShowMessage(); - $.get($(this).attr('href'), { - 'ajax_request': true - }, function (data) { - if (typeof data !== 'undefined' && data.success === true) { - Functions.ajaxRemoveMessage($msgbox); // This form is not on screen when first entering Privileges - // if there are more than 50 users - - $('.alert-primary').remove(); - $('#usersForm').hide('medium').remove(); - $('#fieldset_add_user').hide('medium').remove(); - $('#initials_table').prop('id', 'initials_table_old').after(data.message).show('medium').siblings('h2').not($('#initials_table').prop('id', 'initials_table_old').after(data.message).show('medium').siblings('h2').first()).remove(); // prevent double initials table - - $('#initials_table_old').remove(); - } else { - Functions.ajaxShowMessage(data.error, false); - } - }); // end $.get - }); // end of the paginate users table - $(document).on('change', 'input[name="ssl_type"]', function () { var $div = $('#specified_div'); diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/server/status/monitor.js phpmyadmin-5.1.4+dfsg1/js/dist/server/status/monitor.js --- phpmyadmin-5.1.3+dfsg1/js/dist/server/status/monitor.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/server/status/monitor.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * @fileoverview Javascript functions used in server status monitor page * @name Server Status Monitor diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/server/status/processes.js phpmyadmin-5.1.4+dfsg1/js/dist/server/status/processes.js --- phpmyadmin-5.1.3+dfsg1/js/dist/server/status/processes.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/server/status/processes.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * Server Status Processes * diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/server/status/queries.js phpmyadmin-5.1.4+dfsg1/js/dist/server/status/queries.js --- phpmyadmin-5.1.3+dfsg1/js/dist/server/status/queries.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/server/status/queries.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * @fileoverview Javascript functions used in server status query page * @name Server Status Query diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/server/status/sorter.js phpmyadmin-5.1.4+dfsg1/js/dist/server/status/sorter.js --- phpmyadmin-5.1.3+dfsg1/js/dist/server/status/sorter.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/server/status/sorter.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - // TODO: tablesorter shouldn't sort already sorted columns // eslint-disable-next-line no-unused-vars function initTableSorter(tabid) { diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/server/status/variables.js phpmyadmin-5.1.4+dfsg1/js/dist/server/status/variables.js --- phpmyadmin-5.1.3+dfsg1/js/dist/server/status/variables.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/server/status/variables.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * * diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/server/user_groups.js phpmyadmin-5.1.4+dfsg1/js/dist/server/user_groups.js --- phpmyadmin-5.1.3+dfsg1/js/dist/server/user_groups.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/server/user_groups.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * @fileoverview Javascript functions used in server user groups page * @name Server User Groups diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/server/variables.js phpmyadmin-5.1.4+dfsg1/js/dist/server/variables.js --- phpmyadmin-5.1.3+dfsg1/js/dist/server/variables.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/server/variables.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * @fileoverview Javascript functions used in server variables page * @name Server Replication diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/setup/ajax.js phpmyadmin-5.1.4+dfsg1/js/dist/setup/ajax.js --- phpmyadmin-5.1.3+dfsg1/js/dist/setup/ajax.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/setup/ajax.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /* eslint-disable no-unused-vars */ /** diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/setup/scripts.js phpmyadmin-5.1.4+dfsg1/js/dist/setup/scripts.js --- phpmyadmin-5.1.3+dfsg1/js/dist/setup/scripts.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/setup/scripts.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,6 +1,4 @@ -"use strict"; - -function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } +function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } /** * Functions used in Setup configuration forms diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/shortcuts_handler.js phpmyadmin-5.1.4+dfsg1/js/dist/shortcuts_handler.js --- phpmyadmin-5.1.3+dfsg1/js/dist/shortcuts_handler.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/shortcuts_handler.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * @fileoverview Handle shortcuts in various pages * @name Shortcuts handler diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/sql.js phpmyadmin-5.1.4+dfsg1/js/dist/sql.js --- phpmyadmin-5.1.3+dfsg1/js/dist/sql.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/sql.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * @fileoverview functions used wherever an sql query form is used * diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/table/change.js phpmyadmin-5.1.4+dfsg1/js/dist/table/change.js --- phpmyadmin-5.1.3+dfsg1/js/dist/table/change.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/table/change.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * @fileoverview function used in table data manipulation pages * diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/table/chart.js phpmyadmin-5.1.4+dfsg1/js/dist/table/chart.js --- phpmyadmin-5.1.3+dfsg1/js/dist/table/chart.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/table/chart.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /* global ColumnType, DataTable, JQPlotChartFactory */ // js/chart.js diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/table/find_replace.js phpmyadmin-5.1.4+dfsg1/js/dist/table/find_replace.js --- phpmyadmin-5.1.3+dfsg1/js/dist/table/find_replace.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/table/find_replace.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * Unbind all event handlers before tearing down a page */ diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/table/gis_visualization.js phpmyadmin-5.1.4+dfsg1/js/dist/table/gis_visualization.js --- phpmyadmin-5.1.3+dfsg1/js/dist/table/gis_visualization.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/table/gis_visualization.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,13 +1,9 @@ -"use strict"; - -function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } +function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } /** * @fileoverview functions used for visualizing GIS data * * @requires jquery - * @requires vendor/jquery/jquery.svg.js - * @requires vendor/jquery/jquery.mousewheel.js */ /* global drawOpenLayers PASSIVE_EVENT_LISTENERS */ @@ -151,6 +147,10 @@ y: e.pageY - position.top }; } +/** + * @param {WheelEvent} event + */ + function onGisMouseWheel(event) { if (event.deltaY === 0) { @@ -172,7 +172,7 @@ * * Actions Ajaxified here: * - * Zooming in and zooming out on mousewheel movement. + * Zooming in and zooming out on mouse wheel movement. * Panning the visualization on dragging. * Zooming in on double clicking. * Zooming out on clicking the zoom out button. diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/table/operations.js phpmyadmin-5.1.4+dfsg1/js/dist/table/operations.js --- phpmyadmin-5.1.3+dfsg1/js/dist/table/operations.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/table/operations.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * Unbind all event handlers before tearing down a page */ diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/table/relation.js phpmyadmin-5.1.4+dfsg1/js/dist/table/relation.js --- phpmyadmin-5.1.3+dfsg1/js/dist/table/relation.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/table/relation.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * for table relation */ diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/table/select.js phpmyadmin-5.1.4+dfsg1/js/dist/table/select.js --- phpmyadmin-5.1.3+dfsg1/js/dist/table/select.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/table/select.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * @fileoverview JavaScript functions used on /table/search * diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/table/structure.js phpmyadmin-5.1.4+dfsg1/js/dist/table/structure.js --- phpmyadmin-5.1.3+dfsg1/js/dist/table/structure.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/table/structure.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * @fileoverview functions used on the table structure page * @name Table Structure diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/table/tracking.js phpmyadmin-5.1.4+dfsg1/js/dist/table/tracking.js --- phpmyadmin-5.1.3+dfsg1/js/dist/table/tracking.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/table/tracking.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * Unbind all event handlers before tearing down the page */ diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/table/zoom_plot_jqplot.js phpmyadmin-5.1.4+dfsg1/js/dist/table/zoom_plot_jqplot.js --- phpmyadmin-5.1.3+dfsg1/js/dist/table/zoom_plot_jqplot.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/table/zoom_plot_jqplot.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - // TODO: change the axis /** diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/transformations/image_upload.js phpmyadmin-5.1.4+dfsg1/js/dist/transformations/image_upload.js --- phpmyadmin-5.1.3+dfsg1/js/dist/transformations/image_upload.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/transformations/image_upload.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * Image upload transformations plugin js * diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/transformations/json_editor.js phpmyadmin-5.1.4+dfsg1/js/dist/transformations/json_editor.js --- phpmyadmin-5.1.3+dfsg1/js/dist/transformations/json_editor.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/transformations/json_editor.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * JSON syntax highlighting transformation plugin * diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/transformations/json.js phpmyadmin-5.1.4+dfsg1/js/dist/transformations/json.js --- phpmyadmin-5.1.3+dfsg1/js/dist/transformations/json.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/transformations/json.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * JSON syntax highlighting transformation plugin */ diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/transformations/sql_editor.js phpmyadmin-5.1.4+dfsg1/js/dist/transformations/sql_editor.js --- phpmyadmin-5.1.3+dfsg1/js/dist/transformations/sql_editor.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/transformations/sql_editor.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * SQL syntax highlighting transformation plugin js * diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/transformations/xml_editor.js phpmyadmin-5.1.4+dfsg1/js/dist/transformations/xml_editor.js --- phpmyadmin-5.1.3+dfsg1/js/dist/transformations/xml_editor.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/transformations/xml_editor.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * XML editor plugin * diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/transformations/xml.js phpmyadmin-5.1.4+dfsg1/js/dist/transformations/xml.js --- phpmyadmin-5.1.3+dfsg1/js/dist/transformations/xml.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/transformations/xml.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /** * XML syntax highlighting transformation plugin */ diff -Nru phpmyadmin-5.1.3+dfsg1/js/dist/u2f.js phpmyadmin-5.1.4+dfsg1/js/dist/u2f.js --- phpmyadmin-5.1.3+dfsg1/js/dist/u2f.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/dist/u2f.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,3 @@ -"use strict"; - /* global u2f */ // js/vendor/u2f-api-polyfill.js AJAX.registerOnload('u2f.js', function () { diff -Nru phpmyadmin-5.1.3+dfsg1/js/src/designer/database.js phpmyadmin-5.1.4+dfsg1/js/src/designer/database.js --- phpmyadmin-5.1.3+dfsg1/js/src/designer/database.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/src/designer/database.js 2022-05-11 03:26:09.000000000 +0000 @@ -46,10 +46,17 @@ } }; - request.onerror = designerDB.onerror; + request.onerror = function () { + Functions.ajaxShowMessage(Messages.strIndexedDBNotWorking, null, 'error'); + }; }; designerDB.loadObject = function (table, id, callback) { + if (datastore === null) { + Functions.ajaxShowMessage(Messages.strIndexedDBNotWorking, null, 'error'); + return; + } + var db = datastore; var transaction = db.transaction([table], 'readwrite'); var objStore = transaction.objectStore(table); @@ -63,6 +70,11 @@ }; designerDB.loadAllObjects = function (table, callback) { + if (datastore === null) { + Functions.ajaxShowMessage(Messages.strIndexedDBNotWorking, null, 'error'); + return; + } + var db = datastore; var transaction = db.transaction([table], 'readwrite'); var objStore = transaction.objectStore(table); @@ -87,6 +99,11 @@ }; designerDB.loadFirstObject = function (table, callback) { + if (datastore === null) { + Functions.ajaxShowMessage(Messages.strIndexedDBNotWorking, null, 'error'); + return; + } + var db = datastore; var transaction = db.transaction([table], 'readwrite'); var objStore = transaction.objectStore(table); @@ -110,6 +127,11 @@ }; designerDB.addObject = function (table, obj, callback) { + if (datastore === null) { + Functions.ajaxShowMessage(Messages.strIndexedDBNotWorking, null, 'error'); + return; + } + var db = datastore; var transaction = db.transaction([table], 'readwrite'); var objStore = transaction.objectStore(table); @@ -125,6 +147,11 @@ }; designerDB.deleteObject = function (table, id, callback) { + if (datastore === null) { + Functions.ajaxShowMessage(Messages.strIndexedDBNotWorking, null, 'error'); + return; + } + var db = datastore; var transaction = db.transaction([table], 'readwrite'); var objStore = transaction.objectStore(table); diff -Nru phpmyadmin-5.1.3+dfsg1/js/src/functions.js phpmyadmin-5.1.4+dfsg1/js/src/functions.js --- phpmyadmin-5.1.3+dfsg1/js/src/functions.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/src/functions.js 2022-05-11 03:26:09.000000000 +0000 @@ -2262,7 +2262,7 @@ selfClosing = false; } // Figure out whether (or after how long) to remove the notification - if (newTimeOut === undefined) { + if (newTimeOut === undefined || newTimeOut === null) { newTimeOut = 5000; } else if (newTimeOut === false) { selfClosing = false; diff -Nru phpmyadmin-5.1.3+dfsg1/js/src/gis_data_editor.js phpmyadmin-5.1.4+dfsg1/js/src/gis_data_editor.js --- phpmyadmin-5.1.3+dfsg1/js/src/gis_data_editor.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/src/gis_data_editor.js 2022-05-11 03:26:09.000000000 +0000 @@ -95,17 +95,10 @@ var head = document.getElementsByTagName('head')[0]; var script; - // Loads a set of small JS file needed for the GIS editor - var smallScripts = ['js/vendor/jquery/jquery.svg.js', - 'js/vendor/jquery/jquery.mousewheel.js', - 'js/dist/table/gis_visualization.js']; - - for (var i = 0; i < smallScripts.length; i++) { - script = document.createElement('script'); - script.type = 'text/javascript'; - script.src = smallScripts[i]; - head.appendChild(script); - } + script = document.createElement('script'); + script.type = 'text/javascript'; + script.src = 'js/dist/table/gis_visualization.js'; + head.appendChild(script); // OpenLayers.js is BIG and takes time. So asynchronous loading would not work. // Load the JS and do a callback to load the content for the GIS Editor. diff -Nru phpmyadmin-5.1.3+dfsg1/js/src/server/privileges.js phpmyadmin-5.1.4+dfsg1/js/src/server/privileges.js --- phpmyadmin-5.1.3+dfsg1/js/src/server/privileges.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/src/server/privileges.js 2022-05-11 03:26:09.000000000 +0000 @@ -54,7 +54,6 @@ $(document).off('click', 'a.edit_user_group_anchor.ajax'); $(document).off('click', 'button.mult_submit[value=export]'); $(document).off('click', 'a.export_user_anchor.ajax'); - $(document).off('click', '#initials_table a.ajax'); $('#dropUsersDbCheckbox').off('click'); $(document).off('click', '.checkall_box'); $(document).off('change', '#checkbox_SSL_priv'); @@ -339,40 +338,6 @@ }); // end $.get }); // end export privileges - /** - * AJAX handler to Paginate the Users Table - * - * @see Functions.ajaxShowMessage() - * @name paginate_users_table_click - * @memberOf jQuery - */ - $(document).on('click', '#initials_table a.ajax', function (event) { - event.preventDefault(); - var $msgbox = Functions.ajaxShowMessage(); - $.get($(this).attr('href'), { 'ajax_request' : true }, function (data) { - if (typeof data !== 'undefined' && data.success === true) { - Functions.ajaxRemoveMessage($msgbox); - // This form is not on screen when first entering Privileges - // if there are more than 50 users - $('.alert-primary').remove(); - $('#usersForm').hide('medium').remove(); - $('#fieldset_add_user').hide('medium').remove(); - $('#initials_table') - .prop('id', 'initials_table_old') - .after(data.message).show('medium') - .siblings('h2').not($('#initials_table') - .prop('id', 'initials_table_old') - .after(data.message).show('medium') - .siblings('h2').first()) - .remove(); - // prevent double initials table - $('#initials_table_old').remove(); - } else { - Functions.ajaxShowMessage(data.error, false); - } - }); // end $.get - }); // end of the paginate users table - $(document).on('change', 'input[name="ssl_type"]', function () { var $div = $('#specified_div'); if ($('#ssl_type_SPECIFIED').is(':checked')) { diff -Nru phpmyadmin-5.1.3+dfsg1/js/src/table/gis_visualization.js phpmyadmin-5.1.4+dfsg1/js/src/table/gis_visualization.js --- phpmyadmin-5.1.3+dfsg1/js/src/table/gis_visualization.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/src/table/gis_visualization.js 2022-05-11 03:26:09.000000000 +0000 @@ -2,8 +2,6 @@ * @fileoverview functions used for visualizing GIS data * * @requires jquery - * @requires vendor/jquery/jquery.svg.js - * @requires vendor/jquery/jquery.mousewheel.js */ /* global drawOpenLayers PASSIVE_EVENT_LISTENERS */ // templates/table/gis_visualization/gis_visualization.twig @@ -149,6 +147,9 @@ }; } +/** + * @param {WheelEvent} event + */ function onGisMouseWheel (event) { if (event.deltaY === 0) { return; @@ -170,7 +171,7 @@ * * Actions Ajaxified here: * - * Zooming in and zooming out on mousewheel movement. + * Zooming in and zooming out on mouse wheel movement. * Panning the visualization on dragging. * Zooming in on double clicking. * Zooming out on clicking the zoom out button. diff -Nru phpmyadmin-5.1.3+dfsg1/js/vendor/codemirror/lib/codemirror.css phpmyadmin-5.1.4+dfsg1/js/vendor/codemirror/lib/codemirror.css --- phpmyadmin-5.1.3+dfsg1/js/vendor/codemirror/lib/codemirror.css 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/vendor/codemirror/lib/codemirror.css 2022-05-11 03:26:09.000000000 +0000 @@ -60,19 +60,13 @@ .cm-fat-cursor div.CodeMirror-cursors { z-index: 1; } -.cm-fat-cursor-mark { - background-color: rgba(20, 255, 20, 0.5); - -webkit-animation: blink 1.06s steps(1) infinite; - -moz-animation: blink 1.06s steps(1) infinite; - animation: blink 1.06s steps(1) infinite; -} -.cm-animate-fat-cursor { - width: auto; - -webkit-animation: blink 1.06s steps(1) infinite; - -moz-animation: blink 1.06s steps(1) infinite; - animation: blink 1.06s steps(1) infinite; - background-color: #7e7; -} +.cm-fat-cursor .CodeMirror-line::selection, +.cm-fat-cursor .CodeMirror-line > span::selection, +.cm-fat-cursor .CodeMirror-line > span > span::selection { background: transparent; } +.cm-fat-cursor .CodeMirror-line::-moz-selection, +.cm-fat-cursor .CodeMirror-line > span::-moz-selection, +.cm-fat-cursor .CodeMirror-line > span > span::-moz-selection { background: transparent; } +.cm-fat-cursor { caret-color: transparent; } @-moz-keyframes blink { 0% {} 50% { background-color: transparent; } @@ -170,6 +164,7 @@ height: 100%; outline: none; /* Prevent dragging from highlighting the element */ position: relative; + z-index: 0; } .CodeMirror-sizer { position: relative; diff -Nru phpmyadmin-5.1.3+dfsg1/js/vendor/codemirror/lib/codemirror.js phpmyadmin-5.1.4+dfsg1/js/vendor/codemirror/lib/codemirror.js --- phpmyadmin-5.1.3+dfsg1/js/vendor/codemirror/lib/codemirror.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/vendor/codemirror/lib/codemirror.js 2022-05-11 03:26:09.000000000 +0000 @@ -1324,7 +1324,7 @@ // Add a span to a line. function addMarkedSpan(line, span, op) { var inThisOp = op && window.WeakSet && (op.markedSpans || (op.markedSpans = new WeakSet)); - if (inThisOp && inThisOp.has(line.markedSpans)) { + if (inThisOp && line.markedSpans && inThisOp.has(line.markedSpans)) { line.markedSpans.push(span); } else { line.markedSpans = line.markedSpans ? line.markedSpans.concat([span]) : [span]; @@ -2351,12 +2351,14 @@ function mapFromLineView(lineView, line, lineN) { if (lineView.line == line) { return {map: lineView.measure.map, cache: lineView.measure.cache} } - for (var i = 0; i < lineView.rest.length; i++) - { if (lineView.rest[i] == line) - { return {map: lineView.measure.maps[i], cache: lineView.measure.caches[i]} } } - for (var i$1 = 0; i$1 < lineView.rest.length; i$1++) - { if (lineNo(lineView.rest[i$1]) > lineN) - { return {map: lineView.measure.maps[i$1], cache: lineView.measure.caches[i$1], before: true} } } + if (lineView.rest) { + for (var i = 0; i < lineView.rest.length; i++) + { if (lineView.rest[i] == line) + { return {map: lineView.measure.maps[i], cache: lineView.measure.caches[i]} } } + for (var i$1 = 0; i$1 < lineView.rest.length; i$1++) + { if (lineNo(lineView.rest[i$1]) > lineN) + { return {map: lineView.measure.maps[i$1], cache: lineView.measure.caches[i$1], before: true} } } + } } // Render a line into the hidden node display.externalMeasured. Used @@ -2583,9 +2585,11 @@ } function widgetTopHeight(lineObj) { + var ref = visualLine(lineObj); + var widgets = ref.widgets; var height = 0; - if (lineObj.widgets) { for (var i = 0; i < lineObj.widgets.length; ++i) { if (lineObj.widgets[i].above) - { height += widgetHeight(lineObj.widgets[i]); } } } + if (widgets) { for (var i = 0; i < widgets.length; ++i) { if (widgets[i].above) + { height += widgetHeight(widgets[i]); } } } return height } @@ -3150,13 +3154,19 @@ var curFragment = result.cursors = document.createDocumentFragment(); var selFragment = result.selection = document.createDocumentFragment(); + var customCursor = cm.options.$customCursor; + if (customCursor) { primary = true; } for (var i = 0; i < doc.sel.ranges.length; i++) { if (!primary && i == doc.sel.primIndex) { continue } var range = doc.sel.ranges[i]; if (range.from().line >= cm.display.viewTo || range.to().line < cm.display.viewFrom) { continue } var collapsed = range.empty(); - if (collapsed || cm.options.showCursorWhenSelecting) - { drawSelectionCursor(cm, range.head, curFragment); } + if (customCursor) { + var head = customCursor(cm, range); + if (head) { drawSelectionCursor(cm, head, curFragment); } + } else if (collapsed || cm.options.showCursorWhenSelecting) { + drawSelectionCursor(cm, range.head, curFragment); + } if (!collapsed) { drawSelectionRange(cm, range, selFragment); } } @@ -3174,9 +3184,8 @@ if (/\bcm-fat-cursor\b/.test(cm.getWrapperElement().className)) { var charPos = charCoords(cm, head, "div", null, null); - if (charPos.right - charPos.left > 0) { - cursor.style.width = (charPos.right - charPos.left) + "px"; - } + var width = charPos.right - charPos.left; + cursor.style.width = (width > 0 ? width : cm.defaultCharWidth()) + "px"; } if (pos.other) { @@ -3649,6 +3658,7 @@ this.vert.firstChild.style.height = Math.max(0, measure.scrollHeight - measure.clientHeight + totalHeight) + "px"; } else { + this.vert.scrollTop = 0; this.vert.style.display = ""; this.vert.firstChild.style.height = "0"; } @@ -9832,7 +9842,7 @@ addLegacyProps(CodeMirror); - CodeMirror.version = "5.63.3"; + CodeMirror.version = "5.65.3"; return CodeMirror; diff -Nru phpmyadmin-5.1.3+dfsg1/js/vendor/codemirror/mode/javascript/javascript.js phpmyadmin-5.1.4+dfsg1/js/vendor/codemirror/mode/javascript/javascript.js --- phpmyadmin-5.1.3+dfsg1/js/vendor/codemirror/mode/javascript/javascript.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/vendor/codemirror/mode/javascript/javascript.js 2022-05-11 03:26:09.000000000 +0000 @@ -330,6 +330,7 @@ cx.state.context = new Context(cx.state.context, cx.state.localVars, true) cx.state.localVars = null } + pushcontext.lex = pushblockcontext.lex = true function popcontext() { cx.state.localVars = cx.state.context.vars cx.state.context = cx.state.context.prev diff -Nru phpmyadmin-5.1.3+dfsg1/js/vendor/codemirror/mode/sql/sql.js phpmyadmin-5.1.4+dfsg1/js/vendor/codemirror/mode/sql/sql.js --- phpmyadmin-5.1.3+dfsg1/js/vendor/codemirror/mode/sql/sql.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/vendor/codemirror/mode/sql/sql.js 2022-05-11 03:26:09.000000000 +0000 @@ -122,9 +122,9 @@ if (dateSQL.hasOwnProperty(word) && (stream.match(/^( )+'[^']*'/) || stream.match(/^( )+"[^"]*"/))) return "number"; if (atoms.hasOwnProperty(word)) return "atom"; - if (builtin.hasOwnProperty(word)) return "builtin"; + if (builtin.hasOwnProperty(word)) return "type"; if (keywords.hasOwnProperty(word)) return "keyword"; - if (client.hasOwnProperty(word)) return "string-2"; + if (client.hasOwnProperty(word)) return "builtin"; return null; } } @@ -332,7 +332,7 @@ CodeMirror.defineMIME("text/x-mariadb", { name: "sql", client: set("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"), - keywords: set(sqlKeywords + "accessible action add after algorithm all always analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general generated get global grant grants group groupby_concat handler hard hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password persistent phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show shutdown signal slave slow smallint snapshot soft soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views virtual warnings when while with work write xa xor year_month zerofill begin do then else loop repeat"), + keywords: set(sqlKeywords + "accessible action add after algorithm all always analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general generated get global grant grants group group_concat handler hard hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password persistent phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show shutdown signal slave slow smallint snapshot soft soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views virtual warnings when while with work write xa xor year_month zerofill begin do then else loop repeat"), builtin: set("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric"), atoms: set("false true null unknown"), operatorChars: /^[*+\-%<>!=&|^]/, @@ -452,7 +452,7 @@ CodeMirror.defineMIME("text/x-sparksql", { name: "sql", keywords: set("add after all alter analyze and anti archive array as asc at between bucket buckets by cache cascade case cast change clear cluster clustered codegen collection column columns comment commit compact compactions compute concatenate cost create cross cube current current_date current_timestamp database databases data dbproperties defined delete delimited deny desc describe dfs directories distinct distribute drop else end escaped except exchange exists explain export extended external false fields fileformat first following for format formatted from full function functions global grant group grouping having if ignore import in index indexes inner inpath inputformat insert intersect interval into is items join keys last lateral lazy left like limit lines list load local location lock locks logical macro map minus msck natural no not null nulls of on optimize option options or order out outer outputformat over overwrite partition partitioned partitions percent preceding principals purge range recordreader recordwriter recover reduce refresh regexp rename repair replace reset restrict revoke right rlike role roles rollback rollup row rows schema schemas select semi separated serde serdeproperties set sets show skewed sort sorted start statistics stored stratify struct table tables tablesample tblproperties temp temporary terminated then to touch transaction transactions transform true truncate unarchive unbounded uncache union unlock unset use using values view when where window with"), - builtin: set("tinyint smallint int bigint boolean float double string binary timestamp decimal array map struct uniontype delimited serde sequencefile textfile rcfile inputformat outputformat"), + builtin: set("abs acos acosh add_months aggregate and any approx_count_distinct approx_percentile array array_contains array_distinct array_except array_intersect array_join array_max array_min array_position array_remove array_repeat array_sort array_union arrays_overlap arrays_zip ascii asin asinh assert_true atan atan2 atanh avg base64 between bigint bin binary bit_and bit_count bit_get bit_length bit_or bit_xor bool_and bool_or boolean bround btrim cardinality case cast cbrt ceil ceiling char char_length character_length chr coalesce collect_list collect_set concat concat_ws conv corr cos cosh cot count count_if count_min_sketch covar_pop covar_samp crc32 cume_dist current_catalog current_database current_date current_timestamp current_timezone current_user date date_add date_format date_from_unix_date date_part date_sub date_trunc datediff day dayofmonth dayofweek dayofyear decimal decode degrees delimited dense_rank div double e element_at elt encode every exists exp explode explode_outer expm1 extract factorial filter find_in_set first first_value flatten float floor forall format_number format_string from_csv from_json from_unixtime from_utc_timestamp get_json_object getbit greatest grouping grouping_id hash hex hour hypot if ifnull in initcap inline inline_outer input_file_block_length input_file_block_start input_file_name inputformat instr int isnan isnotnull isnull java_method json_array_length json_object_keys json_tuple kurtosis lag last last_day last_value lcase lead least left length levenshtein like ln locate log log10 log1p log2 lower lpad ltrim make_date make_dt_interval make_interval make_timestamp make_ym_interval map map_concat map_entries map_filter map_from_arrays map_from_entries map_keys map_values map_zip_with max max_by md5 mean min min_by minute mod monotonically_increasing_id month months_between named_struct nanvl negative next_day not now nth_value ntile nullif nvl nvl2 octet_length or outputformat overlay parse_url percent_rank percentile percentile_approx pi pmod posexplode posexplode_outer position positive pow power printf quarter radians raise_error rand randn random rank rcfile reflect regexp regexp_extract regexp_extract_all regexp_like regexp_replace repeat replace reverse right rint rlike round row_number rpad rtrim schema_of_csv schema_of_json second sentences sequence sequencefile serde session_window sha sha1 sha2 shiftleft shiftright shiftrightunsigned shuffle sign signum sin sinh size skewness slice smallint some sort_array soundex space spark_partition_id split sqrt stack std stddev stddev_pop stddev_samp str_to_map string struct substr substring substring_index sum tan tanh textfile timestamp timestamp_micros timestamp_millis timestamp_seconds tinyint to_csv to_date to_json to_timestamp to_unix_timestamp to_utc_timestamp transform transform_keys transform_values translate trim trunc try_add try_divide typeof ucase unbase64 unhex uniontype unix_date unix_micros unix_millis unix_seconds unix_timestamp upper uuid var_pop var_samp variance version weekday weekofyear when width_bucket window xpath xpath_boolean xpath_double xpath_float xpath_int xpath_long xpath_number xpath_short xpath_string xxhash64 year zip_with"), atoms: set("false true null"), operatorChars: /^[*\/+\-%<>!=~&|^]/, dateSQL: set("date time timestamp"), diff -Nru phpmyadmin-5.1.3+dfsg1/js/vendor/jquery/jquery-migrate.js phpmyadmin-5.1.4+dfsg1/js/vendor/jquery/jquery-migrate.js --- phpmyadmin-5.1.3+dfsg1/js/vendor/jquery/jquery-migrate.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/vendor/jquery/jquery-migrate.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,5 +1,5 @@ /*! - * jQuery Migrate - v3.3.2 - 2020-11-17T23:22Z + * jQuery Migrate - v3.4.0 - 2022-03-24T16:30Z * Copyright OpenJS Foundation and other contributors */ ( function( factory ) { @@ -24,7 +24,7 @@ } )( function( jQuery, window ) { "use strict"; -jQuery.migrateVersion = "3.3.2"; +jQuery.migrateVersion = "3.4.0"; // Returns 0 if v1 == v2, -1 if v1 < v2, 1 if v1 > v2 function compareVersions( v1, v2 ) { @@ -48,6 +48,40 @@ return compareVersions( jQuery.fn.jquery, version ) >= 0; } +// A map from disabled patch codes to `true`. This should really +// be a `Set` but those are unsupported in IE. +var disabledPatches = Object.create( null ); + +// Don't apply patches for specified codes. Helpful for code bases +// where some Migrate warnings have been addressed and it's desirable +// to avoid needless patches or false positives. +jQuery.migrateDisablePatches = function() { + var i; + for ( i = 0; i < arguments.length; i++ ) { + disabledPatches[ arguments[ i ] ] = true; + } +}; + +// Allow enabling patches disabled via `jQuery.migrateDisablePatches`. +// Helpful if you want to disable a patch only for some code that won't +// be updated soon to be able to focus on other warnings - and enable it +// immediately after such a call: +// ```js +// jQuery.migrateDisablePatches( "workaroundA" ); +// elem.pluginViolatingWarningA( "pluginMethod" ); +// jQuery.migrateEnablePatches( "workaroundA" ); +// ``` +jQuery.migrateEnablePatches = function() { + var i; + for ( i = 0; i < arguments.length; i++ ) { + delete disabledPatches[ arguments[ i ] ]; + } +}; + +jQuery.migrateIsPatchEnabled = function( patchCode ) { + return !disabledPatches[ patchCode ]; +}; + ( function() { // Support: IE9 only @@ -91,11 +125,12 @@ jQuery.migrateWarnings.length = 0; }; -function migrateWarn( msg ) { +function migrateWarn( code, msg ) { var console = window.console; - if ( !jQuery.migrateDeduplicateWarnings || !warnedAbout[ msg ] ) { + if ( jQuery.migrateIsPatchEnabled( code ) && + ( !jQuery.migrateDeduplicateWarnings || !warnedAbout[ msg ] ) ) { warnedAbout[ msg ] = true; - jQuery.migrateWarnings.push( msg ); + jQuery.migrateWarnings.push( msg + " [" + code + "]" ); if ( console && console.warn && !jQuery.migrateMute ) { console.warn( "JQMIGRATE: " + msg ); if ( jQuery.migrateTrace && console.trace ) { @@ -105,32 +140,62 @@ } } -function migrateWarnProp( obj, prop, value, msg ) { +function migrateWarnProp( obj, prop, value, code, msg ) { Object.defineProperty( obj, prop, { configurable: true, enumerable: true, get: function() { - migrateWarn( msg ); + migrateWarn( code, msg ); return value; }, set: function( newValue ) { - migrateWarn( msg ); + migrateWarn( code, msg ); value = newValue; } } ); } -function migrateWarnFunc( obj, prop, newFunc, msg ) { +function migrateWarnFuncInternal( obj, prop, newFunc, code, msg ) { + var finalFunc, + origFunc = obj[ prop ]; + obj[ prop ] = function() { - migrateWarn( msg ); - return newFunc.apply( this, arguments ); + + // If `msg` not provided, do not warn; more sophisticated warnings + // logic is most likely embedded in `newFunc`, in that case here + // we just care about the logic choosing the proper implementation + // based on whether the patch is disabled or not. + if ( msg ) { + migrateWarn( code, msg ); + } + + // Since patches can be disabled & enabled dynamically, we + // need to decide which implementation to run on each invocation. + finalFunc = jQuery.migrateIsPatchEnabled( code ) ? + newFunc : + + // The function may not have existed originally so we need a fallback. + ( origFunc || jQuery.noop ); + + return finalFunc.apply( this, arguments ); }; } +function migratePatchAndWarnFunc( obj, prop, newFunc, code, msg ) { + if ( !msg ) { + throw new Error( "No warning message provided" ); + } + return migrateWarnFuncInternal( obj, prop, newFunc, code, msg ); +} + +function migratePatchFunc( obj, prop, newFunc, code ) { + return migrateWarnFuncInternal( obj, prop, newFunc, code ); +} + if ( window.document.compatMode === "BackCompat" ) { - // JQuery has never supported or tested Quirks Mode - migrateWarn( "jQuery is not compatible with Quirks Mode" ); + // jQuery has never supported or tested Quirks Mode + migrateWarn( "quirks", "jQuery is not compatible with Quirks Mode" ); } var findProp, @@ -145,21 +210,27 @@ // Make sure we trim BOM and NBSP rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; -jQuery.fn.init = function( arg1 ) { +migratePatchFunc( jQuery.fn, "init", function( arg1 ) { var args = Array.prototype.slice.call( arguments ); - if ( typeof arg1 === "string" && arg1 === "#" ) { + if ( jQuery.migrateIsPatchEnabled( "selector-empty-id" ) && + typeof arg1 === "string" && arg1 === "#" ) { - // JQuery( "#" ) is a bogus ID selector, but it returned an empty set before jQuery 3.0 - migrateWarn( "jQuery( '#' ) is not a valid selector" ); + // JQuery( "#" ) is a bogus ID selector, but it returned an empty set + // before jQuery 3.0 + migrateWarn( "selector-empty-id", "jQuery( '#' ) is not a valid selector" ); args[ 0 ] = []; } return oldInit.apply( this, args ); -}; +}, "selector-empty-id" ); + +// This is already done in Core but the above patch will lose this assignment +// so we need to redo it. It doesn't matter whether the patch is enabled or not +// as the method is always going to be a Migrate-created wrapper. jQuery.fn.init.prototype = jQuery.fn; -jQuery.find = function( selector ) { +migratePatchFunc( jQuery, "find", function( selector ) { var args = Array.prototype.slice.call( arguments ); // Support: PhantomJS 1.x @@ -181,16 +252,18 @@ // Note that there may be false alarms if selector uses jQuery extensions try { window.document.querySelector( selector ); - migrateWarn( "Attribute selector with '#' must be quoted: " + args[ 0 ] ); + migrateWarn( "selector-hash", + "Attribute selector with '#' must be quoted: " + args[ 0 ] ); args[ 0 ] = selector; } catch ( err2 ) { - migrateWarn( "Attribute selector with '#' was not fixed: " + args[ 0 ] ); + migrateWarn( "selector-hash", + "Attribute selector with '#' was not fixed: " + args[ 0 ] ); } } } return oldFind.apply( this, args ); -}; +}, "selector-hash" ); // Copy properties attached to original jQuery.find method (e.g. .attr, .isXML) for ( findProp in oldFind ) { @@ -200,53 +273,53 @@ } // The number of elements contained in the matched element set -migrateWarnFunc( jQuery.fn, "size", function() { +migratePatchAndWarnFunc( jQuery.fn, "size", function() { return this.length; -}, +}, "size", "jQuery.fn.size() is deprecated and removed; use the .length property" ); -migrateWarnFunc( jQuery, "parseJSON", function() { +migratePatchAndWarnFunc( jQuery, "parseJSON", function() { return JSON.parse.apply( null, arguments ); -}, +}, "parseJSON", "jQuery.parseJSON is deprecated; use JSON.parse" ); -migrateWarnFunc( jQuery, "holdReady", jQuery.holdReady, - "jQuery.holdReady is deprecated" ); +migratePatchAndWarnFunc( jQuery, "holdReady", jQuery.holdReady, + "holdReady", "jQuery.holdReady is deprecated" ); -migrateWarnFunc( jQuery, "unique", jQuery.uniqueSort, - "jQuery.unique is deprecated; use jQuery.uniqueSort" ); +migratePatchAndWarnFunc( jQuery, "unique", jQuery.uniqueSort, + "unique", "jQuery.unique is deprecated; use jQuery.uniqueSort" ); // Now jQuery.expr.pseudos is the standard incantation -migrateWarnProp( jQuery.expr, "filters", jQuery.expr.pseudos, +migrateWarnProp( jQuery.expr, "filters", jQuery.expr.pseudos, "expr-pre-pseudos", "jQuery.expr.filters is deprecated; use jQuery.expr.pseudos" ); -migrateWarnProp( jQuery.expr, ":", jQuery.expr.pseudos, +migrateWarnProp( jQuery.expr, ":", jQuery.expr.pseudos, "expr-pre-pseudos", "jQuery.expr[':'] is deprecated; use jQuery.expr.pseudos" ); // Prior to jQuery 3.1.1 there were internal refs so we don't warn there if ( jQueryVersionSince( "3.1.1" ) ) { - migrateWarnFunc( jQuery, "trim", function( text ) { + migratePatchAndWarnFunc( jQuery, "trim", function( text ) { return text == null ? "" : ( text + "" ).replace( rtrim, "" ); - }, + }, "trim", "jQuery.trim is deprecated; use String.prototype.trim" ); } // Prior to jQuery 3.2 there were internal refs so we don't warn there if ( jQueryVersionSince( "3.2.0" ) ) { - migrateWarnFunc( jQuery, "nodeName", function( elem, name ) { + migratePatchAndWarnFunc( jQuery, "nodeName", function( elem, name ) { return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); - }, + }, "nodeName", "jQuery.nodeName is deprecated" ); - migrateWarnFunc( jQuery, "isArray", Array.isArray, + migratePatchAndWarnFunc( jQuery, "isArray", Array.isArray, "isArray", "jQuery.isArray is deprecated; use Array.isArray" ); } if ( jQueryVersionSince( "3.3.0" ) ) { - migrateWarnFunc( jQuery, "isNumeric", function( obj ) { + migratePatchAndWarnFunc( jQuery, "isNumeric", function( obj ) { // As of jQuery 3.0, isNumeric is limited to // strings and numbers (primitives or objects) @@ -258,7 +331,7 @@ // ...but misinterprets leading-number strings, e.g. hex literals ("0x...") // subtraction forces infinities to NaN !isNaN( obj - parseFloat( obj ) ); - }, + }, "isNumeric", "jQuery.isNumeric() is deprecated" ); @@ -269,7 +342,7 @@ class2type[ "[object " + name + "]" ] = name.toLowerCase(); } ); - migrateWarnFunc( jQuery, "type", function( obj ) { + migratePatchAndWarnFunc( jQuery, "type", function( obj ) { if ( obj == null ) { return obj + ""; } @@ -278,19 +351,19 @@ return typeof obj === "object" || typeof obj === "function" ? class2type[ Object.prototype.toString.call( obj ) ] || "object" : typeof obj; - }, + }, "type", "jQuery.type is deprecated" ); - migrateWarnFunc( jQuery, "isFunction", + migratePatchAndWarnFunc( jQuery, "isFunction", function( obj ) { return typeof obj === "function"; - }, + }, "isFunction", "jQuery.isFunction() is deprecated" ); - migrateWarnFunc( jQuery, "isWindow", + migratePatchAndWarnFunc( jQuery, "isWindow", function( obj ) { return obj != null && obj === obj.window; - }, + }, "isWindow", "jQuery.isWindow() is deprecated" ); } @@ -301,21 +374,21 @@ var oldAjax = jQuery.ajax, rjsonp = /(=)\?(?=&|$)|\?\?/; -jQuery.ajax = function( ) { +migratePatchFunc( jQuery, "ajax", function() { var jQXHR = oldAjax.apply( this, arguments ); // Be sure we got a jQXHR (e.g., not sync) if ( jQXHR.promise ) { - migrateWarnFunc( jQXHR, "success", jQXHR.done, + migratePatchAndWarnFunc( jQXHR, "success", jQXHR.done, "jqXHR-methods", "jQXHR.success is deprecated and removed" ); - migrateWarnFunc( jQXHR, "error", jQXHR.fail, + migratePatchAndWarnFunc( jQXHR, "error", jQXHR.fail, "jqXHR-methods", "jQXHR.error is deprecated and removed" ); - migrateWarnFunc( jQXHR, "complete", jQXHR.always, + migratePatchAndWarnFunc( jQXHR, "complete", jQXHR.always, "jqXHR-methods", "jQXHR.complete is deprecated and removed" ); } return jQXHR; -}; +}, "jqXHR-methods" ); // Only trigger the logic in jQuery <4 as the JSON-to-JSONP auto-promotion // behavior is gone in jQuery 4.0 and as it has security implications, we don't @@ -334,7 +407,7 @@ .indexOf( "application/x-www-form-urlencoded" ) === 0 && rjsonp.test( s.data ) ) ) { - migrateWarn( "JSON-to-JSONP auto-promotion is deprecated" ); + migrateWarn( "jsonp-promotion", "JSON-to-JSONP auto-promotion is deprecated" ); } } ); } @@ -345,27 +418,29 @@ oldToggleClass = jQuery.fn.toggleClass, rmatchNonSpace = /\S+/g; -jQuery.fn.removeAttr = function( name ) { +migratePatchFunc( jQuery.fn, "removeAttr", function( name ) { var self = this; jQuery.each( name.match( rmatchNonSpace ), function( _i, attr ) { if ( jQuery.expr.match.bool.test( attr ) ) { - migrateWarn( "jQuery.fn.removeAttr no longer sets boolean properties: " + attr ); + migrateWarn( "removeAttr-bool", + "jQuery.fn.removeAttr no longer sets boolean properties: " + attr ); self.prop( attr, false ); } } ); return oldRemoveAttr.apply( this, arguments ); -}; +}, "removeAttr-bool" ); -jQuery.fn.toggleClass = function( state ) { +migratePatchFunc( jQuery.fn, "toggleClass", function( state ) { // Only deprecating no-args or single boolean arg if ( state !== undefined && typeof state !== "boolean" ) { + return oldToggleClass.apply( this, arguments ); } - migrateWarn( "jQuery.fn.toggleClass( boolean ) is deprecated" ); + migrateWarn( "toggleClass-bool", "jQuery.fn.toggleClass( boolean ) is deprecated" ); // Toggle entire class name of each element return this.each( function() { @@ -387,7 +462,7 @@ ); } } ); -}; +}, "toggleClass-bool" ); function camelCase( string ) { return string.replace( /-([a-z])/g, function( _, letter ) { @@ -395,7 +470,7 @@ } ); } -var oldFnCss, +var origFnCss, internalSwapCall = false, ralphaStart = /^[a-z]/, @@ -440,12 +515,12 @@ } ); } -jQuery.swap = function( elem, options, callback, args ) { +migratePatchFunc( jQuery, "swap", function( elem, options, callback, args ) { var ret, name, old = {}; if ( !internalSwapCall ) { - migrateWarn( "jQuery.swap() is undocumented and deprecated" ); + migrateWarn( "swap", "jQuery.swap() is undocumented and deprecated" ); } // Remember the old values, and insert the new ones @@ -462,22 +537,53 @@ } return ret; -}; +}, "swap" ); if ( jQueryVersionSince( "3.4.0" ) && typeof Proxy !== "undefined" ) { - jQuery.cssProps = new Proxy( jQuery.cssProps || {}, { set: function() { - migrateWarn( "JQMIGRATE: jQuery.cssProps is deprecated" ); + migrateWarn( "cssProps", "jQuery.cssProps is deprecated" ); return Reflect.set.apply( this, arguments ); } } ); } -// Create a dummy jQuery.cssNumber if missing. It won't be used by jQuery but -// it will prevent code adding new keys to it unconditionally from crashing. -if ( !jQuery.cssNumber ) { - jQuery.cssNumber = {}; +// In jQuery >=4 where jQuery.cssNumber is missing fill it with the latest 3.x version: +// https://github.com/jquery/jquery/blob/3.6.0/src/css.js#L212-L233 +// This way, number values for the CSS properties below won't start triggering +// Migrate warnings when jQuery gets updated to >=4.0.0 (gh-438). +if ( jQueryVersionSince( "4.0.0" ) && typeof Proxy !== "undefined" ) { + jQuery.cssNumber = new Proxy( { + animationIterationCount: true, + columnCount: true, + fillOpacity: true, + flexGrow: true, + flexShrink: true, + fontWeight: true, + gridArea: true, + gridColumn: true, + gridColumnEnd: true, + gridColumnStart: true, + gridRow: true, + gridRowEnd: true, + gridRowStart: true, + lineHeight: true, + opacity: true, + order: true, + orphans: true, + widows: true, + zIndex: true, + zoom: true + }, { + get: function() { + migrateWarn( "css-number", "jQuery.cssNumber is deprecated" ); + return Reflect.get.apply( this, arguments ); + }, + set: function() { + migrateWarn( "css-number", "jQuery.cssNumber is deprecated" ); + return Reflect.set.apply( this, arguments ); + } + } ); } function isAutoPx( prop ) { @@ -489,56 +595,63 @@ rautoPx.test( prop[ 0 ].toUpperCase() + prop.slice( 1 ) ); } -oldFnCss = jQuery.fn.css; +origFnCss = jQuery.fn.css; -jQuery.fn.css = function( name, value ) { +migratePatchFunc( jQuery.fn, "css", function( name, value ) { var camelName, origThis = this; + if ( name && typeof name === "object" && !Array.isArray( name ) ) { jQuery.each( name, function( n, v ) { jQuery.fn.css.call( origThis, n, v ); } ); return this; } + if ( typeof value === "number" ) { camelName = camelCase( name ); if ( !isAutoPx( camelName ) && !jQuery.cssNumber[ camelName ] ) { - migrateWarn( "Number-typed values are deprecated for jQuery.fn.css( \"" + + migrateWarn( "css-number", + "Number-typed values are deprecated for jQuery.fn.css( \"" + name + "\", value )" ); } } - return oldFnCss.apply( this, arguments ); -}; + return origFnCss.apply( this, arguments ); +}, "css-number" ); -var oldData = jQuery.data; +var origData = jQuery.data; -jQuery.data = function( elem, name, value ) { +migratePatchFunc( jQuery, "data", function( elem, name, value ) { var curData, sameKeys, key; // Name can be an object, and each entry in the object is meant to be set as data if ( name && typeof name === "object" && arguments.length === 2 ) { - curData = jQuery.hasData( elem ) && oldData.call( this, elem ); + + curData = jQuery.hasData( elem ) && origData.call( this, elem ); sameKeys = {}; for ( key in name ) { if ( key !== camelCase( key ) ) { - migrateWarn( "jQuery.data() always sets/gets camelCased names: " + key ); + migrateWarn( "data-camelCase", + "jQuery.data() always sets/gets camelCased names: " + key ); curData[ key ] = name[ key ]; } else { sameKeys[ key ] = name[ key ]; } } - oldData.call( this, elem, sameKeys ); + origData.call( this, elem, sameKeys ); return name; } // If the name is transformed, look for the un-transformed name in the data object if ( name && typeof name === "string" && name !== camelCase( name ) ) { - curData = jQuery.hasData( elem ) && oldData.call( this, elem ); + + curData = jQuery.hasData( elem ) && origData.call( this, elem ); if ( curData && name in curData ) { - migrateWarn( "jQuery.data() always sets/gets camelCased names: " + name ); + migrateWarn( "data-camelCase", + "jQuery.data() always sets/gets camelCased names: " + name ); if ( arguments.length > 2 ) { curData[ name ] = value; } @@ -546,8 +659,8 @@ } } - return oldData.apply( this, arguments ); -}; + return origData.apply( this, arguments ); +}, "data-camelCase" ); // Support jQuery slim which excludes the effects module if ( jQuery.fx ) { @@ -558,9 +671,10 @@ return pct; }; -jQuery.Tween.prototype.run = function( ) { +migratePatchFunc( jQuery.Tween.prototype, "run", function( ) { if ( jQuery.easing[ this.easing ].length > 1 ) { migrateWarn( + "easing-one-arg", "'jQuery.easing." + this.easing.toString() + "' should use only one argument" ); @@ -568,9 +682,9 @@ } oldTweenRun.apply( this, arguments ); -}; +}, "easing-one-arg" ); -intervalValue = jQuery.fx.interval || 13; +intervalValue = jQuery.fx.interval; intervalMsg = "jQuery.fx.interval is deprecated"; // Support: IE9, Android <=4.4 @@ -582,12 +696,17 @@ enumerable: true, get: function() { if ( !window.document.hidden ) { - migrateWarn( intervalMsg ); + migrateWarn( "fx-interval", intervalMsg ); } - return intervalValue; + + // Only fallback to the default if patch is enabled + if ( !jQuery.migrateIsPatchEnabled( "fx-interval" ) ) { + return intervalValue; + } + return intervalValue === undefined ? 13 : intervalValue; }, set: function( newValue ) { - migrateWarn( intervalMsg ); + migrateWarn( "fx-interval", intervalMsg ); intervalValue = newValue; } } ); @@ -603,16 +722,18 @@ jQuery.event.fixHooks = {}; migrateWarnProp( jQuery.event.props, "concat", jQuery.event.props.concat, + "event-old-patch", "jQuery.event.props.concat() is deprecated and removed" ); -jQuery.event.fix = function( originalEvent ) { +migratePatchFunc( jQuery.event, "fix", function( originalEvent ) { var event, type = originalEvent.type, fixHook = this.fixHooks[ type ], props = jQuery.event.props; if ( props.length ) { - migrateWarn( "jQuery.event.props are deprecated and removed: " + props.join() ); + migrateWarn( "event-old-patch", + "jQuery.event.props are deprecated and removed: " + props.join() ); while ( props.length ) { jQuery.event.addProp( props.pop() ); } @@ -620,7 +741,8 @@ if ( fixHook && !fixHook._migrated_ ) { fixHook._migrated_ = true; - migrateWarn( "jQuery.event.fixHooks are deprecated and removed: " + type ); + migrateWarn( "event-old-patch", + "jQuery.event.fixHooks are deprecated and removed: " + type ); if ( ( props = fixHook.props ) && props.length ) { while ( props.length ) { jQuery.event.addProp( props.pop() ); @@ -630,21 +752,24 @@ event = originalFix.call( this, originalEvent ); - return fixHook && fixHook.filter ? fixHook.filter( event, originalEvent ) : event; -}; + return fixHook && fixHook.filter ? + fixHook.filter( event, originalEvent ) : + event; +}, "event-old-patch" ); -jQuery.event.add = function( elem, types ) { +migratePatchFunc( jQuery.event, "add", function( elem, types ) { // This misses the multiple-types case but that seems awfully rare if ( elem === window && types === "load" && window.document.readyState === "complete" ) { - migrateWarn( "jQuery(window).on('load'...) called after load event occurred" ); + migrateWarn( "load-after-event", + "jQuery(window).on('load'...) called after load event occurred" ); } return oldEventAdd.apply( this, arguments ); -}; +}, "load-after-event" ); jQuery.each( [ "load", "unload", "error" ], function( _, name ) { - jQuery.fn[ name ] = function() { + migratePatchFunc( jQuery.fn, name, function() { var args = Array.prototype.slice.call( arguments, 0 ); // If this is an ajax load() the first arg should be the string URL; @@ -655,7 +780,8 @@ return oldLoad.apply( this, args ); } - migrateWarn( "jQuery.fn." + name + "() is deprecated" ); + migrateWarn( "shorthand-removed-v3", + "jQuery.fn." + name + "() is deprecated" ); args.splice( 0, 0, name ); if ( arguments.length ) { @@ -668,7 +794,7 @@ // See http://bugs.jquery.com/ticket/11820 this.triggerHandler.apply( this, args ); return this; - }; + }, "shorthand-removed-v3" ); } ); @@ -678,12 +804,13 @@ function( _i, name ) { // Handle event binding - jQuery.fn[ name ] = function( data, fn ) { - migrateWarn( "jQuery.fn." + name + "() event shorthand is deprecated" ); + migratePatchAndWarnFunc( jQuery.fn, name, function( data, fn ) { return arguments.length > 0 ? this.on( name, null, data, fn ) : this.trigger( name ); - }; + }, + "shorthand-deprecated-v3", + "jQuery.fn." + name + "() event shorthand is deprecated" ); } ); // Trigger "ready" event only once, on document ready @@ -694,39 +821,30 @@ jQuery.event.special.ready = { setup: function() { if ( this === window.document ) { - migrateWarn( "'ready' event is deprecated" ); + migrateWarn( "ready-event", "'ready' event is deprecated" ); } } }; -jQuery.fn.extend( { - - bind: function( types, data, fn ) { - migrateWarn( "jQuery.fn.bind() is deprecated" ); - return this.on( types, null, data, fn ); - }, - unbind: function( types, fn ) { - migrateWarn( "jQuery.fn.unbind() is deprecated" ); - return this.off( types, null, fn ); - }, - delegate: function( selector, types, data, fn ) { - migrateWarn( "jQuery.fn.delegate() is deprecated" ); - return this.on( types, selector, data, fn ); - }, - undelegate: function( selector, types, fn ) { - migrateWarn( "jQuery.fn.undelegate() is deprecated" ); - return arguments.length === 1 ? - this.off( selector, "**" ) : - this.off( types, selector || "**", fn ); - }, - hover: function( fnOver, fnOut ) { - migrateWarn( "jQuery.fn.hover() is deprecated" ); - return this.on( "mouseenter", fnOver ).on( "mouseleave", fnOut || fnOver ); - } -} ); +migratePatchAndWarnFunc( jQuery.fn, "bind", function( types, data, fn ) { + return this.on( types, null, data, fn ); +}, "pre-on-methods", "jQuery.fn.bind() is deprecated" ); +migratePatchAndWarnFunc( jQuery.fn, "unbind", function( types, fn ) { + return this.off( types, null, fn ); +}, "pre-on-methods", "jQuery.fn.unbind() is deprecated" ); +migratePatchAndWarnFunc( jQuery.fn, "delegate", function( selector, types, data, fn ) { + return this.on( types, selector, data, fn ); +}, "pre-on-methods", "jQuery.fn.delegate() is deprecated" ); +migratePatchAndWarnFunc( jQuery.fn, "undelegate", function( selector, types, fn ) { + return arguments.length === 1 ? + this.off( selector, "**" ) : + this.off( types, selector || "**", fn ); +}, "pre-on-methods", "jQuery.fn.undelegate() is deprecated" ); +migratePatchAndWarnFunc( jQuery.fn, "hover", function( fnOver, fnOut ) { + return this.on( "mouseenter", fnOver ).on( "mouseleave", fnOut || fnOver ); +}, "pre-on-methods", "jQuery.fn.hover() is deprecated" ); var rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi, - origHtmlPrefilter = jQuery.htmlPrefilter, makeMarkup = function( html ) { var doc = window.document.implementation.createHTMLDocument( "" ); doc.body.innerHTML = html; @@ -735,62 +853,65 @@ warnIfChanged = function( html ) { var changed = html.replace( rxhtmlTag, "<$1>" ); if ( changed !== html && makeMarkup( html ) !== makeMarkup( changed ) ) { - migrateWarn( "HTML tags must be properly nested and closed: " + html ); + migrateWarn( "self-closed-tags", + "HTML tags must be properly nested and closed: " + html ); } }; +/** + * Deprecated, please use `jQuery.migrateDisablePatches( "self-closed-tags" )` instead. + * @deprecated + */ jQuery.UNSAFE_restoreLegacyHtmlPrefilter = function() { - jQuery.htmlPrefilter = function( html ) { - warnIfChanged( html ); - return html.replace( rxhtmlTag, "<$1>" ); - }; + jQuery.migrateEnablePatches( "self-closed-tags" ); }; -jQuery.htmlPrefilter = function( html ) { +migratePatchFunc( jQuery, "htmlPrefilter", function( html ) { warnIfChanged( html ); - return origHtmlPrefilter( html ); -}; + return html.replace( rxhtmlTag, "<$1>" ); +}, "self-closed-tags" ); + +// This patch needs to be disabled by default as it re-introduces +// security issues (CVE-2020-11022, CVE-2020-11023). +jQuery.migrateDisablePatches( "self-closed-tags" ); -var oldOffset = jQuery.fn.offset; +var origOffset = jQuery.fn.offset; -jQuery.fn.offset = function() { +migratePatchFunc( jQuery.fn, "offset", function() { var elem = this[ 0 ]; if ( elem && ( !elem.nodeType || !elem.getBoundingClientRect ) ) { - migrateWarn( "jQuery.fn.offset() requires a valid DOM element" ); + migrateWarn( "offset-valid-elem", "jQuery.fn.offset() requires a valid DOM element" ); return arguments.length ? this : undefined; } - return oldOffset.apply( this, arguments ); -}; + return origOffset.apply( this, arguments ); +}, "offset-valid-elem" ); // Support jQuery slim which excludes the ajax module // The jQuery.param patch is about respecting `jQuery.ajaxSettings.traditional` // so it doesn't make sense for the slim build. if ( jQuery.ajax ) { -var oldParam = jQuery.param; +var origParam = jQuery.param; -jQuery.param = function( data, traditional ) { +migratePatchFunc( jQuery, "param", function( data, traditional ) { var ajaxTraditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional; if ( traditional === undefined && ajaxTraditional ) { - migrateWarn( "jQuery.param() no longer uses jQuery.ajaxSettings.traditional" ); + migrateWarn( "param-ajax-traditional", + "jQuery.param() no longer uses jQuery.ajaxSettings.traditional" ); traditional = ajaxTraditional; } - return oldParam.call( this, data, traditional ); -}; + return origParam.call( this, data, traditional ); +}, "param-ajax-traditional" ); } -var oldSelf = jQuery.fn.andSelf || jQuery.fn.addBack; - -jQuery.fn.andSelf = function() { - migrateWarn( "jQuery.fn.andSelf() is deprecated and removed, use jQuery.fn.addBack()" ); - return oldSelf.apply( this, arguments ); -}; +migratePatchAndWarnFunc( jQuery.fn, "andSelf", jQuery.fn.addBack, "andSelf", + "jQuery.fn.andSelf() is deprecated and removed, use jQuery.fn.addBack()" ); // Support jQuery slim which excludes the deferred module in jQuery 4.0+ if ( jQuery.Deferred ) { @@ -807,15 +928,13 @@ jQuery.Callbacks( "memory" ) ] ]; -jQuery.Deferred = function( func ) { +migratePatchFunc( jQuery, "Deferred", function( func ) { var deferred = oldDeferred(), promise = deferred.promise(); - deferred.pipe = promise.pipe = function( /* fnDone, fnFail, fnProgress */ ) { + function newDeferredPipe( /* fnDone, fnFail, fnProgress */ ) { var fns = arguments; - migrateWarn( "deferred.pipe() is deprecated" ); - return jQuery.Deferred( function( newDefer ) { jQuery.each( tuples, function( i, tuple ) { var fn = typeof fns[ i ] === "function" && fns[ i ]; @@ -840,15 +959,19 @@ } ); fns = null; } ).promise(); + } - }; + migratePatchAndWarnFunc( deferred, "pipe", newDeferredPipe, "deferred-pipe", + "deferred.pipe() is deprecated" ); + migratePatchAndWarnFunc( promise, "pipe", newDeferredPipe, "deferred-pipe", + "deferred.pipe() is deprecated" ); if ( func ) { func.call( deferred, deferred ); } return deferred; -}; +}, "deferred-pipe" ); // Preserve handler of uncaught exceptions in promise chains jQuery.Deferred.exceptionHook = oldDeferred.exceptionHook; diff -Nru phpmyadmin-5.1.3+dfsg1/js/vendor/jquery/jquery.mousewheel.js phpmyadmin-5.1.4+dfsg1/js/vendor/jquery/jquery.mousewheel.js --- phpmyadmin-5.1.3+dfsg1/js/vendor/jquery/jquery.mousewheel.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/vendor/jquery/jquery.mousewheel.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,221 +0,0 @@ -/*! - * jQuery Mousewheel 3.1.13 - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license - * http://jquery.org/license - */ - -(function (factory) { - if ( typeof define === 'function' && define.amd ) { - // AMD. Register as an anonymous module. - define(['jquery'], factory); - } else if (typeof exports === 'object') { - // Node/CommonJS style for Browserify - module.exports = factory; - } else { - // Browser globals - factory(jQuery); - } -}(function ($) { - - var toFix = ['wheel', 'mousewheel', 'DOMMouseScroll', 'MozMousePixelScroll'], - toBind = ( 'onwheel' in document || document.documentMode >= 9 ) ? - ['wheel'] : ['mousewheel', 'DomMouseScroll', 'MozMousePixelScroll'], - slice = Array.prototype.slice, - nullLowestDeltaTimeout, lowestDelta; - - if ( $.event.fixHooks ) { - for ( var i = toFix.length; i; ) { - $.event.fixHooks[ toFix[--i] ] = $.event.mouseHooks; - } - } - - var special = $.event.special.mousewheel = { - version: '3.1.12', - - setup: function() { - if ( this.addEventListener ) { - for ( var i = toBind.length; i; ) { - this.addEventListener( toBind[--i], handler, false ); - } - } else { - this.onmousewheel = handler; - } - // Store the line height and page height for this particular element - $.data(this, 'mousewheel-line-height', special.getLineHeight(this)); - $.data(this, 'mousewheel-page-height', special.getPageHeight(this)); - }, - - teardown: function() { - if ( this.removeEventListener ) { - for ( var i = toBind.length; i; ) { - this.removeEventListener( toBind[--i], handler, false ); - } - } else { - this.onmousewheel = null; - } - // Clean up the data we added to the element - $.removeData(this, 'mousewheel-line-height'); - $.removeData(this, 'mousewheel-page-height'); - }, - - getLineHeight: function(elem) { - var $elem = $(elem), - $parent = $elem['offsetParent' in $.fn ? 'offsetParent' : 'parent'](); - if (!$parent.length) { - $parent = $('body'); - } - return parseInt($parent.css('fontSize'), 10) || parseInt($elem.css('fontSize'), 10) || 16; - }, - - getPageHeight: function(elem) { - return $(elem).height(); - }, - - settings: { - adjustOldDeltas: true, // see shouldAdjustOldDeltas() below - normalizeOffset: true // calls getBoundingClientRect for each event - } - }; - - $.fn.extend({ - mousewheel: function(fn) { - return fn ? this.bind('mousewheel', fn) : this.trigger('mousewheel'); - }, - - unmousewheel: function(fn) { - return this.unbind('mousewheel', fn); - } - }); - - - function handler(event) { - var orgEvent = event || window.event, - args = slice.call(arguments, 1), - delta = 0, - deltaX = 0, - deltaY = 0, - absDelta = 0, - offsetX = 0, - offsetY = 0; - event = $.event.fix(orgEvent); - event.type = 'mousewheel'; - - // Old school scrollwheel delta - if ( 'detail' in orgEvent ) { deltaY = orgEvent.detail * -1; } - if ( 'wheelDelta' in orgEvent ) { deltaY = orgEvent.wheelDelta; } - if ( 'wheelDeltaY' in orgEvent ) { deltaY = orgEvent.wheelDeltaY; } - if ( 'wheelDeltaX' in orgEvent ) { deltaX = orgEvent.wheelDeltaX * -1; } - - // Firefox < 17 horizontal scrolling related to DOMMouseScroll event - if ( 'axis' in orgEvent && orgEvent.axis === orgEvent.HORIZONTAL_AXIS ) { - deltaX = deltaY * -1; - deltaY = 0; - } - - // Set delta to be deltaY or deltaX if deltaY is 0 for backwards compatabilitiy - delta = deltaY === 0 ? deltaX : deltaY; - - // New school wheel delta (wheel event) - if ( 'deltaY' in orgEvent ) { - deltaY = orgEvent.deltaY * -1; - delta = deltaY; - } - if ( 'deltaX' in orgEvent ) { - deltaX = orgEvent.deltaX; - if ( deltaY === 0 ) { delta = deltaX * -1; } - } - - // No change actually happened, no reason to go any further - if ( deltaY === 0 && deltaX === 0 ) { return; } - - // Need to convert lines and pages to pixels if we aren't already in pixels - // There are three delta modes: - // * deltaMode 0 is by pixels, nothing to do - // * deltaMode 1 is by lines - // * deltaMode 2 is by pages - if ( orgEvent.deltaMode === 1 ) { - var lineHeight = $.data(this, 'mousewheel-line-height'); - delta *= lineHeight; - deltaY *= lineHeight; - deltaX *= lineHeight; - } else if ( orgEvent.deltaMode === 2 ) { - var pageHeight = $.data(this, 'mousewheel-page-height'); - delta *= pageHeight; - deltaY *= pageHeight; - deltaX *= pageHeight; - } - - // Store lowest absolute delta to normalize the delta values - absDelta = Math.max( Math.abs(deltaY), Math.abs(deltaX) ); - - if ( !lowestDelta || absDelta < lowestDelta ) { - lowestDelta = absDelta; - - // Adjust older deltas if necessary - if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) { - lowestDelta /= 40; - } - } - - // Adjust older deltas if necessary - if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) { - // Divide all the things by 40! - delta /= 40; - deltaX /= 40; - deltaY /= 40; - } - - // Get a whole, normalized value for the deltas - delta = Math[ delta >= 1 ? 'floor' : 'ceil' ](delta / lowestDelta); - deltaX = Math[ deltaX >= 1 ? 'floor' : 'ceil' ](deltaX / lowestDelta); - deltaY = Math[ deltaY >= 1 ? 'floor' : 'ceil' ](deltaY / lowestDelta); - - // Normalise offsetX and offsetY properties - if ( special.settings.normalizeOffset && this.getBoundingClientRect ) { - var boundingRect = this.getBoundingClientRect(); - offsetX = event.clientX - boundingRect.left; - offsetY = event.clientY - boundingRect.top; - } - - // Add information to the event object - event.deltaX = deltaX; - event.deltaY = deltaY; - event.deltaFactor = lowestDelta; - event.offsetX = offsetX; - event.offsetY = offsetY; - // Go ahead and set deltaMode to 0 since we converted to pixels - // Although this is a little odd since we overwrite the deltaX/Y - // properties with normalized deltas. - event.deltaMode = 0; - - // Add event and delta to the front of the arguments - args.unshift(event, delta, deltaX, deltaY); - - // Clearout lowestDelta after sometime to better - // handle multiple device types that give different - // a different lowestDelta - // Ex: trackpad = 3 and mouse wheel = 120 - if (nullLowestDeltaTimeout) { clearTimeout(nullLowestDeltaTimeout); } - nullLowestDeltaTimeout = setTimeout(nullLowestDelta, 200); - - return ($.event.dispatch || $.event.handle).apply(this, args); - } - - function nullLowestDelta() { - lowestDelta = null; - } - - function shouldAdjustOldDeltas(orgEvent, absDelta) { - // If this is an older event and the delta is divisable by 120, - // then we are assuming that the browser is treating this as an - // older mouse wheel event and that we should divide the deltas - // by 40 to try and get a more usable deltaFactor. - // Side note, this actually impacts the reported scroll distance - // in older browsers and can cause scrolling to be slower than native. - // Turn this off by setting $.event.special.mousewheel.settings.adjustOldDeltas to false. - return special.settings.adjustOldDeltas && orgEvent.type === 'mousewheel' && absDelta % 120 === 0; - } - -})); diff -Nru phpmyadmin-5.1.3+dfsg1/js/vendor/jquery/jquery.svg.js phpmyadmin-5.1.4+dfsg1/js/vendor/jquery/jquery.svg.js --- phpmyadmin-5.1.3+dfsg1/js/vendor/jquery/jquery.svg.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/vendor/jquery/jquery.svg.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,1352 +0,0 @@ -/* http://keith-wood.name/svg.html - SVG for jQuery v1.5.0. - Written by Keith Wood (kbwood{at}iinet.com.au) August 2007. - Available under the MIT (http://keith-wood.name/licence.html) license. - Please attribute the author if you use it. */ - -(function($) { // Hide scope, no $ conflict - -/** The SVG manager. -

    Use the singleton instance of this class, $.svg, - to interact with the SVG functionality.

    -

    Expects HTML like:

    -
    <div></div>
    - @module SVGManager */ -function SVGManager() { - this._settings = []; // Settings to be remembered per SVG object - this._extensions = []; // List of SVG extensions added to SVGWrapper - // for each entry [0] is extension name, [1] is extension class (function) - // the function takes one parameter - the SVGWrapper instance - this.regional = []; // Localisations, indexed by language, '' for default (English) - this.regional[''] = {errorLoadingText: 'Error loading'}; - this.local = this.regional['']; // Current localisation - this._uuid = new Date().getTime(); - this._ie = !!window.ActiveXObject; -} - -$.extend(SVGManager.prototype, { - /** Class name added to elements to indicate already configured with SVG. */ - markerClassName: 'hasSVG', - /** Name of the data property for instance settings. */ - propertyName: 'svgwrapper', - - /** SVG namespace. */ - svgNS: 'http://www.w3.org/2000/svg', - /** XLink namespace. */ - xlinkNS: 'http://www.w3.org/1999/xlink', - - /** SVG wrapper class. */ - _wrapperClass: SVGWrapper, - - /* Camel-case versions of attribute names containing dashes or are reserved words. */ - _attrNames: {class_: 'class', in_: 'in', - alignmentBaseline: 'alignment-baseline', baselineShift: 'baseline-shift', - clipPath: 'clip-path', clipRule: 'clip-rule', - colorInterpolation: 'color-interpolation', - colorInterpolationFilters: 'color-interpolation-filters', - colorRendering: 'color-rendering', dominantBaseline: 'dominant-baseline', - enableBackground: 'enable-background', fillOpacity: 'fill-opacity', - fillRule: 'fill-rule', floodColor: 'flood-color', - floodOpacity: 'flood-opacity', fontFamily: 'font-family', - fontSize: 'font-size', fontSizeAdjust: 'font-size-adjust', - fontStretch: 'font-stretch', fontStyle: 'font-style', - fontVariant: 'font-variant', fontWeight: 'font-weight', - glyphOrientationHorizontal: 'glyph-orientation-horizontal', - glyphOrientationVertical: 'glyph-orientation-vertical', - horizAdvX: 'horiz-adv-x', horizOriginX: 'horiz-origin-x', - imageRendering: 'image-rendering', letterSpacing: 'letter-spacing', - lightingColor: 'lighting-color', markerEnd: 'marker-end', - markerMid: 'marker-mid', markerStart: 'marker-start', - stopColor: 'stop-color', stopOpacity: 'stop-opacity', - strikethroughPosition: 'strikethrough-position', - strikethroughThickness: 'strikethrough-thickness', - strokeDashArray: 'stroke-dasharray', strokeDashOffset: 'stroke-dashoffset', - strokeLineCap: 'stroke-linecap', strokeLineJoin: 'stroke-linejoin', - strokeMiterLimit: 'stroke-miterlimit', strokeOpacity: 'stroke-opacity', - strokeWidth: 'stroke-width', textAnchor: 'text-anchor', - textDecoration: 'text-decoration', textRendering: 'text-rendering', - underlinePosition: 'underline-position', underlineThickness: 'underline-thickness', - vertAdvY: 'vert-adv-y', vertOriginY: 'vert-origin-y', - wordSpacing: 'word-spacing', writingMode: 'writing-mode'}, - - /* Add the SVG object to its container. */ - _attachSVG: function(container, settings) { - var svg = (container.namespaceURI === this.svgNS ? container : null); - var container = (svg ? null : container); - if ($(container || svg).hasClass(this.markerClassName)) { - return; - } - if (typeof settings === 'string') { - settings = {loadURL: settings}; - } - else if (typeof settings === 'function') { - settings = {onLoad: settings}; - } - $(container || svg).addClass(this.markerClassName); - try { - if (!svg) { - svg = document.createElementNS(this.svgNS, 'svg'); - svg.setAttribute('version', '1.1'); - if (container.clientWidth > 0) { - svg.setAttribute('width', container.clientWidth); - } - if (container.clientHeight > 0) { - svg.setAttribute('height', container.clientHeight); - } - container.appendChild(svg); - } - this._afterLoad(container, svg, settings || {}); - } - catch (e) { - $(container).html('

    SVG is not supported natively on this browser

    '); - } - }, - - /* Post-processing once loaded. */ - _afterLoad: function(container, svg, settings) { - var settings = settings || this._settings[container.id]; - this._settings[container ? container.id : ''] = null; - var wrapper = new this._wrapperClass(svg, container); - $.data(container || svg, $.svg.propertyName, wrapper); - try { - if (settings.loadURL) { // Load URL - wrapper.load(settings.loadURL, settings); - } - if (settings.settings) { // Additional settings - wrapper.configure(settings.settings); - } - if (settings.onLoad && !settings.loadURL) { // Onload callback - settings.onLoad.apply(container || svg, [wrapper]); - } - } - catch (e) { - alert(e); - } - }, - - /** Return the SVG wrapper created for a given container. - @param container {string|Element|jQuery} Selector for the container or - the container for the SVG object or jQuery collection where first entry is the container. - @return {SVGWrapper} The corresponding SVG wrapper element, or null if not attached. */ - _getSVG: function(container) { - return $(container).data(this.propertyName); - }, - - /** Remove the SVG functionality from a div. - @param container {Element} The container for the SVG object. */ - _destroySVG: function(container) { - container = $(container); - if (!container.hasClass(this.markerClassName)) { - return; - } - container.removeClass(this.markerClassName).removeData(this.propertyName); - if (container[0].namespaceURI !== this.svgNS) { - container.empty(); - } - }, - - /** Extend the SVGWrapper object with an embedded class. -

    The constructor function must take a single parameter that is - a reference to the owning SVG root object. This allows the - extension to access the basic SVG functionality.

    - @param name {string} The name of the SVGWrapper attribute to access the new class. - @param extClass {function} The extension class constructor. */ - addExtension: function(name, extClass) { - this._extensions.push([name, extClass]); - }, - - /** Does this node belong to SVG? - @param node {Element} The node to be tested. - @return {boolean} true if an SVG node, false if not. */ - isSVGElem: function(node) { - return (node.nodeType === 1 && node.namespaceURI === $.svg.svgNS); - } -}); - -/** The main SVG interface, which encapsulates the SVG element. -

    Obtain a reference from $().svg('get')

    - @module SVGWrapper */ -function SVGWrapper(svg, container) { - this._svg = svg; // The SVG root node - this._container = container; // The containing div - for (var i = 0; i < $.svg._extensions.length; i++) { - var extension = $.svg._extensions[i]; - this[extension[0]] = new extension[1](this); - } -} - -$.extend(SVGWrapper.prototype, { - - /** Retrieve the width of the SVG object. - @return {number} The width of the SVG canvas. */ - width: function() { - return (this._container ? this._container.clientWidth : this._svg.width); - }, - - /** Retrieve the height of the SVG object. - @return {number} The height of the SVG canvas. */ - height: function() { - return (this._container ? this._container.clientHeight : this._svg.height); - }, - - /** Retrieve the root SVG element. - @return {SVGElement} The top-level SVG element. */ - root: function() { - return this._svg; - }, - - /** Configure a SVG node. - @param [node] {SVGElement} The node to configure, or the SVG root if not specified. - @param settings {object} Additional settings for the root. - @param [clear=false] {boolean} true to remove existing attributes first, - false to add to what is already there. - @return {SVGWrapper} This wrapper. */ - configure: function(node, settings, clear) { - if (!node.nodeName) { - clear = settings; - settings = node; - node = this._svg; - } - if (clear) { - for (var i = node.attributes.length - 1; i >= 0; i--) { - var attr = node.attributes.item(i); - if (!(attr.nodeName === 'onload' || attr.nodeName === 'version' || - attr.nodeName.substring(0, 5) === 'xmlns')) { - node.attributes.removeNamedItem(attr.nodeName); - } - } - } - for (var attrName in settings) { - node.setAttribute($.svg._attrNames[attrName] || attrName, settings[attrName]); - } - return this; - }, - - /** Locate a specific element in the SVG document. - @param id {string} The element's identifier. - @return {SVGElement} The element reference, or null if not found. */ - getElementById: function(id) { - return this._svg.ownerDocument.getElementById(id); - }, - - /** Change the attributes for a SVG node. - @param element {SVGElement} The node to change. - @param settings {object} The new settings. - @return {SVGWrapper} This wrapper. */ - change: function(element, settings) { - if (element) { - for (var name in settings) { - if (settings[name] == null) { - element.removeAttribute($.svg._attrNames[name] || name); - } - else { - element.setAttribute($.svg._attrNames[name] || name, settings[name]); - } - } - } - return this; - }, - - /** Check for parent being absent and adjust arguments accordingly. - @private - @param values {string[]} The given parameters. - @param names {string[]} The names of the parameters in order. - @param optSettings {string[]} The names of optional parameters. - @return {object} An object representing the named parameters. */ - _args: function(values, names, optSettings) { - names.splice(0, 0, 'parent'); - names.splice(names.length, 0, 'settings'); - var args = {}; - var offset = 0; - if (values[0] != null && values[0].jquery) { - values[0] = values[0][0]; - } - if (values[0] != null && !(typeof values[0] === 'object' && values[0].nodeName)) { - args['parent'] = null; - offset = 1; - } - for (var i = 0; i < values.length; i++) { - args[names[i + offset]] = values[i]; - } - if (optSettings) { - $.each(optSettings, function(i, value) { - if (typeof args[value] === 'object') { - args.settings = args[value]; - args[value] = null; - } - }); - } - return args; - }, - - /** Add a title. - @param [parent] {SVGElement|jQuery} The parent node for the new node, or SVG root if not specified. - @param text {string} The text of the title. - @param [settings] {object} Additional settings for this node. - @return {SVGElement} The new title node. */ - title: function(parent, text, settings) { - var args = this._args(arguments, ['text']); - var node = this._makeNode(args.parent, 'title', args.settings || {}); - node.appendChild(this._svg.ownerDocument.createTextNode(args.text)); - return node; - }, - - /** Add a description. - @param [parent] {SVGElement|jQuery} The parent node for the new node, or SVG root if not specified. - @param text {string} The text of the description. - @param [settings] {object} Additional settings for this node. - @return {SVGElement} The new description node. */ - describe: function(parent, text, settings) { - var args = this._args(arguments, ['text']); - var node = this._makeNode(args.parent, 'desc', args.settings || {}); - node.appendChild(this._svg.ownerDocument.createTextNode(args.text)); - return node; - }, - - /** Add a definitions node. - @param [parent] {SVGElement|jQuery} The parent node for the new node, or SVG root if not specified. - @param [id] {string} The ID of this definitions (optional). - @param [settings] {object} Additional settings for this node. - @return {SVGElement} The new definitions node. */ - defs: function(parent, id, settings) { - var args = this._args(arguments, ['id'], ['id']); - return this._makeNode(args.parent, 'defs', $.extend((args.id ? {id: args.id} : {}), args.settings || {})); - }, - - /** Add a symbol definition. - @param [parent] {SVGElement|jQuery} The parent node for the new node, or SVG root if not specified. - @param id {string} The ID of this symbol. - @param x1 {number} The left coordinate for this symbol. - @param y1 {number} The top coordinate for this symbol. - @param width {number} The width of this symbol. - @param height {number} The height of this symbol. - @param [settings] {object} Additional settings for this node. - @return {SVGElement} The new symbol node. */ - symbol: function(parent, id, x1, y1, width, height, settings) { - var args = this._args(arguments, ['id', 'x1', 'y1', 'width', 'height']); - return this._makeNode(args.parent, 'symbol', $.extend({id: args.id, - viewBox: args.x1 + ' ' + args.y1 + ' ' + args.width + ' ' + args.height}, args.settings || {})); - }, - - /** Add a marker definition. - @param [parent] {SVGElement|jQuery} The parent node for the new node, or SVG root if not specified. - @param id {string} The ID of this marker. - @param refX {number} The x-coordinate for the reference point. - @param refY {number} The y-coordinate for the reference point. - @param mWidth {number} The marker viewport width. - @param mHeight {number} The marker viewport height. - @param [orient] {string|number} 'auto' or angle (degrees). - @param [settings] {object} Additional settings for this node. - @return {SVGElement} The new marker node. */ - marker: function(parent, id, refX, refY, mWidth, mHeight, orient, settings) { - var args = this._args(arguments, ['id', 'refX', 'refY', 'mWidth', 'mHeight', 'orient'], ['orient']); - return this._makeNode(args.parent, 'marker', $.extend( - {id: args.id, refX: args.refX, refY: args.refY, markerWidth: args.mWidth, - markerHeight: args.mHeight, orient: args.orient || 'auto'}, args.settings || {})); - }, - - /** Add a style node. - @param [parent] {SVGElement|jQuery} The parent node for the new node, or SVG root if not specified. - @param styles {string} The CSS styles. - @param [settings] {object} Additional settings for this node. - @return {SVGElement} The new style node. */ - style: function(parent, styles, settings) { - var args = this._args(arguments, ['styles']); - var node = this._makeNode(args.parent, 'style', $.extend({type: 'text/css'}, args.settings || {})); - node.appendChild(this._svg.ownerDocument.createTextNode(args.styles)); - return node; - }, - - /** Add a script node. - @param [parent] {SVGElement|jQuery} The parent node for the new node, or SVG root if not specified. - @param script {string} The JavaScript code. - @param [type='text/javascript'] {string} The MIME type for the code. - @param [settings] {object} Additional settings for this node. - @return {SVGElement} The new script node. */ - script: function(parent, script, type, settings) { - var args = this._args(arguments, ['script', 'type'], ['type']); - var node = this._makeNode(args.parent, 'script', $.extend( - {type: args.type || 'text/javascript'}, args.settings || {})); - node.appendChild(this._svg.ownerDocument.createTextNode(args.script)); - if ($.svg._ie) { - $.globalEval(args.script); - } - return node; - }, - - /** Add a linear gradient definition. -

    Specify all of x1, y1, x2, y2 or none of them.

    - @param [parent] {SVGElement|jQuery} The parent node for the new node, or SVG root if not specified. - @param id {string} The ID for this gradient. - @param stops {string[][]} The gradient stops, each entry is [0] is offset (0.0-1.0 or 0%-100%), - [1] is colour, [2] is opacity (optional). - @param [x1] {number} The x-coordinate of the gradient start. - @param [y1] {number} The y-coordinate of the gradient start. - @param [x2] {number} The x-coordinate of the gradient end. - @param [y2] {number} The y-coordinate of the gradient end. - @param [settings] {object} Additional settings for this node. - @return {SVGElement} The new linear gradient node. */ - linearGradient: function(parent, id, stops, x1, y1, x2, y2, settings) { - var args = this._args(arguments, ['id', 'stops', 'x1', 'y1', 'x2', 'y2'], ['x1']); - var sets = $.extend({id: args.id}, - (args.x1 != null ? {x1: args.x1, y1: args.y1, x2: args.x2, y2: args.y2} : {})); - return this._gradient(args.parent, 'linearGradient', $.extend(sets, args.settings || {}), args.stops); - }, - - /** Add a radial gradient definition. -

    Specify all of cx, cy, r, - fx, fy or none of them.

    - @param [parent] {SVGElement|jQuery} The parent node for the new node, or SVG root if not specified. - @param id {string} The ID for this gradient. - @param stops {string[][]} The gradient stops, each entry [0] is offset (0.0-1.0 or 0%-100%), - [1] is colour, [2] is opacity (optional). - @param [cx] {number} The x-coordinate of the largest circle centre. - @param [cy] {number} The y-coordinate of the largest circle centre. - @param [r] {number} The radius of the largest circle. - @param [fx] {number} The x-coordinate of the gradient focus. - @param [fy] {number} The y-coordinate of the gradient focus. - @param [settings] {object} Additional settings for this node. - @return {SVGElement} The new radial gradient node. */ - radialGradient: function(parent, id, stops, cx, cy, r, fx, fy, settings) { - var args = this._args(arguments, ['id', 'stops', 'cx', 'cy', 'r', 'fx', 'fy'], ['cx']); - var sets = $.extend({id: args.id}, - (args.cx != null ? {cx: args.cx, cy: args.cy, r: args.r, fx: args.fx, fy: args.fy} : {})); - return this._gradient(args.parent, 'radialGradient', $.extend(sets, args.settings || {}), args.stops); - }, - - /** Add a gradient node. - @private - @param parent {SVGElement|jQuery} The parent node for the new node. - @param name {string} The type of gradient node to create. - @param settings {object} The settings for this node. - @param stops {string[][]} The gradient stops. - @return {SVGElement} The new gradient node. */ - _gradient: function(parent, name, settings, stops) { - var node = this._makeNode(parent, name, settings); - for (var i = 0; i < stops.length; i++) { - var stop = stops[i]; - this._makeNode(node, 'stop', $.extend({offset: stop[0], stopColor: stop[1]}, - (stop[2] != null ? {stopOpacity: stop[2]} : {}))); - } - return node; - }, - - /** Add a pattern definition. -

    Specify all of vx, vy, xwidth, - vheight or none of them.

    - @param [parent] {SVGElement|jQuery} The parent node for the new node, or SVG root if not specified. - @param id {string} The ID for this pattern. - @param x {number} The x-coordinate for the left edge of the pattern. - @param y {number} The y-coordinate for the top edge of the pattern. - @param width {number} The width of the pattern. - @param height {number} The height of the pattern. - @param [vx] {number} The minimum x-coordinate for view box. - @param [vy] {number} The minimum y-coordinate for the view box. - @param [vwidth] {number} The width of the view box. - @param [vheight] {number} The height of the view box. - @param [settings] {object} Additional settings for this node. - @return {SVGElement} The new pattern definition node. */ - pattern: function(parent, id, x, y, width, height, vx, vy, vwidth, vheight, settings) { - var args = this._args(arguments, ['id', 'x', 'y', 'width', 'height', 'vx', 'vy', 'vwidth', 'vheight'], ['vx']); - var sets = $.extend({id: args.id, x: args.x, y: args.y, width: args.width, height: args.height}, - (args.vx != null ? {viewBox: args.vx + ' ' + args.vy + ' ' + args.vwidth + ' ' + args.vheight} : {})); - return this._makeNode(args.parent, 'pattern', $.extend(sets, args.settings || {})); - }, - - /** Add a clip path definition. - @param [parent] {SVGElement|jQuery} The parent node for the new node, or SVG root if not specified. - @param id {string} The ID for this path. - @param [units='userSpaceOnUse'] {string} Either 'userSpaceOnUse' or 'objectBoundingBox'. - @param [settings] {object} Additional settings for this node. - @return {SVGElement} The new clip path definition node. */ - clipPath: function(parent, id, units, settings) { - var args = this._args(arguments, ['id', 'units']); - args.units = args.units || 'userSpaceOnUse'; - return this._makeNode(args.parent, 'clipPath', $.extend( - {id: args.id, clipPathUnits: args.units}, args.settings || {})); - }, - - /** Add a mask definition. - @param [parent] {SVGElement|jQuery} The parent node for the new node, or SVG root if not specified. - @param id {string} The ID for this mask. - @param x {number} The x-coordinate for the left edge of the mask. - @param y {number} The y-coordinate for the top edge of the mask. - @param width {number} The width of the mask. - @param height {number} The height of the mask. - @param [settings] {object} Additional settings for this node. - @return {SVGElement} The new mask definition node. */ - mask: function(parent, id, x, y, width, height, settings) { - var args = this._args(arguments, ['id', 'x', 'y', 'width', 'height']); - return this._makeNode(args.parent, 'mask', $.extend( - {id: args.id, x: args.x, y: args.y, width: args.width, height: args.height}, args.settings || {})); - }, - - /** Create a new path object. - @return {SVGPath} A new path object. */ - createPath: function() { - return new SVGPath(); - }, - - /** Create a new text object. - @return {SVGText} A new text object. */ - createText: function() { - return new SVGText(); - }, - - /** Add an embedded SVG element. -

    Specify all of vx, vy, - vwidth, vheight or none of them.

    - @param [parent] {SVGElement|jQuery} The parent node for the new node, or SVG root if not specified. - @param x {number} The x-coordinate for the left edge of the node. - @param y {number} The y-coordinate for the top edge of the node. - @param width {number} The width of the node. - @param height {number} The height of the node. - @param [vx] {number} The minimum x-coordinate for view box. - @param [vy] {number} The minimum y-coordinate for the view box. - @param [vwidth] {number} The width of the view box. - @param [vheight] {number} The height of the view box. - @param [settings] {object} Additional settings for this node. - @return {SVGElement} The new svg node. */ - svg: function(parent, x, y, width, height, vx, vy, vwidth, vheight, settings) { - var args = this._args(arguments, ['x', 'y', 'width', 'height', 'vx', 'vy', 'vwidth', 'vheight'], ['vx']); - var sets = $.extend({x: args.x, y: args.y, width: args.width, height: args.height}, - (args.vx != null ? {viewBox: args.vx + ' ' + args.vy + ' ' + args.vwidth + ' ' + args.vheight} : {})); - return this._makeNode(args.parent, 'svg', $.extend(sets, args.settings || {})); - }, - - /** Create a group. - @param [parent] {SVGElement|jQuery} The parent node for the new node, or SVG root if not specified. - @param [id] {string} The ID of this group. - @param [settings] {object} Additional settings for this node. - @return {SVGElement} The new group node. */ - group: function(parent, id, settings) { - var args = this._args(arguments, ['id'], ['id']); - return this._makeNode(args.parent, 'g', $.extend({id: args.id}, args.settings || {})); - }, - - /** Add a usage reference. -

    Specify all of x, y, width, height or none of them.

    - @param [parent] {SVGElement|jQuery} The parent node for the new node, or SVG root if not specified. - @param [x] {number} The x-coordinate for the left edge of the node. - @param [y] {number} The y-coordinate for the top edge of the node. - @param [width] {number} The width of the node. - @param [height] {number} The height of the node. - @param ref {string} The ID of the definition node. - @param [settings] {object} Additional settings for this node. - @return {SVGElement} The new usage reference node. */ - use: function(parent, x, y, width, height, ref, settings) { - var args = this._args(arguments, ['x', 'y', 'width', 'height', 'ref']); - if (typeof args.x === 'string') { - args.ref = args.x; - args.settings = args.y; - args.x = args.y = args.width = args.height = null; - } - var node = this._makeNode(args.parent, 'use', $.extend( - {x: args.x, y: args.y, width: args.width, height: args.height}, args.settings || {})); - node.setAttributeNS($.svg.xlinkNS, 'href', args.ref); - return node; - }, - - /** Add a link, which applies to all child elements. - @param [parent] {SVGElement|jQuery} The parent node for the new node, or SVG root if not specified. - @param ref {string} The target URL. - @param [settings] {object} Additional settings for this node. - @return {SVGElement} The new link node. */ - link: function(parent, ref, settings) { - var args = this._args(arguments, ['ref']); - var node = this._makeNode(args.parent, 'a', args.settings); - node.setAttributeNS($.svg.xlinkNS, 'href', args.ref); - return node; - }, - - /** Add an image. - @param [parent] {SVGElement|jQuery} The parent node for the new node, or SVG root if not specified. - @param x {number} The x-coordinate for the left edge of the image. - @param y {number} The y-coordinate for the top edge of the image. - @param width {number} The width of the image. - @param height {number} The height of the image. - @param ref {string} The path to the image. - @param [settings] {object} Additional settings for this node. - @return {SVGElement} The new image node. */ - image: function(parent, x, y, width, height, ref, settings) { - var args = this._args(arguments, ['x', 'y', 'width', 'height', 'ref']); - var node = this._makeNode(args.parent, 'image', $.extend( - {x: args.x, y: args.y, width: args.width, height: args.height}, args.settings || {})); - node.setAttributeNS($.svg.xlinkNS, 'href', args.ref); - return node; - }, - - /** Draw a path. - @param [parent] {SVGElement|jQuery} The parent node for the new node, or SVG root if not specified. - @param path {string|SVGPath} The path to draw. - @param [settings] {object} Additional settings for this node. - @return {SVGElement} The new path node. */ - path: function(parent, path, settings) { - var args = this._args(arguments, ['path']); - return this._makeNode(args.parent, 'path', $.extend( - {d: (args.path.path ? args.path.path() : args.path)}, args.settings || {})); - }, - - /** Draw a rectangle. -

    Specify both of rx and ry or neither.

    - @param [parent] {SVGElement|jQuery} The parent node for the new node, or SVG root if not specified. - @param x {number} The x-coordinate for the left edge of the rectangle. - @param y {number} The y-coordinate for the top edge of the rectangle. - @param width {number} The width of the rectangle. - @param height {number} The height of the rectangle. - @param [rx] {number} The x-radius of the ellipse for the rounded corners. - @param [ry] {number} The y-radius of the ellipse for the rounded corners. - @param [settings] {object} Additional settings for this node. - @return {SVGElement} The new rectangle node. */ - rect: function(parent, x, y, width, height, rx, ry, settings) { - var args = this._args(arguments, ['x', 'y', 'width', 'height', 'rx', 'ry'], ['rx']); - return this._makeNode(args.parent, 'rect', $.extend( - {x: args.x, y: args.y, width: args.width, height: args.height}, - (args.rx ? {rx: args.rx, ry: args.ry} : {}), args.settings || {})); - }, - - /** Draw a circle. - @param [parent] {SVGElement|jQuery} The parent node for the new node, or SVG root if not specified. - @param cx {number} The x-coordinate for the centre of the circle. - @param cy {number} The y-coordinate for the centre of the circle. - @param r {number} The radius of the circle. - @param [settings] {object} Additional settings for this node. - @return {SVGElement} The new circle node. */ - circle: function(parent, cx, cy, r, settings) { - var args = this._args(arguments, ['cx', 'cy', 'r']); - return this._makeNode(args.parent, 'circle', $.extend( - {cx: args.cx, cy: args.cy, r: args.r}, args.settings || {})); - }, - - /** Draw an ellipse. - @param [parent] {SVGElement|jQuery} The parent node for the new node, or SVG root if not specified. - @param cx {number} The x-coordinate for the centre of the ellipse. - @param cy {number} The y-coordinate for the centre of the ellipse. - @param rx {number} The x-radius of the ellipse. - @param ry {number} The y-radius of the ellipse. - @param [settings] {object} Additional settings for this node. - @return {SVGElement} The new ellipse node. */ - ellipse: function(parent, cx, cy, rx, ry, settings) { - var args = this._args(arguments, ['cx', 'cy', 'rx', 'ry']); - return this._makeNode(args.parent, 'ellipse', $.extend( - {cx: args.cx, cy: args.cy, rx: args.rx, ry: args.ry}, args.settings || {})); - }, - - /** Draw a line. - @param [parent] {SVGElement|jQuery} The parent node for the new node, or SVG root if not specified. - @param x1 {number} The x-coordinate for the start of the line. - @param y1 {number} The y-coordinate for the start of the line. - @param x2 {number} The x-coordinate for the end of the line. - @param y2 {number} The y-coordinate for the end of the line. - @param [settings] {object} Additional settings for this node. - @return {SVGElement} The new line node. */ - line: function(parent, x1, y1, x2, y2, settings) { - var args = this._args(arguments, ['x1', 'y1', 'x2', 'y2']); - return this._makeNode(args.parent, 'line', $.extend( - {x1: args.x1, y1: args.y1, x2: args.x2, y2: args.y2}, args.settings || {})); - }, - - /** Draw a polygonal line. - @param [parent] {SVGElement|jQuery} The parent node for the new node, or SVG root if not specified. - @param points {number[][]} The x-/y-coordinates for the points on the line. - @param [settings] {object} Additional settings for this node. - @return {SVGElement} The new polygonal line node. */ - polyline: function(parent, points, settings) { - var args = this._args(arguments, ['points']); - return this._poly(args.parent, 'polyline', args.points, args.settings); - }, - - /** Draw a polygonal shape. - @param [parent] {SVGElement|jQuery} The parent node for the new node, or SVG root if not specified. - @param points {number[][]} The x-/y-coordinates for the points on the shape. - @param [settings] {object} Additional settings for this node. - @return {SVGElement} The new polygonal shape node. */ - polygon: function(parent, points, settings) { - var args = this._args(arguments, ['points']); - return this._poly(args.parent, 'polygon', args.points, args.settings); - }, - - /** Draw a polygonal line or shape. - @private - @param parent {SVGElement|jQuery} The parent node for the new node. - @param name {string} The type of polygon to create. - @param points {number[][]} The x-/y-coordinates for the points on the shape. - @param [settings] {object} Additional settings for this node. - @return {SVGElement} The new polygon node. */ - _poly: function(parent, name, points, settings) { - var ps = ''; - for (var i = 0; i < points.length; i++) { - ps += points[i].join() + ' '; - } - return this._makeNode(parent, name, $.extend({points: $.trim(ps)}, settings || {})); - }, - - /** Draw text. -

    Specify both of x and y or neither of them.

    - @param [parent] {SVGElement|jQuery} The parent node for the new node, or SVG root if not specified. - @param [x] {number|number[]} The x-coordinate(s) for the text. - @param [y] {number|number[]} The y-coordinate(s) for the text. - @param value {string|SVGText} The text content or text with spans and references. - @param [settings] {object} Additional settings for this node. - @return {SVGElement} The new text node. */ - text: function(parent, x, y, value, settings) { - var args = this._args(arguments, ['x', 'y', 'value']); - if (typeof args.x === 'string' && arguments.length < 4) { - args.value = args.x; - args.settings = args.y; - args.x = args.y = null; - } - return this._text(args.parent, 'text', args.value, $.extend( - {x: (args.x && $.isArray(args.x) ? args.x.join(' ') : args.x), - y: (args.y && $.isArray(args.y) ? args.y.join(' ') : args.y)}, args.settings || {})); - }, - - /** Draw text along a path. - @param [parent] {SVGElement|jQuery} The parent node for the new node, or SVG root if not specified. - @param path {string} The ID of the path. - @param value {string|SVGText} The text content or text with spans and references. - @param [settings] {object} Additional settings for this node. - @return {SVGElement} The new textpath node. */ - textpath: function(parent, path, value, settings) { - var args = this._args(arguments, ['path', 'value']); - var node = this._text(args.parent, 'textPath', args.value, args.settings || {}); - node.setAttributeNS($.svg.xlinkNS, 'href', args.path); - return node; - }, - - /** Draw text. - @private - @param parent {SVGElement|jQuery} The parent node for the new node. - @param name {string} The type of text to create. - @param value {string|SVGText} The text content or text with spans and references. - @param [settings] {object} Additional settings for this node. - @return {SVGElement} The new text node. */ - _text: function(parent, name, value, settings) { - var node = this._makeNode(parent, name, settings); - if (typeof value === 'string') { - node.appendChild(node.ownerDocument.createTextNode(value)); - } - else { - for (var i = 0; i < value._parts.length; i++) { - var part = value._parts[i]; - if (part[0] === 'tspan') { - var child = this._makeNode(node, part[0], part[2]); - child.appendChild(node.ownerDocument.createTextNode(part[1])); - node.appendChild(child); - } - else if (part[0] === 'tref') { - var child = this._makeNode(node, part[0], part[2]); - child.setAttributeNS($.svg.xlinkNS, 'href', part[1]); - node.appendChild(child); - } - else if (part[0] === 'textpath') { - var set = $.extend({}, part[2]); - set.href = null; - var child = this._makeNode(node, part[0], set); - child.setAttributeNS($.svg.xlinkNS, 'href', part[2].href); - child.appendChild(node.ownerDocument.createTextNode(part[1])); - node.appendChild(child); - } - else { // straight text - node.appendChild(node.ownerDocument.createTextNode(part[1])); - } - } - } - return node; - }, - - /** Add a custom SVG element. - @param [parent] {SVGElement|jQuery} The parent node for the new node, or SVG root if not specified. - @param name {string} The name of the element. - @param [settings] {object} Additional settings for this node. - @return {SVGElement} The new custom node. */ - other: function(parent, name, settings) { - var args = this._args(arguments, ['name']); - return this._makeNode(args.parent, args.name, args.settings || {}); - }, - - /** Create a SVG node with the given settings. - @private - @param parent {SVGElement|jQuery} The parent node for the new node, or SVG root if null. - @param name {string} The name of the element. - @param [settings] {object} Additional settings for this node. - @return {SVGElement} The new node. */ - _makeNode: function(parent, name, settings) { - parent = parent || this._svg; - var node = this._svg.ownerDocument.createElementNS($.svg.svgNS, name); - for (var name in settings) { - var value = settings[name]; - if (value != null && (typeof value !== 'string' || value !== '')) { - node.setAttribute($.svg._attrNames[name] || name, value); - } - } - parent.appendChild(node); - return node; - }, - - /** Add an existing SVG node to the document. - @param [parent] {SVGElement|jQuery} The parent node for the new node, or SVG root if not specified. - @param node {SVGElement|string|jQuery} The new node to add or - the jQuery selector for the node or the set of nodes to add. - @return {SVGWrapper} This wrapper. */ - add: function(parent, node) { - var args = this._args((arguments.length === 1 ? [null, parent] : arguments), ['node']); - var svg = this; - args.parent = args.parent || this._svg; - args.node = (args.node.jquery ? args.node : $(args.node)); - try { - args.parent.appendChild(args.node.cloneNode(true)); - } - catch (e) { - args.node.each(function() { - var child = svg._cloneAsSVG(this); - if (child) { - args.parent.appendChild(child); - } - }); - } - return this; - }, - - /** Clone an existing SVG node and add it to the document. - @param [parent] {SVGElement|jQuery} The parent node for the new node, or SVG root if not specified. - @param node {SVGEelement|string|jQuery} The new node to add or - the jQuery selector for the node or the set of nodes to clone. - @return {SVGElement[]} The collection of new nodes. */ - clone: function(parent, node) { - var svg = this; - var args = this._args((arguments.length === 1 ? [null, parent] : arguments), ['node']); - args.parent = args.parent || this._svg; - args.node = (args.node.jquery ? args.node : $(args.node)); - var newNodes = []; - args.node.each(function() { - var child = svg._cloneAsSVG(this); - if (child) { - child.id = ''; - args.parent.appendChild(child); - newNodes.push(child); - } - }); - return newNodes; - }, - - /** SVG nodes must belong to the SVG namespace, so clone and ensure this is so. - @private - @param node {SVGElement} The SVG node to clone. - @return {SVGElement} The cloned node. */ - _cloneAsSVG: function(node) { - var newNode = null; - if (node.nodeType === 1) { // element - newNode = this._svg.ownerDocument.createElementNS($.svg.svgNS, this._checkName(node.nodeName)); - for (var i = 0; i < node.attributes.length; i++) { - var attr = node.attributes.item(i); - if (attr.nodeName !== 'xmlns' && attr.nodeValue) { - if (attr.prefix === 'xlink') { - newNode.setAttributeNS($.svg.xlinkNS, attr.localName || attr.baseName, attr.nodeValue); - } - else { - newNode.setAttribute(this._checkName(attr.nodeName), attr.nodeValue); - } - } - } - for (var i = 0; i < node.childNodes.length; i++) { - var child = this._cloneAsSVG(node.childNodes[i]); - if (child) { - newNode.appendChild(child); - } - } - } - else if (node.nodeType === 3) { // text - if ($.trim(node.nodeValue)) { - newNode = this._svg.ownerDocument.createTextNode(node.nodeValue); - } - } - else if (node.nodeType === 4) { // CDATA - if ($.trim(node.nodeValue)) { - try { - newNode = this._svg.ownerDocument.createCDATASection(node.nodeValue); - } - catch (e) { - newNode = this._svg.ownerDocument.createTextNode( - node.nodeValue.replace(/&/g, '&').replace(//g, '>')); - } - } - } - return newNode; - }, - - /** Node names must be lower case and without SVG namespace prefix. - @private - @param name {string} The name to check. - @return {string} The corrected name. */ - _checkName: function(name) { - name = (name.substring(0, 1) >= 'A' && name.substring(0, 1) <= 'Z' ? name.toLowerCase() : name); - return (name.substring(0, 4) === 'svg:' ? name.substring(4) : name); - }, - - /** Load an external SVG document. - @param url {string} The location of the SVG document or - the actual SVG content (starting with '<svg'. - @param settings {boolean|function|object} Either addTo below or onLoad below or - additional settings for the load with attributes below: - addTo {boolean} true to add to what's already there, - or false to clear the canvas first, - changeSize {boolean} true to allow the canvas size to change, - or false to retain the original, - onLoad {function} callback after the document has loaded, - 'this' is the container, receives SVG object and optional error message as a parameter, - parent {string|SVGElement|jQuery} the parent to load into, - defaults to top-level svg element. - @return {SVGWrapper} This wrapper. */ - load: function(url, settings) { - settings = (typeof settings === 'boolean' ? {addTo: settings} : - (typeof settings === 'function' ? {onLoad: settings} : - (typeof settings === 'string' ? {parent: settings} : - (typeof settings === 'object' && settings.nodeName ? {parent: settings} : - (typeof settings === 'object' && settings.jquery ? {parent: settings} : settings || {}))))); - if (!settings.parent && !settings.addTo) { - this.clear(false); - } - var size = [this._svg.getAttribute('width'), this._svg.getAttribute('height')]; - var wrapper = this; - // Report a problem with the load - var reportError = function(message) { - message = $.svg.local.errorLoadingText + ': ' + message; - if (settings.onLoad) { - settings.onLoad.apply(wrapper._container || wrapper._svg, [wrapper, message]); - } - else { - wrapper.text(null, 10, 20, message); - } - }; - // Create a DOM from SVG content - var loadXML4IE = function(data) { - var xml = new ActiveXObject('Microsoft.XMLDOM'); - xml.validateOnParse = false; - xml.resolveExternals = false; - xml.async = false; - xml.loadXML(data); - if (xml.parseError.errorCode !== 0) { - reportError(xml.parseError.reason); - return null; - } - return xml; - }; - // Load the SVG DOM - var loadSVG = function(data) { - if (!data) { - return; - } - if (data.documentElement.nodeName !== 'svg') { - var errors = data.getElementsByTagName('parsererror'); - var messages = (errors.length ? errors[0].getElementsByTagName('div') : []); // Safari - reportError(!errors.length ? '???' : (messages.length ? messages[0] : errors[0]).firstChild.nodeValue); - return; - } - var parent = (settings.parent ? $(settings.parent)[0] : wrapper._svg); - var attrs = {}; - for (var i = 0; i < data.documentElement.attributes.length; i++) { - var attr = data.documentElement.attributes.item(i); - if (!(attr.nodeName === 'version' || attr.nodeName.substring(0, 5) === 'xmlns')) { - attrs[attr.nodeName] = attr.nodeValue; - } - } - wrapper.configure(parent, attrs, !settings.parent); - var nodes = data.documentElement.childNodes; - for (var i = 0; i < nodes.length; i++) { - try { - parent.appendChild(wrapper._svg.ownerDocument.importNode(nodes[i], true)); - if (nodes[i].nodeName === 'script') { - $.globalEval(nodes[i].textContent); - } - } - catch (e) { - wrapper.add(parent, nodes[i]); - } - } - if (!settings.keepRelativeLinks && url.match('/')) { - var base = url.replace(/\/[^\/]*$/, '/'); - $('*', parent).each(function() { - var href = $(this).attr('xlink:href'); - if (href && !href.match(/(^[a-z][-a-z0-9+.]*:.*$)|(^\/.*$)|(^#.*$)/i)) { - $(this).attr('xlink:href', base + href); - } - }); - } - if (!settings.changeSize) { - wrapper.configure(parent, {width: size[0], height: size[1]}); - } - if (settings.onLoad) { - settings.onLoad.apply(wrapper._container || wrapper._svg, [wrapper]); - } - }; - if (url.match('true to clear any root attributes as well, - false to leave them. - @return {SVGWrapper} This wrapper. */ - clear: function(attrsToo) { - if (attrsToo) { - this.configure({}, true); - } - while (this._svg.firstChild) { - this._svg.removeChild(this._svg.firstChild); - } - return this; - }, - - /** Serialise the current diagram into an SVG text document. - @param [node] {SVGElement} The starting node, or SVG root if not specified . - @return {string} The SVG as text. */ - toSVG: function(node) { - node = node || this._svg; - return (typeof XMLSerializer === 'undefined' ? this._toSVG(node) : new XMLSerializer().serializeToString(node)); - }, - - /** Serialise one node in the SVG hierarchy. - @private - @param node {SVGElement} The current node to serialise. - @return {string} The serialised SVG. */ - _toSVG: function(node) { - var svgDoc = ''; - if (!node) { - return svgDoc; - } - if (node.nodeType === 3) { // Text - svgDoc = node.nodeValue; - } - else if (node.nodeType === 4) { // CDATA - svgDoc = ''; - } - else { // Element - svgDoc = '<' + node.nodeName; - if (node.attributes) { - for (var i = 0; i < node.attributes.length; i++) { - var attr = node.attributes.item(i); - if (!($.trim(attr.nodeValue) === '' || attr.nodeValue.match(/^\[object/) || - attr.nodeValue.match(/^function/))) { - svgDoc += ' ' + (attr.namespaceURI === $.svg.xlinkNS ? 'xlink:' : '') + - attr.nodeName + '="' + attr.nodeValue + '"'; - } - } - } - if (node.firstChild) { - svgDoc += '>'; - var child = node.firstChild; - while (child) { - svgDoc += this._toSVG(child); - child = child.nextSibling; - } - svgDoc += ''; - } - else { - svgDoc += '/>'; - } - } - return svgDoc; - } -}); - -/** Helper to generate an SVG path. -

    Obtain an instance from the SVGWrapper object.

    -

    String calls together to generate the path and use its value:

    - @module SVGPath - @example var path = root.createPath(); - root.path(null, path.move(100, 100).line(300, 100).line(200, 300).close(), {fill: 'red'}); - // or - root.path(null, path.move(100, 100).line([[300, 100], [200, 300]]).close(), {fill: 'red'}); */ -function SVGPath() { - this._path = ''; -} - -$.extend(SVGPath.prototype, { - /** Prepare to create a new path. - @return {SVGPath} This path. */ - reset: function() { - this._path = ''; - return this; - }, - - /** Move the pointer to a position. - @param x {number|number[][]} x-coordinate to move to or x-/y-coordinates to move to. - @param [y] {number} y-coordinate to move to (omitted if x is array). - @param [relative=false] {boolean} true for coordinates relative to the current point, - false for coordinates being absolute. - @return {SVGPath} This path. */ - move: function(x, y, relative) { - relative = ($.isArray(x) ? y : relative); - return this._coords((relative ? 'm' : 'M'), x, y); - }, - - /** Draw a line to a position. - @param x {number|number[][]} x-coordinate to move to or x-/y-coordinates to move to. - @param [y] {number} y-coordinate to move to (omitted if x is array). - @param [relative=false] {boolean} true for coordinates relative to the current point, - false for coordinates being absolute. - @return {SVGPath} This path. */ - line: function(x, y, relative) { - relative = ($.isArray(x) ? y : relative); - return this._coords((relative ? 'l' : 'L'), x, y); - }, - - /** Draw a horizontal line to a position. - @param x {number|number[]} x-coordinate to draw to or x-coordinates to draw to. - @param relative {boolean} true for coordinates relative to the current point, - false for coordinates being absolute. - @return {SVGPath} This path. */ - horiz: function(x, relative) { - this._path += (relative ? 'h' : 'H') + ($.isArray(x) ? x.join(' ') : x); - return this; - }, - - /** Draw a vertical line to a position. - @param y {number|number[]} y-coordinate to draw to or y-coordinates to draw to. - @param [relative=false] {boolean} true for coordinates relative to the current point, - false for coordinates being absolute. - @return {SVGPath} This path. */ - vert: function(y, relative) { - this._path += (relative ? 'v' : 'V') + ($.isArray(y) ? y.join(' ') : y); - return this; - }, - - /** Draw a cubic Bézier curve. - @param x1 {number|number[][]} x-coordinate of beginning control point or - x-/y-coordinates of control and end points to draw to. - @param [y1] {number} y-coordinate of beginning control point (omitted if x1 is array). - @param [x2] {number} x-coordinate of ending control point (omitted if x1 is array). - @param [y2] {number} y-coordinate of ending control point (omitted if x1 is array). - @param [x] {number} x-coordinate of curve end (omitted if x1 is array). - @param [y] {number} y-coordinate of curve end (omitted if x1 is array). - @param [relative=false] {boolean} true for coordinates relative to the current point, - false for coordinates being absolute. - @return {SVGPath} This path. */ - curveC: function(x1, y1, x2, y2, x, y, relative) { - relative = ($.isArray(x1) ? y1 : relative); - return this._coords((relative ? 'c' : 'C'), x1, y1, x2, y2, x, y); - }, - - /** Continue a cubic Bézier curve. -

    Starting control point is the reflection of the previous end control point.

    - @param x2 {number|number[][]} x-coordinate of ending control point or - x-/y-coordinates of control and end points to draw to. - @param [y2] {number} y-coordinate of ending control point (omitted if x2 is array). - @param [x] {number} x-coordinate of curve end (omitted if x2 is array). - @param [y] {number} y-coordinate of curve end (omitted if x2 is array). - @param [relative=false] {boolean} true for coordinates relative to the current point, - false for coordinates being absolute. - @return {SVGPath} This path. */ - smoothC: function(x2, y2, x, y, relative) { - relative = ($.isArray(x2) ? y2 : relative); - return this._coords((relative ? 's' : 'S'), x2, y2, x, y); - }, - - /** Draw a quadratic Bézier curve. - @param x1 {number|number[][]} x-coordinate of control point or - x-/y-coordinates of control and end points to draw to. - @param [y1] {number} y-coordinate of control point (omitted if x1 is array). - @param [x] {number} x-coordinate of curve end (omitted if x1 is array). - @param [y] {number} y-coordinate of curve end (omitted if x1 is array). - @param [relative=false] {boolean} true for coordinates relative to the current point, - false for coordinates being absolute. - @return {SVGPath} This path. */ - curveQ: function(x1, y1, x, y, relative) { - relative = ($.isArray(x1) ? y1 : relative); - return this._coords((relative ? 'q' : 'Q'), x1, y1, x, y); - }, - - /** Continue a quadratic Bézier curve. -

    Control point is the reflection of the previous control point.

    - @param x {number|number[][]} x-coordinate of curve end or x-/y-coordinates of points to draw to. - @param [y] {number} y-coordinate of curve end (omitted if x is array). - @param [relative=false] {boolean} true for coordinates relative to the current point, - false for coordinates being absolute. - @return {SVGPath} This path. */ - smoothQ: function(x, y, relative) { - relative = ($.isArray(x) ? y : relative); - return this._coords((relative ? 't' : 'T'), x, y); - }, - - /** Generate a path command with (a list of) coordinates. - @private - @param cmd {string} The command for the path element. - @param x1 {number} The first x-coordinate. - @param y1 {number} The first y-coordinate. - @param [x2] {number} The second x-coordinate. - @param [y2] {number} The second y-coordinate. - @param [x3] {number} The third x-coordinate. - @param [y3] {number} The third y-coordinate. - @return {SVGPath} This path. */ - _coords: function(cmd, x1, y1, x2, y2, x3, y3) { - if ($.isArray(x1)) { - for (var i = 0; i < x1.length; i++) { - var cs = x1[i]; - this._path += (i === 0 ? cmd : ' ') + cs[0] + ',' + cs[1] + (cs.length < 4 ? '' : - ' ' + cs[2] + ',' + cs[3] + (cs.length < 6 ? '': ' ' + cs[4] + ',' + cs[5])); - } - } - else { - this._path += cmd + x1 + ',' + y1 + - (x2 == null ? '' : ' ' + x2 + ',' + y2 + (x3 == null ? '' : ' ' + x3 + ',' + y3)); - } - return this; - }, - - /** Draw an arc to a position. - @param rx {number|any[][]} x-radius of arc or x-/y-coordinates and flags for points to draw to. - @param [ry] {number} y-radius of arc (omitted if rx is array). - @param [xRotate] {number} x-axis rotation (degrees, clockwise) (omitted if rx is array). - @param [large] {boolean} true to draw the large part of the arc, - false to draw the small part (omitted if rx is array). - @param [clockwise] {boolean} true to draw the clockwise arc, - false to draw the anti-clockwise arc (omitted if rx is array). - @param [x] {number} x-coordinate of arc end (omitted if rx is array). - @param [y] {number} y-coordinate of arc end (omitted if rx is array). - @param [relative=false] {boolean} true for coordinates relative to the current point, - false for coordinates being absolute. - @return {SVGPath} This path. */ - arc: function(rx, ry, xRotate, large, clockwise, x, y, relative) { - relative = ($.isArray(rx) ? ry : relative); - this._path += (relative ? 'a' : 'A'); - if ($.isArray(rx)) { - for (var i = 0; i < rx.length; i++) { - var cs = rx[i]; - this._path += (i === 0 ? '' : ' ') + cs[0] + ',' + cs[1] + ' ' + - cs[2] + ' ' + (cs[3] ? '1' : '0') + ',' + (cs[4] ? '1' : '0') + ' ' + cs[5] + ',' + cs[6]; - } - } - else { - this._path += rx + ',' + ry + ' ' + xRotate + ' ' + - (large ? '1' : '0') + ',' + (clockwise ? '1' : '0') + ' ' + x + ',' + y; - } - return this; - }, - - /** Close the current path. - @return {SVGPath} This path. */ - close: function() { - this._path += 'z'; - return this; - }, - - /** Return the string rendering of the specified path. - @return {string} The stringified path. */ - path: function() { - return this._path; - } -}); - -SVGPath.prototype.moveTo = SVGPath.prototype.move; -SVGPath.prototype.lineTo = SVGPath.prototype.line; -SVGPath.prototype.horizTo = SVGPath.prototype.horiz; -SVGPath.prototype.vertTo = SVGPath.prototype.vert; -SVGPath.prototype.curveCTo = SVGPath.prototype.curveC; -SVGPath.prototype.smoothCTo = SVGPath.prototype.smoothC; -SVGPath.prototype.curveQTo = SVGPath.prototype.curveQ; -SVGPath.prototype.smoothQTo = SVGPath.prototype.smoothQ; -SVGPath.prototype.arcTo = SVGPath.prototype.arc; - -/** Helper to generate an SVG text object. -

    Obtain an instance from the SVGWrapper object.

    -

    String calls together to generate the text and use its value:

    - @module SVGText - @example var text = root.createText(); - root.text(null, x, y, text.string('This is '). - span('red', {fill: 'red'}).string('!'), {fill: 'blue'}); */ -function SVGText() { - this._parts = []; // The components of the text object -} - -$.extend(SVGText.prototype, { - /** Prepare to create a new text object. - @return {SVGText} This text object. */ - reset: function() { - this._parts = []; - return this; - }, - - /** Add a straight string value. - @param value {string} The actual text. - @return {SVGText} This text object. */ - string: function(value) { - this._parts.push(['text', value]); - return this; - }, - - /** Add a separate text span that has its own settings. - @param value {string} The actual text. - @param settings {object} The settings for this text. - @return {SVGText} This text object. */ - span: function(value, settings) { - this._parts.push(['tspan', value, settings]); - return this; - }, - - /** Add a reference to a previously defined text string. - @param id {string} The ID of the actual text. - @param settings {object} The settings for this text. - @return {SVGText} This text object. */ - ref: function(id, settings) { - this._parts.push(['tref', id, settings]); - return this; - }, - - /** Add text drawn along a path. - @param id {string} The ID of the path. - @param value {string} The actual text. - @param settings {object} The settings for this text. - @return {SVGText} This text object. */ - path: function(id, value, settings) { - this._parts.push(['textpath', value, $.extend({href: id}, settings || {})]); - return this; - } -}); - -/** Attach the SVG functionality to a jQuery selection. - @param [command] {string} The command to run. - @param [options] {object} The new settings to use for these SVG instances. - @return {jQuery} For chaining further calls. */ -$.fn.svg = function(options) { - var otherArgs = Array.prototype.slice.call(arguments, 1); - if (typeof options === 'string' && options === 'get') { - return $.svg['_' + options + 'SVG'].apply($.svg, [this[0]].concat(otherArgs)); - } - return this.each(function() { - if (typeof options === 'string') { - $.svg['_' + options + 'SVG'].apply($.svg, [this].concat(otherArgs)); - } - else { - $.svg._attachSVG(this, options || {}); - } - }); -}; - -// Singleton primary SVG interface -$.svg = new SVGManager(); - -})(jQuery); diff -Nru phpmyadmin-5.1.3+dfsg1/js/vendor/jquery/jquery-ui.min.js phpmyadmin-5.1.4+dfsg1/js/vendor/jquery/jquery-ui.min.js --- phpmyadmin-5.1.3+dfsg1/js/vendor/jquery/jquery-ui.min.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/vendor/jquery/jquery-ui.min.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,13 +1,6 @@ -/*! jQuery UI - v1.12.1 - 2016-09-14 +/*! jQuery UI - v1.13.1 - 2022-01-20 * http://jqueryui.com -* Includes: widget.js, position.js, data.js, disable-selection.js, effect.js, effects/effect-blind.js, effects/effect-bounce.js, effects/effect-clip.js, effects/effect-drop.js, effects/effect-explode.js, effects/effect-fade.js, effects/effect-fold.js, effects/effect-highlight.js, effects/effect-puff.js, effects/effect-pulsate.js, effects/effect-scale.js, effects/effect-shake.js, effects/effect-size.js, effects/effect-slide.js, effects/effect-transfer.js, focusable.js, form-reset-mixin.js, jquery-1-7.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/accordion.js, widgets/autocomplete.js, widgets/button.js, widgets/checkboxradio.js, widgets/controlgroup.js, widgets/datepicker.js, widgets/dialog.js, widgets/draggable.js, widgets/droppable.js, widgets/menu.js, widgets/mouse.js, widgets/progressbar.js, widgets/resizable.js, widgets/selectable.js, widgets/selectmenu.js, widgets/slider.js, widgets/sortable.js, widgets/spinner.js, widgets/tabs.js, widgets/tooltip.js +* Includes: widget.js, position.js, data.js, disable-selection.js, effect.js, effects/effect-blind.js, effects/effect-bounce.js, effects/effect-clip.js, effects/effect-drop.js, effects/effect-explode.js, effects/effect-fade.js, effects/effect-fold.js, effects/effect-highlight.js, effects/effect-puff.js, effects/effect-pulsate.js, effects/effect-scale.js, effects/effect-shake.js, effects/effect-size.js, effects/effect-slide.js, effects/effect-transfer.js, focusable.js, form-reset-mixin.js, jquery-patch.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/accordion.js, widgets/autocomplete.js, widgets/button.js, widgets/checkboxradio.js, widgets/controlgroup.js, widgets/datepicker.js, widgets/dialog.js, widgets/draggable.js, widgets/droppable.js, widgets/menu.js, widgets/mouse.js, widgets/progressbar.js, widgets/resizable.js, widgets/selectable.js, widgets/selectmenu.js, widgets/slider.js, widgets/sortable.js, widgets/spinner.js, widgets/tabs.js, widgets/tooltip.js * Copyright jQuery Foundation and other contributors; Licensed MIT */ -(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(t){function e(t){for(var e=t.css("visibility");"inherit"===e;)t=t.parent(),e=t.css("visibility");return"hidden"!==e}function i(t){for(var e,i;t.length&&t[0]!==document;){if(e=t.css("position"),("absolute"===e||"relative"===e||"fixed"===e)&&(i=parseInt(t.css("zIndex"),10),!isNaN(i)&&0!==i))return i;t=t.parent()}return 0}function s(){this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},t.extend(this._defaults,this.regional[""]),this.regional.en=t.extend(!0,{},this.regional[""]),this.regional["en-US"]=t.extend(!0,{},this.regional.en),this.dpDiv=n(t("
    "))}function n(e){var i="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return e.on("mouseout",i,function(){t(this).removeClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&t(this).removeClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&t(this).removeClass("ui-datepicker-next-hover")}).on("mouseover",i,o)}function o(){t.datepicker._isDisabledDatepicker(m.inline?m.dpDiv.parent()[0]:m.input[0])||(t(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),t(this).addClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&t(this).addClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&t(this).addClass("ui-datepicker-next-hover"))}function a(e,i){t.extend(e,i);for(var s in i)null==i[s]&&(e[s]=i[s]);return e}function r(t){return function(){var e=this.element.val();t.apply(this,arguments),this._refresh(),e!==this.element.val()&&this._trigger("change")}}t.ui=t.ui||{},t.ui.version="1.12.1";var h=0,l=Array.prototype.slice;t.cleanData=function(e){return function(i){var s,n,o;for(o=0;null!=(n=i[o]);o++)try{s=t._data(n,"events"),s&&s.remove&&t(n).triggerHandler("remove")}catch(a){}e(i)}}(t.cleanData),t.widget=function(e,i,s){var n,o,a,r={},h=e.split(".")[0];e=e.split(".")[1];var l=h+"-"+e;return s||(s=i,i=t.Widget),t.isArray(s)&&(s=t.extend.apply(null,[{}].concat(s))),t.expr[":"][l.toLowerCase()]=function(e){return!!t.data(e,l)},t[h]=t[h]||{},n=t[h][e],o=t[h][e]=function(t,e){return this._createWidget?(arguments.length&&this._createWidget(t,e),void 0):new o(t,e)},t.extend(o,n,{version:s.version,_proto:t.extend({},s),_childConstructors:[]}),a=new i,a.options=t.widget.extend({},a.options),t.each(s,function(e,s){return t.isFunction(s)?(r[e]=function(){function t(){return i.prototype[e].apply(this,arguments)}function n(t){return i.prototype[e].apply(this,t)}return function(){var e,i=this._super,o=this._superApply;return this._super=t,this._superApply=n,e=s.apply(this,arguments),this._super=i,this._superApply=o,e}}(),void 0):(r[e]=s,void 0)}),o.prototype=t.widget.extend(a,{widgetEventPrefix:n?a.widgetEventPrefix||e:e},r,{constructor:o,namespace:h,widgetName:e,widgetFullName:l}),n?(t.each(n._childConstructors,function(e,i){var s=i.prototype;t.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete n._childConstructors):i._childConstructors.push(o),t.widget.bridge(e,o),o},t.widget.extend=function(e){for(var i,s,n=l.call(arguments,1),o=0,a=n.length;a>o;o++)for(i in n[o])s=n[o][i],n[o].hasOwnProperty(i)&&void 0!==s&&(e[i]=t.isPlainObject(s)?t.isPlainObject(e[i])?t.widget.extend({},e[i],s):t.widget.extend({},s):s);return e},t.widget.bridge=function(e,i){var s=i.prototype.widgetFullName||e;t.fn[e]=function(n){var o="string"==typeof n,a=l.call(arguments,1),r=this;return o?this.length||"instance"!==n?this.each(function(){var i,o=t.data(this,s);return"instance"===n?(r=o,!1):o?t.isFunction(o[n])&&"_"!==n.charAt(0)?(i=o[n].apply(o,a),i!==o&&void 0!==i?(r=i&&i.jquery?r.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+n+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+n+"'")}):r=void 0:(a.length&&(n=t.widget.extend.apply(null,[n].concat(a))),this.each(function(){var e=t.data(this,s);e?(e.option(n||{}),e._init&&e._init()):t.data(this,s,new i(n,this))})),r}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
    ",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,i){i=t(i||this.defaultElement||this)[0],this.element=t(i),this.uuid=h++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},i!==this&&(t.data(i,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===i&&this.destroy()}}),this.document=t(i.style?i.ownerDocument:i.document||i),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("
    "),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widthi?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,g=-2*e.offset[1];0>c?(s=t.top+p+f+g+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+g)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+g-h,(i>0||u>a(i))&&(t.top+=p+f+g))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}});var c="ui-effects-",u="ui-effects-style",d="ui-effects-animated",p=t;t.effects={effect:{}},function(t,e){function i(t,e,i){var s=u[e.type]||{};return null==t?i||!e.def?null:e.def:(t=s.floor?~~t:parseFloat(t),isNaN(t)?e.def:s.mod?(t+s.mod)%s.mod:0>t?0:t>s.max?s.max:t)}function s(i){var s=l(),n=s._rgba=[];return i=i.toLowerCase(),f(h,function(t,o){var a,r=o.re.exec(i),h=r&&o.parse(r),l=o.space||"rgba";return h?(a=s[l](h),s[c[l].cache]=a[c[l].cache],n=s._rgba=a._rgba,!1):e}),n.length?("0,0,0,0"===n.join()&&t.extend(n,o.transparent),s):o[i]}function n(t,e,i){return i=(i+1)%1,1>6*i?t+6*(e-t)*i:1>2*i?e:2>3*i?t+6*(e-t)*(2/3-i):t}var o,a="backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",r=/^([\-+])=\s*(\d+\.?\d*)/,h=[{re:/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){return[t[1],t[2],t[3],t[4]]}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){return[2.55*t[1],2.55*t[2],2.55*t[3],t[4]]}},{re:/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,parse:function(t){return[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]}},{re:/#([a-f0-9])([a-f0-9])([a-f0-9])/,parse:function(t){return[parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16),parseInt(t[3]+t[3],16)]}},{re:/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,space:"hsla",parse:function(t){return[t[1],t[2]/100,t[3]/100,t[4]]}}],l=t.Color=function(e,i,s,n){return new t.Color.fn.parse(e,i,s,n)},c={rgba:{props:{red:{idx:0,type:"byte"},green:{idx:1,type:"byte"},blue:{idx:2,type:"byte"}}},hsla:{props:{hue:{idx:0,type:"degrees"},saturation:{idx:1,type:"percent"},lightness:{idx:2,type:"percent"}}}},u={"byte":{floor:!0,max:255},percent:{max:1},degrees:{mod:360,floor:!0}},d=l.support={},p=t("

    ")[0],f=t.each;p.style.cssText="background-color:rgba(1,1,1,.5)",d.rgba=p.style.backgroundColor.indexOf("rgba")>-1,f(c,function(t,e){e.cache="_"+t,e.props.alpha={idx:3,type:"percent",def:1}}),l.fn=t.extend(l.prototype,{parse:function(n,a,r,h){if(n===e)return this._rgba=[null,null,null,null],this;(n.jquery||n.nodeType)&&(n=t(n).css(a),a=e);var u=this,d=t.type(n),p=this._rgba=[];return a!==e&&(n=[n,a,r,h],d="array"),"string"===d?this.parse(s(n)||o._default):"array"===d?(f(c.rgba.props,function(t,e){p[e.idx]=i(n[e.idx],e)}),this):"object"===d?(n instanceof l?f(c,function(t,e){n[e.cache]&&(u[e.cache]=n[e.cache].slice())}):f(c,function(e,s){var o=s.cache;f(s.props,function(t,e){if(!u[o]&&s.to){if("alpha"===t||null==n[t])return;u[o]=s.to(u._rgba)}u[o][e.idx]=i(n[t],e,!0)}),u[o]&&0>t.inArray(null,u[o].slice(0,3))&&(u[o][3]=1,s.from&&(u._rgba=s.from(u[o])))}),this):e},is:function(t){var i=l(t),s=!0,n=this;return f(c,function(t,o){var a,r=i[o.cache];return r&&(a=n[o.cache]||o.to&&o.to(n._rgba)||[],f(o.props,function(t,i){return null!=r[i.idx]?s=r[i.idx]===a[i.idx]:e})),s}),s},_space:function(){var t=[],e=this;return f(c,function(i,s){e[s.cache]&&t.push(i)}),t.pop()},transition:function(t,e){var s=l(t),n=s._space(),o=c[n],a=0===this.alpha()?l("transparent"):this,r=a[o.cache]||o.to(a._rgba),h=r.slice();return s=s[o.cache],f(o.props,function(t,n){var o=n.idx,a=r[o],l=s[o],c=u[n.type]||{};null!==l&&(null===a?h[o]=l:(c.mod&&(l-a>c.mod/2?a+=c.mod:a-l>c.mod/2&&(a-=c.mod)),h[o]=i((l-a)*e+a,n)))}),this[n](h)},blend:function(e){if(1===this._rgba[3])return this;var i=this._rgba.slice(),s=i.pop(),n=l(e)._rgba;return l(t.map(i,function(t,e){return(1-s)*n[e]+s*t}))},toRgbaString:function(){var e="rgba(",i=t.map(this._rgba,function(t,e){return null==t?e>2?1:0:t});return 1===i[3]&&(i.pop(),e="rgb("),e+i.join()+")"},toHslaString:function(){var e="hsla(",i=t.map(this.hsla(),function(t,e){return null==t&&(t=e>2?1:0),e&&3>e&&(t=Math.round(100*t)+"%"),t});return 1===i[3]&&(i.pop(),e="hsl("),e+i.join()+")"},toHexString:function(e){var i=this._rgba.slice(),s=i.pop();return e&&i.push(~~(255*s)),"#"+t.map(i,function(t){return t=(t||0).toString(16),1===t.length?"0"+t:t}).join("")},toString:function(){return 0===this._rgba[3]?"transparent":this.toRgbaString()}}),l.fn.parse.prototype=l.fn,c.hsla.to=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e,i,s=t[0]/255,n=t[1]/255,o=t[2]/255,a=t[3],r=Math.max(s,n,o),h=Math.min(s,n,o),l=r-h,c=r+h,u=.5*c;return e=h===r?0:s===r?60*(n-o)/l+360:n===r?60*(o-s)/l+120:60*(s-n)/l+240,i=0===l?0:.5>=u?l/c:l/(2-c),[Math.round(e)%360,i,u,null==a?1:a]},c.hsla.from=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e=t[0]/360,i=t[1],s=t[2],o=t[3],a=.5>=s?s*(1+i):s+i-s*i,r=2*s-a;return[Math.round(255*n(r,a,e+1/3)),Math.round(255*n(r,a,e)),Math.round(255*n(r,a,e-1/3)),o]},f(c,function(s,n){var o=n.props,a=n.cache,h=n.to,c=n.from;l.fn[s]=function(s){if(h&&!this[a]&&(this[a]=h(this._rgba)),s===e)return this[a].slice();var n,r=t.type(s),u="array"===r||"object"===r?s:arguments,d=this[a].slice();return f(o,function(t,e){var s=u["object"===r?t:e.idx];null==s&&(s=d[e.idx]),d[e.idx]=i(s,e)}),c?(n=l(c(d)),n[a]=d,n):l(d)},f(o,function(e,i){l.fn[e]||(l.fn[e]=function(n){var o,a=t.type(n),h="alpha"===e?this._hsla?"hsla":"rgba":s,l=this[h](),c=l[i.idx];return"undefined"===a?c:("function"===a&&(n=n.call(this,c),a=t.type(n)),null==n&&i.empty?this:("string"===a&&(o=r.exec(n),o&&(n=c+parseFloat(o[2])*("+"===o[1]?1:-1))),l[i.idx]=n,this[h](l)))})})}),l.hook=function(e){var i=e.split(" ");f(i,function(e,i){t.cssHooks[i]={set:function(e,n){var o,a,r="";if("transparent"!==n&&("string"!==t.type(n)||(o=s(n)))){if(n=l(o||n),!d.rgba&&1!==n._rgba[3]){for(a="backgroundColor"===i?e.parentNode:e;(""===r||"transparent"===r)&&a&&a.style;)try{r=t.css(a,"backgroundColor"),a=a.parentNode}catch(h){}n=n.blend(r&&"transparent"!==r?r:"_default")}n=n.toRgbaString()}try{e.style[i]=n}catch(h){}}},t.fx.step[i]=function(e){e.colorInit||(e.start=l(e.elem,i),e.end=l(e.end),e.colorInit=!0),t.cssHooks[i].set(e.elem,e.start.transition(e.end,e.pos))}})},l.hook(a),t.cssHooks.borderColor={expand:function(t){var e={};return f(["Top","Right","Bottom","Left"],function(i,s){e["border"+s+"Color"]=t}),e}},o=t.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}}(p),function(){function e(e){var i,s,n=e.ownerDocument.defaultView?e.ownerDocument.defaultView.getComputedStyle(e,null):e.currentStyle,o={};if(n&&n.length&&n[0]&&n[n[0]])for(s=n.length;s--;)i=n[s],"string"==typeof n[i]&&(o[t.camelCase(i)]=n[i]);else for(i in n)"string"==typeof n[i]&&(o[i]=n[i]);return o}function i(e,i){var s,o,a={};for(s in i)o=i[s],e[s]!==o&&(n[s]||(t.fx.step[s]||!isNaN(parseFloat(o)))&&(a[s]=o));return a}var s=["add","remove","toggle"],n={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};t.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(e,i){t.fx.step[i]=function(t){("none"!==t.end&&!t.setAttr||1===t.pos&&!t.setAttr)&&(p.style(t.elem,i,t.end),t.setAttr=!0)}}),t.fn.addBack||(t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.effects.animateClass=function(n,o,a,r){var h=t.speed(o,a,r);return this.queue(function(){var o,a=t(this),r=a.attr("class")||"",l=h.children?a.find("*").addBack():a;l=l.map(function(){var i=t(this);return{el:i,start:e(this)}}),o=function(){t.each(s,function(t,e){n[e]&&a[e+"Class"](n[e])})},o(),l=l.map(function(){return this.end=e(this.el[0]),this.diff=i(this.start,this.end),this}),a.attr("class",r),l=l.map(function(){var e=this,i=t.Deferred(),s=t.extend({},h,{queue:!1,complete:function(){i.resolve(e)}});return this.el.animate(this.diff,s),i.promise()}),t.when.apply(t,l.get()).done(function(){o(),t.each(arguments,function(){var e=this.el;t.each(this.diff,function(t){e.css(t,"")})}),h.complete.call(a[0])})})},t.fn.extend({addClass:function(e){return function(i,s,n,o){return s?t.effects.animateClass.call(this,{add:i},s,n,o):e.apply(this,arguments)}}(t.fn.addClass),removeClass:function(e){return function(i,s,n,o){return arguments.length>1?t.effects.animateClass.call(this,{remove:i},s,n,o):e.apply(this,arguments)}}(t.fn.removeClass),toggleClass:function(e){return function(i,s,n,o,a){return"boolean"==typeof s||void 0===s?n?t.effects.animateClass.call(this,s?{add:i}:{remove:i},n,o,a):e.apply(this,arguments):t.effects.animateClass.call(this,{toggle:i},s,n,o)}}(t.fn.toggleClass),switchClass:function(e,i,s,n,o){return t.effects.animateClass.call(this,{add:i,remove:e},s,n,o)}})}(),function(){function e(e,i,s,n){return t.isPlainObject(e)&&(i=e,e=e.effect),e={effect:e},null==i&&(i={}),t.isFunction(i)&&(n=i,s=null,i={}),("number"==typeof i||t.fx.speeds[i])&&(n=s,s=i,i={}),t.isFunction(s)&&(n=s,s=null),i&&t.extend(e,i),s=s||i.duration,e.duration=t.fx.off?0:"number"==typeof s?s:s in t.fx.speeds?t.fx.speeds[s]:t.fx.speeds._default,e.complete=n||i.complete,e}function i(e){return!e||"number"==typeof e||t.fx.speeds[e]?!0:"string"!=typeof e||t.effects.effect[e]?t.isFunction(e)?!0:"object"!=typeof e||e.effect?!1:!0:!0}function s(t,e){var i=e.outerWidth(),s=e.outerHeight(),n=/^rect\((-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto)\)$/,o=n.exec(t)||["",0,i,s,0];return{top:parseFloat(o[1])||0,right:"auto"===o[2]?i:parseFloat(o[2]),bottom:"auto"===o[3]?s:parseFloat(o[3]),left:parseFloat(o[4])||0}}t.expr&&t.expr.filters&&t.expr.filters.animated&&(t.expr.filters.animated=function(e){return function(i){return!!t(i).data(d)||e(i)}}(t.expr.filters.animated)),t.uiBackCompat!==!1&&t.extend(t.effects,{save:function(t,e){for(var i=0,s=e.length;s>i;i++)null!==e[i]&&t.data(c+e[i],t[0].style[e[i]])},restore:function(t,e){for(var i,s=0,n=e.length;n>s;s++)null!==e[s]&&(i=t.data(c+e[s]),t.css(e[s],i))},setMode:function(t,e){return"toggle"===e&&(e=t.is(":hidden")?"show":"hide"),e},createWrapper:function(e){if(e.parent().is(".ui-effects-wrapper"))return e.parent();var i={width:e.outerWidth(!0),height:e.outerHeight(!0),"float":e.css("float")},s=t("

    ").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),n={width:e.width(),height:e.height()},o=document.activeElement;try{o.id}catch(a){o=document.body}return e.wrap(s),(e[0]===o||t.contains(e[0],o))&&t(o).trigger("focus"),s=e.parent(),"static"===e.css("position")?(s.css({position:"relative"}),e.css({position:"relative"})):(t.extend(i,{position:e.css("position"),zIndex:e.css("z-index")}),t.each(["top","left","bottom","right"],function(t,s){i[s]=e.css(s),isNaN(parseInt(i[s],10))&&(i[s]="auto")}),e.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),e.css(n),s.css(i).show()},removeWrapper:function(e){var i=document.activeElement;return e.parent().is(".ui-effects-wrapper")&&(e.parent().replaceWith(e),(e[0]===i||t.contains(e[0],i))&&t(i).trigger("focus")),e}}),t.extend(t.effects,{version:"1.12.1",define:function(e,i,s){return s||(s=i,i="effect"),t.effects.effect[e]=s,t.effects.effect[e].mode=i,s},scaledDimensions:function(t,e,i){if(0===e)return{height:0,width:0,outerHeight:0,outerWidth:0};var s="horizontal"!==i?(e||100)/100:1,n="vertical"!==i?(e||100)/100:1;return{height:t.height()*n,width:t.width()*s,outerHeight:t.outerHeight()*n,outerWidth:t.outerWidth()*s}},clipToBox:function(t){return{width:t.clip.right-t.clip.left,height:t.clip.bottom-t.clip.top,left:t.clip.left,top:t.clip.top}},unshift:function(t,e,i){var s=t.queue();e>1&&s.splice.apply(s,[1,0].concat(s.splice(e,i))),t.dequeue()},saveStyle:function(t){t.data(u,t[0].style.cssText)},restoreStyle:function(t){t[0].style.cssText=t.data(u)||"",t.removeData(u)},mode:function(t,e){var i=t.is(":hidden");return"toggle"===e&&(e=i?"show":"hide"),(i?"hide"===e:"show"===e)&&(e="none"),e},getBaseline:function(t,e){var i,s;switch(t[0]){case"top":i=0;break;case"middle":i=.5;break;case"bottom":i=1;break;default:i=t[0]/e.height}switch(t[1]){case"left":s=0;break;case"center":s=.5;break;case"right":s=1;break;default:s=t[1]/e.width}return{x:s,y:i}},createPlaceholder:function(e){var i,s=e.css("position"),n=e.position();return e.css({marginTop:e.css("marginTop"),marginBottom:e.css("marginBottom"),marginLeft:e.css("marginLeft"),marginRight:e.css("marginRight")}).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()),/^(static|relative)/.test(s)&&(s="absolute",i=t("<"+e[0].nodeName+">").insertAfter(e).css({display:/^(inline|ruby)/.test(e.css("display"))?"inline-block":"block",visibility:"hidden",marginTop:e.css("marginTop"),marginBottom:e.css("marginBottom"),marginLeft:e.css("marginLeft"),marginRight:e.css("marginRight"),"float":e.css("float")}).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).addClass("ui-effects-placeholder"),e.data(c+"placeholder",i)),e.css({position:s,left:n.left,top:n.top}),i},removePlaceholder:function(t){var e=c+"placeholder",i=t.data(e);i&&(i.remove(),t.removeData(e))},cleanUp:function(e){t.effects.restoreStyle(e),t.effects.removePlaceholder(e)},setTransition:function(e,i,s,n){return n=n||{},t.each(i,function(t,i){var o=e.cssUnit(i);o[0]>0&&(n[i]=o[0]*s+o[1])}),n}}),t.fn.extend({effect:function(){function i(e){function i(){r.removeData(d),t.effects.cleanUp(r),"hide"===s.mode&&r.hide(),a()}function a(){t.isFunction(h)&&h.call(r[0]),t.isFunction(e)&&e()}var r=t(this);s.mode=c.shift(),t.uiBackCompat===!1||o?"none"===s.mode?(r[l](),a()):n.call(r[0],s,i):(r.is(":hidden")?"hide"===l:"show"===l)?(r[l](),a()):n.call(r[0],s,a)}var s=e.apply(this,arguments),n=t.effects.effect[s.effect],o=n.mode,a=s.queue,r=a||"fx",h=s.complete,l=s.mode,c=[],u=function(e){var i=t(this),s=t.effects.mode(i,l)||o;i.data(d,!0),c.push(s),o&&("show"===s||s===o&&"hide"===s)&&i.show(),o&&"none"===s||t.effects.saveStyle(i),t.isFunction(e)&&e()};return t.fx.off||!n?l?this[l](s.duration,h):this.each(function(){h&&h.call(this)}):a===!1?this.each(u).each(i):this.queue(r,u).queue(r,i)},show:function(t){return function(s){if(i(s))return t.apply(this,arguments);var n=e.apply(this,arguments);return n.mode="show",this.effect.call(this,n) -}}(t.fn.show),hide:function(t){return function(s){if(i(s))return t.apply(this,arguments);var n=e.apply(this,arguments);return n.mode="hide",this.effect.call(this,n)}}(t.fn.hide),toggle:function(t){return function(s){if(i(s)||"boolean"==typeof s)return t.apply(this,arguments);var n=e.apply(this,arguments);return n.mode="toggle",this.effect.call(this,n)}}(t.fn.toggle),cssUnit:function(e){var i=this.css(e),s=[];return t.each(["em","px","%","pt"],function(t,e){i.indexOf(e)>0&&(s=[parseFloat(i),e])}),s},cssClip:function(t){return t?this.css("clip","rect("+t.top+"px "+t.right+"px "+t.bottom+"px "+t.left+"px)"):s(this.css("clip"),this)},transfer:function(e,i){var s=t(this),n=t(e.to),o="fixed"===n.css("position"),a=t("body"),r=o?a.scrollTop():0,h=o?a.scrollLeft():0,l=n.offset(),c={top:l.top-r,left:l.left-h,height:n.innerHeight(),width:n.innerWidth()},u=s.offset(),d=t("
    ").appendTo("body").addClass(e.className).css({top:u.top-r,left:u.left-h,height:s.innerHeight(),width:s.innerWidth(),position:o?"fixed":"absolute"}).animate(c,e.duration,e.easing,function(){d.remove(),t.isFunction(i)&&i()})}}),t.fx.step.clip=function(e){e.clipInit||(e.start=t(e.elem).cssClip(),"string"==typeof e.end&&(e.end=s(e.end,e.elem)),e.clipInit=!0),t(e.elem).cssClip({top:e.pos*(e.end.top-e.start.top)+e.start.top,right:e.pos*(e.end.right-e.start.right)+e.start.right,bottom:e.pos*(e.end.bottom-e.start.bottom)+e.start.bottom,left:e.pos*(e.end.left-e.start.left)+e.start.left})}}(),function(){var e={};t.each(["Quad","Cubic","Quart","Quint","Expo"],function(t,i){e[i]=function(e){return Math.pow(e,t+2)}}),t.extend(e,{Sine:function(t){return 1-Math.cos(t*Math.PI/2)},Circ:function(t){return 1-Math.sqrt(1-t*t)},Elastic:function(t){return 0===t||1===t?t:-Math.pow(2,8*(t-1))*Math.sin((80*(t-1)-7.5)*Math.PI/15)},Back:function(t){return t*t*(3*t-2)},Bounce:function(t){for(var e,i=4;((e=Math.pow(2,--i))-1)/11>t;);return 1/Math.pow(4,3-i)-7.5625*Math.pow((3*e-2)/22-t,2)}}),t.each(e,function(e,i){t.easing["easeIn"+e]=i,t.easing["easeOut"+e]=function(t){return 1-i(1-t)},t.easing["easeInOut"+e]=function(t){return.5>t?i(2*t)/2:1-i(-2*t+2)/2}})}();var f=t.effects;t.effects.define("blind","hide",function(e,i){var s={up:["bottom","top"],vertical:["bottom","top"],down:["top","bottom"],left:["right","left"],horizontal:["right","left"],right:["left","right"]},n=t(this),o=e.direction||"up",a=n.cssClip(),r={clip:t.extend({},a)},h=t.effects.createPlaceholder(n);r.clip[s[o][0]]=r.clip[s[o][1]],"show"===e.mode&&(n.cssClip(r.clip),h&&h.css(t.effects.clipToBox(r)),r.clip=a),h&&h.animate(t.effects.clipToBox(r),e.duration,e.easing),n.animate(r,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("bounce",function(e,i){var s,n,o,a=t(this),r=e.mode,h="hide"===r,l="show"===r,c=e.direction||"up",u=e.distance,d=e.times||5,p=2*d+(l||h?1:0),f=e.duration/p,g=e.easing,m="up"===c||"down"===c?"top":"left",_="up"===c||"left"===c,v=0,b=a.queue().length;for(t.effects.createPlaceholder(a),o=a.css(m),u||(u=a["top"===m?"outerHeight":"outerWidth"]()/3),l&&(n={opacity:1},n[m]=o,a.css("opacity",0).css(m,_?2*-u:2*u).animate(n,f,g)),h&&(u/=Math.pow(2,d-1)),n={},n[m]=o;d>v;v++)s={},s[m]=(_?"-=":"+=")+u,a.animate(s,f,g).animate(n,f,g),u=h?2*u:u/2;h&&(s={opacity:0},s[m]=(_?"-=":"+=")+u,a.animate(s,f,g)),a.queue(i),t.effects.unshift(a,b,p+1)}),t.effects.define("clip","hide",function(e,i){var s,n={},o=t(this),a=e.direction||"vertical",r="both"===a,h=r||"horizontal"===a,l=r||"vertical"===a;s=o.cssClip(),n.clip={top:l?(s.bottom-s.top)/2:s.top,right:h?(s.right-s.left)/2:s.right,bottom:l?(s.bottom-s.top)/2:s.bottom,left:h?(s.right-s.left)/2:s.left},t.effects.createPlaceholder(o),"show"===e.mode&&(o.cssClip(n.clip),n.clip=s),o.animate(n,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("drop","hide",function(e,i){var s,n=t(this),o=e.mode,a="show"===o,r=e.direction||"left",h="up"===r||"down"===r?"top":"left",l="up"===r||"left"===r?"-=":"+=",c="+="===l?"-=":"+=",u={opacity:0};t.effects.createPlaceholder(n),s=e.distance||n["top"===h?"outerHeight":"outerWidth"](!0)/2,u[h]=l+s,a&&(n.css(u),u[h]=c+s,u.opacity=1),n.animate(u,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("explode","hide",function(e,i){function s(){b.push(this),b.length===u*d&&n()}function n(){p.css({visibility:"visible"}),t(b).remove(),i()}var o,a,r,h,l,c,u=e.pieces?Math.round(Math.sqrt(e.pieces)):3,d=u,p=t(this),f=e.mode,g="show"===f,m=p.show().css("visibility","hidden").offset(),_=Math.ceil(p.outerWidth()/d),v=Math.ceil(p.outerHeight()/u),b=[];for(o=0;u>o;o++)for(h=m.top+o*v,c=o-(u-1)/2,a=0;d>a;a++)r=m.left+a*_,l=a-(d-1)/2,p.clone().appendTo("body").wrap("
    ").css({position:"absolute",visibility:"visible",left:-a*_,top:-o*v}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:_,height:v,left:r+(g?l*_:0),top:h+(g?c*v:0),opacity:g?0:1}).animate({left:r+(g?0:l*_),top:h+(g?0:c*v),opacity:g?1:0},e.duration||500,e.easing,s)}),t.effects.define("fade","toggle",function(e,i){var s="show"===e.mode;t(this).css("opacity",s?0:1).animate({opacity:s?1:0},{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("fold","hide",function(e,i){var s=t(this),n=e.mode,o="show"===n,a="hide"===n,r=e.size||15,h=/([0-9]+)%/.exec(r),l=!!e.horizFirst,c=l?["right","bottom"]:["bottom","right"],u=e.duration/2,d=t.effects.createPlaceholder(s),p=s.cssClip(),f={clip:t.extend({},p)},g={clip:t.extend({},p)},m=[p[c[0]],p[c[1]]],_=s.queue().length;h&&(r=parseInt(h[1],10)/100*m[a?0:1]),f.clip[c[0]]=r,g.clip[c[0]]=r,g.clip[c[1]]=0,o&&(s.cssClip(g.clip),d&&d.css(t.effects.clipToBox(g)),g.clip=p),s.queue(function(i){d&&d.animate(t.effects.clipToBox(f),u,e.easing).animate(t.effects.clipToBox(g),u,e.easing),i()}).animate(f,u,e.easing).animate(g,u,e.easing).queue(i),t.effects.unshift(s,_,4)}),t.effects.define("highlight","show",function(e,i){var s=t(this),n={backgroundColor:s.css("backgroundColor")};"hide"===e.mode&&(n.opacity=0),t.effects.saveStyle(s),s.css({backgroundImage:"none",backgroundColor:e.color||"#ffff99"}).animate(n,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("size",function(e,i){var s,n,o,a=t(this),r=["fontSize"],h=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],l=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],c=e.mode,u="effect"!==c,d=e.scale||"both",p=e.origin||["middle","center"],f=a.css("position"),g=a.position(),m=t.effects.scaledDimensions(a),_=e.from||m,v=e.to||t.effects.scaledDimensions(a,0);t.effects.createPlaceholder(a),"show"===c&&(o=_,_=v,v=o),n={from:{y:_.height/m.height,x:_.width/m.width},to:{y:v.height/m.height,x:v.width/m.width}},("box"===d||"both"===d)&&(n.from.y!==n.to.y&&(_=t.effects.setTransition(a,h,n.from.y,_),v=t.effects.setTransition(a,h,n.to.y,v)),n.from.x!==n.to.x&&(_=t.effects.setTransition(a,l,n.from.x,_),v=t.effects.setTransition(a,l,n.to.x,v))),("content"===d||"both"===d)&&n.from.y!==n.to.y&&(_=t.effects.setTransition(a,r,n.from.y,_),v=t.effects.setTransition(a,r,n.to.y,v)),p&&(s=t.effects.getBaseline(p,m),_.top=(m.outerHeight-_.outerHeight)*s.y+g.top,_.left=(m.outerWidth-_.outerWidth)*s.x+g.left,v.top=(m.outerHeight-v.outerHeight)*s.y+g.top,v.left=(m.outerWidth-v.outerWidth)*s.x+g.left),a.css(_),("content"===d||"both"===d)&&(h=h.concat(["marginTop","marginBottom"]).concat(r),l=l.concat(["marginLeft","marginRight"]),a.find("*[width]").each(function(){var i=t(this),s=t.effects.scaledDimensions(i),o={height:s.height*n.from.y,width:s.width*n.from.x,outerHeight:s.outerHeight*n.from.y,outerWidth:s.outerWidth*n.from.x},a={height:s.height*n.to.y,width:s.width*n.to.x,outerHeight:s.height*n.to.y,outerWidth:s.width*n.to.x};n.from.y!==n.to.y&&(o=t.effects.setTransition(i,h,n.from.y,o),a=t.effects.setTransition(i,h,n.to.y,a)),n.from.x!==n.to.x&&(o=t.effects.setTransition(i,l,n.from.x,o),a=t.effects.setTransition(i,l,n.to.x,a)),u&&t.effects.saveStyle(i),i.css(o),i.animate(a,e.duration,e.easing,function(){u&&t.effects.restoreStyle(i)})})),a.animate(v,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){var e=a.offset();0===v.opacity&&a.css("opacity",_.opacity),u||(a.css("position","static"===f?"relative":f).offset(e),t.effects.saveStyle(a)),i()}})}),t.effects.define("scale",function(e,i){var s=t(this),n=e.mode,o=parseInt(e.percent,10)||(0===parseInt(e.percent,10)?0:"effect"!==n?0:100),a=t.extend(!0,{from:t.effects.scaledDimensions(s),to:t.effects.scaledDimensions(s,o,e.direction||"both"),origin:e.origin||["middle","center"]},e);e.fade&&(a.from.opacity=1,a.to.opacity=0),t.effects.effect.size.call(this,a,i)}),t.effects.define("puff","hide",function(e,i){var s=t.extend(!0,{},e,{fade:!0,percent:parseInt(e.percent,10)||150});t.effects.effect.scale.call(this,s,i)}),t.effects.define("pulsate","show",function(e,i){var s=t(this),n=e.mode,o="show"===n,a="hide"===n,r=o||a,h=2*(e.times||5)+(r?1:0),l=e.duration/h,c=0,u=1,d=s.queue().length;for((o||!s.is(":visible"))&&(s.css("opacity",0).show(),c=1);h>u;u++)s.animate({opacity:c},l,e.easing),c=1-c;s.animate({opacity:c},l,e.easing),s.queue(i),t.effects.unshift(s,d,h+1)}),t.effects.define("shake",function(e,i){var s=1,n=t(this),o=e.direction||"left",a=e.distance||20,r=e.times||3,h=2*r+1,l=Math.round(e.duration/h),c="up"===o||"down"===o?"top":"left",u="up"===o||"left"===o,d={},p={},f={},g=n.queue().length;for(t.effects.createPlaceholder(n),d[c]=(u?"-=":"+=")+a,p[c]=(u?"+=":"-=")+2*a,f[c]=(u?"-=":"+=")+2*a,n.animate(d,l,e.easing);r>s;s++)n.animate(p,l,e.easing).animate(f,l,e.easing);n.animate(p,l,e.easing).animate(d,l/2,e.easing).queue(i),t.effects.unshift(n,g,h+1)}),t.effects.define("slide","show",function(e,i){var s,n,o=t(this),a={up:["bottom","top"],down:["top","bottom"],left:["right","left"],right:["left","right"]},r=e.mode,h=e.direction||"left",l="up"===h||"down"===h?"top":"left",c="up"===h||"left"===h,u=e.distance||o["top"===l?"outerHeight":"outerWidth"](!0),d={};t.effects.createPlaceholder(o),s=o.cssClip(),n=o.position()[l],d[l]=(c?-1:1)*u+n,d.clip=o.cssClip(),d.clip[a[h][1]]=d.clip[a[h][0]],"show"===r&&(o.cssClip(d.clip),o.css(l,d[l]),d.clip=s,d[l]=n),o.animate(d,{queue:!1,duration:e.duration,easing:e.easing,complete:i})});var f;t.uiBackCompat!==!1&&(f=t.effects.define("transfer",function(e,i){t(this).transfer(e,i)})),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,.\/:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.widget("ui.accordion",{version:"1.12.1",options:{active:0,animate:{},classes:{"ui-accordion-header":"ui-corner-top","ui-accordion-header-collapsed":"ui-corner-all","ui-accordion-content":"ui-corner-bottom"},collapsible:!1,event:"click",header:"> li > :first-child, > :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},hideProps:{borderTopWidth:"hide",borderBottomWidth:"hide",paddingTop:"hide",paddingBottom:"hide",height:"hide"},showProps:{borderTopWidth:"show",borderBottomWidth:"show",paddingTop:"show",paddingBottom:"show",height:"show"},_create:function(){var e=this.options;this.prevShow=this.prevHide=t(),this._addClass("ui-accordion","ui-widget ui-helper-reset"),this.element.attr("role","tablist"),e.collapsible||e.active!==!1&&null!=e.active||(e.active=0),this._processPanels(),0>e.active&&(e.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():t()}},_createIcons:function(){var e,i,s=this.options.icons;s&&(e=t(""),this._addClass(e,"ui-accordion-header-icon","ui-icon "+s.header),e.prependTo(this.headers),i=this.active.children(".ui-accordion-header-icon"),this._removeClass(i,s.header)._addClass(i,null,s.activeHeader)._addClass(this.headers,"ui-accordion-icons"))},_destroyIcons:function(){this._removeClass(this.headers,"ui-accordion-icons"),this.headers.children(".ui-accordion-header-icon").remove()},_destroy:function(){var t;this.element.removeAttr("role"),this.headers.removeAttr("role aria-expanded aria-selected aria-controls tabIndex").removeUniqueId(),this._destroyIcons(),t=this.headers.next().css("display","").removeAttr("role aria-hidden aria-labelledby").removeUniqueId(),"content"!==this.options.heightStyle&&t.css("height","")},_setOption:function(t,e){return"active"===t?(this._activate(e),void 0):("event"===t&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(e)),this._super(t,e),"collapsible"!==t||e||this.options.active!==!1||this._activate(0),"icons"===t&&(this._destroyIcons(),e&&this._createIcons()),void 0)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t),this._toggleClass(null,"ui-state-disabled",!!t),this._toggleClass(this.headers.add(this.headers.next()),null,"ui-state-disabled",!!t)},_keydown:function(e){if(!e.altKey&&!e.ctrlKey){var i=t.ui.keyCode,s=this.headers.length,n=this.headers.index(e.target),o=!1;switch(e.keyCode){case i.RIGHT:case i.DOWN:o=this.headers[(n+1)%s];break;case i.LEFT:case i.UP:o=this.headers[(n-1+s)%s];break;case i.SPACE:case i.ENTER:this._eventHandler(e);break;case i.HOME:o=this.headers[0];break;case i.END:o=this.headers[s-1]}o&&(t(e.target).attr("tabIndex",-1),t(o).attr("tabIndex",0),t(o).trigger("focus"),e.preventDefault())}},_panelKeyDown:function(e){e.keyCode===t.ui.keyCode.UP&&e.ctrlKey&&t(e.currentTarget).prev().trigger("focus")},refresh:function(){var e=this.options;this._processPanels(),e.active===!1&&e.collapsible===!0||!this.headers.length?(e.active=!1,this.active=t()):e.active===!1?this._activate(0):this.active.length&&!t.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(e.active=!1,this.active=t()):this._activate(Math.max(0,e.active-1)):e.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){var t=this.headers,e=this.panels;this.headers=this.element.find(this.options.header),this._addClass(this.headers,"ui-accordion-header ui-accordion-header-collapsed","ui-state-default"),this.panels=this.headers.next().filter(":not(.ui-accordion-content-active)").hide(),this._addClass(this.panels,"ui-accordion-content","ui-helper-reset ui-widget-content"),e&&(this._off(t.not(this.headers)),this._off(e.not(this.panels)))},_refresh:function(){var e,i=this.options,s=i.heightStyle,n=this.element.parent();this.active=this._findActive(i.active),this._addClass(this.active,"ui-accordion-header-active","ui-state-active")._removeClass(this.active,"ui-accordion-header-collapsed"),this._addClass(this.active.next(),"ui-accordion-content-active"),this.active.next().show(),this.headers.attr("role","tab").each(function(){var e=t(this),i=e.uniqueId().attr("id"),s=e.next(),n=s.uniqueId().attr("id");e.attr("aria-controls",n),s.attr("aria-labelledby",i)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}).next().attr({"aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}).next().attr({"aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._createIcons(),this._setupEvents(i.event),"fill"===s?(e=n.height(),this.element.siblings(":visible").each(function(){var i=t(this),s=i.css("position");"absolute"!==s&&"fixed"!==s&&(e-=i.outerHeight(!0))}),this.headers.each(function(){e-=t(this).outerHeight(!0)}),this.headers.next().each(function(){t(this).height(Math.max(0,e-t(this).innerHeight()+t(this).height()))}).css("overflow","auto")):"auto"===s&&(e=0,this.headers.next().each(function(){var i=t(this).is(":visible");i||t(this).show(),e=Math.max(e,t(this).css("height","").height()),i||t(this).hide()}).height(e))},_activate:function(e){var i=this._findActive(e)[0];i!==this.active[0]&&(i=i||this.active[0],this._eventHandler({target:i,currentTarget:i,preventDefault:t.noop}))},_findActive:function(e){return"number"==typeof e?this.headers.eq(e):t()},_setupEvents:function(e){var i={keydown:"_keydown"};e&&t.each(e.split(" "),function(t,e){i[e]="_eventHandler"}),this._off(this.headers.add(this.headers.next())),this._on(this.headers,i),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(e){var i,s,n=this.options,o=this.active,a=t(e.currentTarget),r=a[0]===o[0],h=r&&n.collapsible,l=h?t():a.next(),c=o.next(),u={oldHeader:o,oldPanel:c,newHeader:h?t():a,newPanel:l};e.preventDefault(),r&&!n.collapsible||this._trigger("beforeActivate",e,u)===!1||(n.active=h?!1:this.headers.index(a),this.active=r?t():a,this._toggle(u),this._removeClass(o,"ui-accordion-header-active","ui-state-active"),n.icons&&(i=o.children(".ui-accordion-header-icon"),this._removeClass(i,null,n.icons.activeHeader)._addClass(i,null,n.icons.header)),r||(this._removeClass(a,"ui-accordion-header-collapsed")._addClass(a,"ui-accordion-header-active","ui-state-active"),n.icons&&(s=a.children(".ui-accordion-header-icon"),this._removeClass(s,null,n.icons.header)._addClass(s,null,n.icons.activeHeader)),this._addClass(a.next(),"ui-accordion-content-active")))},_toggle:function(e){var i=e.newPanel,s=this.prevShow.length?this.prevShow:e.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=i,this.prevHide=s,this.options.animate?this._animate(i,s,e):(s.hide(),i.show(),this._toggleComplete(e)),s.attr({"aria-hidden":"true"}),s.prev().attr({"aria-selected":"false","aria-expanded":"false"}),i.length&&s.length?s.prev().attr({tabIndex:-1,"aria-expanded":"false"}):i.length&&this.headers.filter(function(){return 0===parseInt(t(this).attr("tabIndex"),10)}).attr("tabIndex",-1),i.attr("aria-hidden","false").prev().attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_animate:function(t,e,i){var s,n,o,a=this,r=0,h=t.css("box-sizing"),l=t.length&&(!e.length||t.index()",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault()},"click .ui-menu-item":function(e){var i=t(e.target),s=t(t.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&i.not(".ui-state-disabled").length&&(this.select(e),e.isPropagationStopped()||(this.mouseHandled=!0),i.has(".ui-menu").length?this.expand(e):!this.element.is(":focus")&&s.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(e){if(!this.previousFilter){var i=t(e.target).closest(".ui-menu-item"),s=t(e.currentTarget);i[0]===s[0]&&(this._removeClass(s.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(e,s))}},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this.element.find(this.options.items).eq(0);e||this.focus(t,i)},blur:function(e){this._delay(function(){var i=!t.contains(this.element[0],t.ui.safeActiveElement(this.document[0]));i&&this.collapseAll(e)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t),this.mouseHandled=!1}})},_destroy:function(){var e=this.element.find(".ui-menu-item").removeAttr("role aria-disabled"),i=e.children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),i.children().each(function(){var e=t(this);e.data("ui-menu-submenu-caret")&&e.remove()})},_keydown:function(e){var i,s,n,o,a=!0;switch(e.keyCode){case t.ui.keyCode.PAGE_UP:this.previousPage(e);break;case t.ui.keyCode.PAGE_DOWN:this.nextPage(e);break;case t.ui.keyCode.HOME:this._move("first","first",e);break;case t.ui.keyCode.END:this._move("last","last",e);break;case t.ui.keyCode.UP:this.previous(e);break;case t.ui.keyCode.DOWN:this.next(e);break;case t.ui.keyCode.LEFT:this.collapse(e);break;case t.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(e);break;case t.ui.keyCode.ENTER:case t.ui.keyCode.SPACE:this._activate(e);break;case t.ui.keyCode.ESCAPE:this.collapse(e);break;default:a=!1,s=this.previousFilter||"",o=!1,n=e.keyCode>=96&&105>=e.keyCode?""+(e.keyCode-96):String.fromCharCode(e.keyCode),clearTimeout(this.filterTimer),n===s?o=!0:n=s+n,i=this._filterMenuItems(n),i=o&&-1!==i.index(this.active.next())?this.active.nextAll(".ui-menu-item"):i,i.length||(n=String.fromCharCode(e.keyCode),i=this._filterMenuItems(n)),i.length?(this.focus(e,i),this.previousFilter=n,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}a&&e.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var e,i,s,n,o,a=this,r=this.options.icons.submenu,h=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),s=h.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var e=t(this),i=e.prev(),s=t("").data("ui-menu-submenu-caret",!0);a._addClass(s,"ui-menu-icon","ui-icon "+r),i.attr("aria-haspopup","true").prepend(s),e.attr("aria-labelledby",i.attr("id"))}),this._addClass(s,"ui-menu","ui-widget ui-widget-content ui-front"),e=h.add(this.element),i=e.find(this.options.items),i.not(".ui-menu-item").each(function(){var e=t(this);a._isDivider(e)&&a._addClass(e,"ui-menu-divider","ui-widget-content")}),n=i.not(".ui-menu-item, .ui-menu-divider"),o=n.children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(n,"ui-menu-item")._addClass(o,"ui-menu-item-wrapper"),i.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!t.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){if("icons"===t){var i=this.element.find(".ui-menu-icon");this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)}this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t+""),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i,s,n;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),s=this.active.children(".ui-menu-item-wrapper"),this._addClass(s,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",s.attr("id")),n=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(n,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),i=e.children(".ui-menu"),i.length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(e){var i,s,n,o,a,r;this._hasScroll()&&(i=parseFloat(t.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(t.css(this.activeMenu[0],"paddingTop"))||0,n=e.offset().top-this.activeMenu.offset().top-i-s,o=this.activeMenu.scrollTop(),a=this.activeMenu.height(),r=e.outerHeight(),0>n?this.activeMenu.scrollTop(o+n):n+r>a&&this.activeMenu.scrollTop(o+n-a+r))},blur:function(t,e){e||clearTimeout(this.timer),this.active&&(this._removeClass(this.active.children(".ui-menu-item-wrapper"),null,"ui-state-active"),this._trigger("blur",t,{item:this.active}),this.active=null)},_startOpening:function(t){clearTimeout(this.timer),"true"===t.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(t)},this.delay))},_open:function(e){var i=t.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(e.parents(".ui-menu")).hide().attr("aria-hidden","true"),e.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(i)},collapseAll:function(e,i){clearTimeout(this.timer),this.timer=this._delay(function(){var s=i?this.element:t(e&&e.target).closest(this.element.find(".ui-menu"));s.length||(s=this.element),this._close(s),this.blur(e),this._removeClass(s.find(".ui-state-active"),null,"ui-state-active"),this.activeMenu=s},this.delay)},_close:function(t){t||(t=this.active?this.active.parent():this.element),t.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false")},_closeOnDocumentClick:function(e){return!t(e.target).closest(".ui-menu").length},_isDivider:function(t){return!/[^\-\u2014\u2013\s]/.test(t.text())},collapse:function(t){var e=this.active&&this.active.parent().closest(".ui-menu-item",this.element);e&&e.length&&(this._close(),this.focus(t,e))},expand:function(t){var e=this.active&&this.active.children(".ui-menu ").find(this.options.items).first();e&&e.length&&(this._open(e.parent()),this._delay(function(){this.focus(t,e)}))},next:function(t){this._move("next","first",t)},previous:function(t){this._move("prev","last",t)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(t,e,i){var s;this.active&&(s="first"===t||"last"===t?this.active["first"===t?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[t+"All"](".ui-menu-item").eq(0)),s&&s.length&&this.active||(s=this.activeMenu.find(this.options.items)[e]()),this.focus(i,s)},nextPage:function(e){var i,s,n;return this.active?(this.isLastItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return i=t(this),0>i.offset().top-s-n}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items)[this.active?"last":"first"]())),void 0):(this.next(e),void 0)},previousPage:function(e){var i,s,n;return this.active?(this.isFirstItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return i=t(this),i.offset().top-s+n>0}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items).first())),void 0):(this.next(e),void 0)},_hasScroll:function(){return this.element.outerHeight()",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var e,i,s,n=this.element[0].nodeName.toLowerCase(),o="textarea"===n,a="input"===n; -this.isMultiLine=o||!a&&this._isContentEditable(this.element),this.valueMethod=this.element[o||a?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(n){if(this.element.prop("readOnly"))return e=!0,s=!0,i=!0,void 0;e=!1,s=!1,i=!1;var o=t.ui.keyCode;switch(n.keyCode){case o.PAGE_UP:e=!0,this._move("previousPage",n);break;case o.PAGE_DOWN:e=!0,this._move("nextPage",n);break;case o.UP:e=!0,this._keyEvent("previous",n);break;case o.DOWN:e=!0,this._keyEvent("next",n);break;case o.ENTER:this.menu.active&&(e=!0,n.preventDefault(),this.menu.select(n));break;case o.TAB:this.menu.active&&this.menu.select(n);break;case o.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(n),n.preventDefault());break;default:i=!0,this._searchTimeout(n)}},keypress:function(s){if(e)return e=!1,(!this.isMultiLine||this.menu.element.is(":visible"))&&s.preventDefault(),void 0;if(!i){var n=t.ui.keyCode;switch(s.keyCode){case n.PAGE_UP:this._move("previousPage",s);break;case n.PAGE_DOWN:this._move("nextPage",s);break;case n.UP:this._keyEvent("previous",s);break;case n.DOWN:this._keyEvent("next",s)}}},input:function(t){return s?(s=!1,t.preventDefault(),void 0):(this._searchTimeout(t),void 0)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){return this.cancelBlur?(delete this.cancelBlur,void 0):(clearTimeout(this.searching),this.close(t),this._change(t),void 0)}}),this._initSource(),this.menu=t("
      ").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(e){e.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,this.element[0]!==t.ui.safeActiveElement(this.document[0])&&this.element.trigger("focus")})},menufocus:function(e,i){var s,n;return this.isNewMenu&&(this.isNewMenu=!1,e.originalEvent&&/^mouse/.test(e.originalEvent.type))?(this.menu.blur(),this.document.one("mousemove",function(){t(e.target).trigger(e.originalEvent)}),void 0):(n=i.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",e,{item:n})&&e.originalEvent&&/^key/.test(e.originalEvent.type)&&this._value(n.value),s=i.item.attr("aria-label")||n.value,s&&t.trim(s).length&&(this.liveRegion.children().hide(),t("
      ").text(s).appendTo(this.liveRegion)),void 0)},menuselect:function(e,i){var s=i.item.data("ui-autocomplete-item"),n=this.previous;this.element[0]!==t.ui.safeActiveElement(this.document[0])&&(this.element.trigger("focus"),this.previous=n,this._delay(function(){this.previous=n,this.selectedItem=s})),!1!==this._trigger("select",e,{item:s})&&this._value(s.value),this.term=this._value(),this.close(e),this.selectedItem=s}}),this.liveRegion=t("
      ",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(e){var i=this.menu.element[0];return e.target===this.element[0]||e.target===i||t.contains(i,e.target)},_closeOnClickOutside:function(t){this._isEventTargetInWidget(t)||this.close()},_appendTo:function(){var e=this.options.appendTo;return e&&(e=e.jquery||e.nodeType?t(e):this.document.find(e).eq(0)),e&&e[0]||(e=this.element.closest(".ui-front, dialog")),e.length||(e=this.document[0].body),e},_initSource:function(){var e,i,s=this;t.isArray(this.options.source)?(e=this.options.source,this.source=function(i,s){s(t.ui.autocomplete.filter(e,i.term))}):"string"==typeof this.options.source?(i=this.options.source,this.source=function(e,n){s.xhr&&s.xhr.abort(),s.xhr=t.ajax({url:i,data:e,dataType:"json",success:function(t){n(t)},error:function(){n([])}})}):this.source=this.options.source},_searchTimeout:function(t){clearTimeout(this.searching),this.searching=this._delay(function(){var e=this.term===this._value(),i=this.menu.element.is(":visible"),s=t.altKey||t.ctrlKey||t.metaKey||t.shiftKey;(!e||e&&!i&&!s)&&(this.selectedItem=null,this.search(null,t))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length").append(t("
      ").text(i.label)).appendTo(e)},_move:function(t,e){return this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),this.menu.blur(),void 0):(this.menu[t](e),void 0):(this.search(null,e),void 0)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){(!this.isMultiLine||this.menu.element.is(":visible"))&&(this._move(t,e),e.preventDefault())},_isContentEditable:function(t){if(!t.length)return!1;var e=t.prop("contentEditable");return"inherit"===e?this._isContentEditable(t.parent()):"true"===e}}),t.extend(t.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(e,i){var s=RegExp(t.ui.autocomplete.escapeRegex(i),"i");return t.grep(e,function(t){return s.test(t.label||t.value||t)})}}),t.widget("ui.autocomplete",t.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(t>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(e){var i;this._superApply(arguments),this.options.disabled||this.cancelSearch||(i=e&&e.length?this.options.messages.results(e.length):this.options.messages.noResults,this.liveRegion.children().hide(),t("
      ").text(i).appendTo(this.liveRegion))}}),t.ui.autocomplete;var g=/ui-corner-([a-z]){2,6}/g;t.widget("ui.controlgroup",{version:"1.12.1",defaultElement:"
      ",options:{direction:"horizontal",disabled:null,onlyVisible:!0,items:{button:"input[type=button], input[type=submit], input[type=reset], button, a",controlgroupLabel:".ui-controlgroup-label",checkboxradio:"input[type='checkbox'], input[type='radio']",selectmenu:"select",spinner:".ui-spinner-input"}},_create:function(){this._enhance()},_enhance:function(){this.element.attr("role","toolbar"),this.refresh()},_destroy:function(){this._callChildMethod("destroy"),this.childWidgets.removeData("ui-controlgroup-data"),this.element.removeAttr("role"),this.options.items.controlgroupLabel&&this.element.find(this.options.items.controlgroupLabel).find(".ui-controlgroup-label-contents").contents().unwrap()},_initWidgets:function(){var e=this,i=[];t.each(this.options.items,function(s,n){var o,a={};return n?"controlgroupLabel"===s?(o=e.element.find(n),o.each(function(){var e=t(this);e.children(".ui-controlgroup-label-contents").length||e.contents().wrapAll("")}),e._addClass(o,null,"ui-widget ui-widget-content ui-state-default"),i=i.concat(o.get()),void 0):(t.fn[s]&&(a=e["_"+s+"Options"]?e["_"+s+"Options"]("middle"):{classes:{}},e.element.find(n).each(function(){var n=t(this),o=n[s]("instance"),r=t.widget.extend({},a);if("button"!==s||!n.parent(".ui-spinner").length){o||(o=n[s]()[s]("instance")),o&&(r.classes=e._resolveClassesValues(r.classes,o)),n[s](r);var h=n[s]("widget");t.data(h[0],"ui-controlgroup-data",o?o:n[s]("instance")),i.push(h[0])}})),void 0):void 0}),this.childWidgets=t(t.unique(i)),this._addClass(this.childWidgets,"ui-controlgroup-item")},_callChildMethod:function(e){this.childWidgets.each(function(){var i=t(this),s=i.data("ui-controlgroup-data");s&&s[e]&&s[e]()})},_updateCornerClass:function(t,e){var i="ui-corner-top ui-corner-bottom ui-corner-left ui-corner-right ui-corner-all",s=this._buildSimpleOptions(e,"label").classes.label;this._removeClass(t,null,i),this._addClass(t,null,s)},_buildSimpleOptions:function(t,e){var i="vertical"===this.options.direction,s={classes:{}};return s.classes[e]={middle:"",first:"ui-corner-"+(i?"top":"left"),last:"ui-corner-"+(i?"bottom":"right"),only:"ui-corner-all"}[t],s},_spinnerOptions:function(t){var e=this._buildSimpleOptions(t,"ui-spinner");return e.classes["ui-spinner-up"]="",e.classes["ui-spinner-down"]="",e},_buttonOptions:function(t){return this._buildSimpleOptions(t,"ui-button")},_checkboxradioOptions:function(t){return this._buildSimpleOptions(t,"ui-checkboxradio-label")},_selectmenuOptions:function(t){var e="vertical"===this.options.direction;return{width:e?"auto":!1,classes:{middle:{"ui-selectmenu-button-open":"","ui-selectmenu-button-closed":""},first:{"ui-selectmenu-button-open":"ui-corner-"+(e?"top":"tl"),"ui-selectmenu-button-closed":"ui-corner-"+(e?"top":"left")},last:{"ui-selectmenu-button-open":e?"":"ui-corner-tr","ui-selectmenu-button-closed":"ui-corner-"+(e?"bottom":"right")},only:{"ui-selectmenu-button-open":"ui-corner-top","ui-selectmenu-button-closed":"ui-corner-all"}}[t]}},_resolveClassesValues:function(e,i){var s={};return t.each(e,function(n){var o=i.options.classes[n]||"";o=t.trim(o.replace(g,"")),s[n]=(o+" "+e[n]).replace(/\s+/g," ")}),s},_setOption:function(t,e){return"direction"===t&&this._removeClass("ui-controlgroup-"+this.options.direction),this._super(t,e),"disabled"===t?(this._callChildMethod(e?"disable":"enable"),void 0):(this.refresh(),void 0)},refresh:function(){var e,i=this;this._addClass("ui-controlgroup ui-controlgroup-"+this.options.direction),"horizontal"===this.options.direction&&this._addClass(null,"ui-helper-clearfix"),this._initWidgets(),e=this.childWidgets,this.options.onlyVisible&&(e=e.filter(":visible")),e.length&&(t.each(["first","last"],function(t,s){var n=e[s]().data("ui-controlgroup-data");if(n&&i["_"+n.widgetName+"Options"]){var o=i["_"+n.widgetName+"Options"](1===e.length?"only":s);o.classes=i._resolveClassesValues(o.classes,n),n.element[n.widgetName](o)}else i._updateCornerClass(e[s](),s)}),this._callChildMethod("refresh"))}}),t.widget("ui.checkboxradio",[t.ui.formResetMixin,{version:"1.12.1",options:{disabled:null,label:null,icon:!0,classes:{"ui-checkboxradio-label":"ui-corner-all","ui-checkboxradio-icon":"ui-corner-all"}},_getCreateOptions:function(){var e,i,s=this,n=this._super()||{};return this._readType(),i=this.element.labels(),this.label=t(i[i.length-1]),this.label.length||t.error("No label found for checkboxradio widget"),this.originalLabel="",this.label.contents().not(this.element[0]).each(function(){s.originalLabel+=3===this.nodeType?t(this).text():this.outerHTML}),this.originalLabel&&(n.label=this.originalLabel),e=this.element[0].disabled,null!=e&&(n.disabled=e),n},_create:function(){var t=this.element[0].checked;this._bindFormResetHandler(),null==this.options.disabled&&(this.options.disabled=this.element[0].disabled),this._setOption("disabled",this.options.disabled),this._addClass("ui-checkboxradio","ui-helper-hidden-accessible"),this._addClass(this.label,"ui-checkboxradio-label","ui-button ui-widget"),"radio"===this.type&&this._addClass(this.label,"ui-checkboxradio-radio-label"),this.options.label&&this.options.label!==this.originalLabel?this._updateLabel():this.originalLabel&&(this.options.label=this.originalLabel),this._enhance(),t&&(this._addClass(this.label,"ui-checkboxradio-checked","ui-state-active"),this.icon&&this._addClass(this.icon,null,"ui-state-hover")),this._on({change:"_toggleClasses",focus:function(){this._addClass(this.label,null,"ui-state-focus ui-visual-focus")},blur:function(){this._removeClass(this.label,null,"ui-state-focus ui-visual-focus")}})},_readType:function(){var e=this.element[0].nodeName.toLowerCase();this.type=this.element[0].type,"input"===e&&/radio|checkbox/.test(this.type)||t.error("Can't create checkboxradio on element.nodeName="+e+" and element.type="+this.type)},_enhance:function(){this._updateIcon(this.element[0].checked)},widget:function(){return this.label},_getRadioGroup:function(){var e,i=this.element[0].name,s="input[name='"+t.ui.escapeSelector(i)+"']";return i?(e=this.form.length?t(this.form[0].elements).filter(s):t(s).filter(function(){return 0===t(this).form().length}),e.not(this.element)):t([])},_toggleClasses:function(){var e=this.element[0].checked;this._toggleClass(this.label,"ui-checkboxradio-checked","ui-state-active",e),this.options.icon&&"checkbox"===this.type&&this._toggleClass(this.icon,null,"ui-icon-check ui-state-checked",e)._toggleClass(this.icon,null,"ui-icon-blank",!e),"radio"===this.type&&this._getRadioGroup().each(function(){var e=t(this).checkboxradio("instance");e&&e._removeClass(e.label,"ui-checkboxradio-checked","ui-state-active")})},_destroy:function(){this._unbindFormResetHandler(),this.icon&&(this.icon.remove(),this.iconSpace.remove())},_setOption:function(t,e){return"label"!==t||e?(this._super(t,e),"disabled"===t?(this._toggleClass(this.label,null,"ui-state-disabled",e),this.element[0].disabled=e,void 0):(this.refresh(),void 0)):void 0},_updateIcon:function(e){var i="ui-icon ui-icon-background ";this.options.icon?(this.icon||(this.icon=t(""),this.iconSpace=t(" "),this._addClass(this.iconSpace,"ui-checkboxradio-icon-space")),"checkbox"===this.type?(i+=e?"ui-icon-check ui-state-checked":"ui-icon-blank",this._removeClass(this.icon,null,e?"ui-icon-blank":"ui-icon-check")):i+="ui-icon-blank",this._addClass(this.icon,"ui-checkboxradio-icon",i),e||this._removeClass(this.icon,null,"ui-icon-check ui-state-checked"),this.icon.prependTo(this.label).after(this.iconSpace)):void 0!==this.icon&&(this.icon.remove(),this.iconSpace.remove(),delete this.icon)},_updateLabel:function(){var t=this.label.contents().not(this.element[0]);this.icon&&(t=t.not(this.icon[0])),this.iconSpace&&(t=t.not(this.iconSpace[0])),t.remove(),this.label.append(this.options.label)},refresh:function(){var t=this.element[0].checked,e=this.element[0].disabled;this._updateIcon(t),this._toggleClass(this.label,"ui-checkboxradio-checked","ui-state-active",t),null!==this.options.label&&this._updateLabel(),e!==this.options.disabled&&this._setOptions({disabled:e})}}]),t.ui.checkboxradio,t.widget("ui.button",{version:"1.12.1",defaultElement:"").addClass(this._triggerClass).html(o?t("").attr({src:o,alt:n,title:n}):n)),e[r?"before":"after"](i.trigger),i.trigger.on("click",function(){return t.datepicker._datepickerShowing&&t.datepicker._lastInput===e[0]?t.datepicker._hideDatepicker():t.datepicker._datepickerShowing&&t.datepicker._lastInput!==e[0]?(t.datepicker._hideDatepicker(),t.datepicker._showDatepicker(e[0])):t.datepicker._showDatepicker(e[0]),!1}))},_autoSize:function(t){if(this._get(t,"autoSize")&&!t.inline){var e,i,s,n,o=new Date(2009,11,20),a=this._get(t,"dateFormat");a.match(/[DM]/)&&(e=function(t){for(i=0,s=0,n=0;t.length>n;n++)t[n].length>i&&(i=t[n].length,s=n);return s},o.setMonth(e(this._get(t,a.match(/MM/)?"monthNames":"monthNamesShort"))),o.setDate(e(this._get(t,a.match(/DD/)?"dayNames":"dayNamesShort"))+20-o.getDay())),t.input.attr("size",this._formatDate(t,o).length)}},_inlineDatepicker:function(e,i){var s=t(e);s.hasClass(this.markerClassName)||(s.addClass(this.markerClassName).append(i.dpDiv),t.data(e,"datepicker",i),this._setDate(i,this._getDefaultDate(i),!0),this._updateDatepicker(i),this._updateAlternate(i),i.settings.disabled&&this._disableDatepicker(e),i.dpDiv.css("display","block"))},_dialogDatepicker:function(e,i,s,n,o){var r,h,l,c,u,d=this._dialogInst;return d||(this.uuid+=1,r="dp"+this.uuid,this._dialogInput=t(""),this._dialogInput.on("keydown",this._doKeyDown),t("body").append(this._dialogInput),d=this._dialogInst=this._newInst(this._dialogInput,!1),d.settings={},t.data(this._dialogInput[0],"datepicker",d)),a(d.settings,n||{}),i=i&&i.constructor===Date?this._formatDate(d,i):i,this._dialogInput.val(i),this._pos=o?o.length?o:[o.pageX,o.pageY]:null,this._pos||(h=document.documentElement.clientWidth,l=document.documentElement.clientHeight,c=document.documentElement.scrollLeft||document.body.scrollLeft,u=document.documentElement.scrollTop||document.body.scrollTop,this._pos=[h/2-100+c,l/2-150+u]),this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),d.settings.onSelect=s,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),t.blockUI&&t.blockUI(this.dpDiv),t.data(this._dialogInput[0],"datepicker",d),this},_destroyDatepicker:function(e){var i,s=t(e),n=t.data(e,"datepicker");s.hasClass(this.markerClassName)&&(i=e.nodeName.toLowerCase(),t.removeData(e,"datepicker"),"input"===i?(n.append.remove(),n.trigger.remove(),s.removeClass(this.markerClassName).off("focus",this._showDatepicker).off("keydown",this._doKeyDown).off("keypress",this._doKeyPress).off("keyup",this._doKeyUp)):("div"===i||"span"===i)&&s.removeClass(this.markerClassName).empty(),m===n&&(m=null))},_enableDatepicker:function(e){var i,s,n=t(e),o=t.data(e,"datepicker");n.hasClass(this.markerClassName)&&(i=e.nodeName.toLowerCase(),"input"===i?(e.disabled=!1,o.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""})):("div"===i||"span"===i)&&(s=n.children("."+this._inlineClass),s.children().removeClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!1)),this._disabledInputs=t.map(this._disabledInputs,function(t){return t===e?null:t}))},_disableDatepicker:function(e){var i,s,n=t(e),o=t.data(e,"datepicker");n.hasClass(this.markerClassName)&&(i=e.nodeName.toLowerCase(),"input"===i?(e.disabled=!0,o.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"})):("div"===i||"span"===i)&&(s=n.children("."+this._inlineClass),s.children().addClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!0)),this._disabledInputs=t.map(this._disabledInputs,function(t){return t===e?null:t}),this._disabledInputs[this._disabledInputs.length]=e)},_isDisabledDatepicker:function(t){if(!t)return!1;for(var e=0;this._disabledInputs.length>e;e++)if(this._disabledInputs[e]===t)return!0;return!1},_getInst:function(e){try{return t.data(e,"datepicker")}catch(i){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(e,i,s){var n,o,r,h,l=this._getInst(e);return 2===arguments.length&&"string"==typeof i?"defaults"===i?t.extend({},t.datepicker._defaults):l?"all"===i?t.extend({},l.settings):this._get(l,i):null:(n=i||{},"string"==typeof i&&(n={},n[i]=s),l&&(this._curInst===l&&this._hideDatepicker(),o=this._getDateDatepicker(e,!0),r=this._getMinMaxDate(l,"min"),h=this._getMinMaxDate(l,"max"),a(l.settings,n),null!==r&&void 0!==n.dateFormat&&void 0===n.minDate&&(l.settings.minDate=this._formatDate(l,r)),null!==h&&void 0!==n.dateFormat&&void 0===n.maxDate&&(l.settings.maxDate=this._formatDate(l,h)),"disabled"in n&&(n.disabled?this._disableDatepicker(e):this._enableDatepicker(e)),this._attachments(t(e),l),this._autoSize(l),this._setDate(l,o),this._updateAlternate(l),this._updateDatepicker(l)),void 0)},_changeDatepicker:function(t,e,i){this._optionDatepicker(t,e,i)},_refreshDatepicker:function(t){var e=this._getInst(t);e&&this._updateDatepicker(e)},_setDateDatepicker:function(t,e){var i=this._getInst(t);i&&(this._setDate(i,e),this._updateDatepicker(i),this._updateAlternate(i))},_getDateDatepicker:function(t,e){var i=this._getInst(t);return i&&!i.inline&&this._setDateFromField(i,e),i?this._getDate(i):null},_doKeyDown:function(e){var i,s,n,o=t.datepicker._getInst(e.target),a=!0,r=o.dpDiv.is(".ui-datepicker-rtl");if(o._keyEvent=!0,t.datepicker._datepickerShowing)switch(e.keyCode){case 9:t.datepicker._hideDatepicker(),a=!1;break;case 13:return n=t("td."+t.datepicker._dayOverClass+":not(."+t.datepicker._currentClass+")",o.dpDiv),n[0]&&t.datepicker._selectDay(e.target,o.selectedMonth,o.selectedYear,n[0]),i=t.datepicker._get(o,"onSelect"),i?(s=t.datepicker._formatDate(o),i.apply(o.input?o.input[0]:null,[s,o])):t.datepicker._hideDatepicker(),!1;case 27:t.datepicker._hideDatepicker();break;case 33:t.datepicker._adjustDate(e.target,e.ctrlKey?-t.datepicker._get(o,"stepBigMonths"):-t.datepicker._get(o,"stepMonths"),"M");break;case 34:t.datepicker._adjustDate(e.target,e.ctrlKey?+t.datepicker._get(o,"stepBigMonths"):+t.datepicker._get(o,"stepMonths"),"M");break;case 35:(e.ctrlKey||e.metaKey)&&t.datepicker._clearDate(e.target),a=e.ctrlKey||e.metaKey;break;case 36:(e.ctrlKey||e.metaKey)&&t.datepicker._gotoToday(e.target),a=e.ctrlKey||e.metaKey;break;case 37:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,r?1:-1,"D"),a=e.ctrlKey||e.metaKey,e.originalEvent.altKey&&t.datepicker._adjustDate(e.target,e.ctrlKey?-t.datepicker._get(o,"stepBigMonths"):-t.datepicker._get(o,"stepMonths"),"M");break;case 38:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,-7,"D"),a=e.ctrlKey||e.metaKey;break;case 39:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,r?-1:1,"D"),a=e.ctrlKey||e.metaKey,e.originalEvent.altKey&&t.datepicker._adjustDate(e.target,e.ctrlKey?+t.datepicker._get(o,"stepBigMonths"):+t.datepicker._get(o,"stepMonths"),"M");break;case 40:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,7,"D"),a=e.ctrlKey||e.metaKey;break;default:a=!1}else 36===e.keyCode&&e.ctrlKey?t.datepicker._showDatepicker(this):a=!1;a&&(e.preventDefault(),e.stopPropagation())},_doKeyPress:function(e){var i,s,n=t.datepicker._getInst(e.target);return t.datepicker._get(n,"constrainInput")?(i=t.datepicker._possibleChars(t.datepicker._get(n,"dateFormat")),s=String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),e.ctrlKey||e.metaKey||" ">s||!i||i.indexOf(s)>-1):void 0},_doKeyUp:function(e){var i,s=t.datepicker._getInst(e.target);if(s.input.val()!==s.lastVal)try{i=t.datepicker.parseDate(t.datepicker._get(s,"dateFormat"),s.input?s.input.val():null,t.datepicker._getFormatConfig(s)),i&&(t.datepicker._setDateFromField(s),t.datepicker._updateAlternate(s),t.datepicker._updateDatepicker(s))}catch(n){}return!0},_showDatepicker:function(e){if(e=e.target||e,"input"!==e.nodeName.toLowerCase()&&(e=t("input",e.parentNode)[0]),!t.datepicker._isDisabledDatepicker(e)&&t.datepicker._lastInput!==e){var s,n,o,r,h,l,c;s=t.datepicker._getInst(e),t.datepicker._curInst&&t.datepicker._curInst!==s&&(t.datepicker._curInst.dpDiv.stop(!0,!0),s&&t.datepicker._datepickerShowing&&t.datepicker._hideDatepicker(t.datepicker._curInst.input[0])),n=t.datepicker._get(s,"beforeShow"),o=n?n.apply(e,[e,s]):{},o!==!1&&(a(s.settings,o),s.lastVal=null,t.datepicker._lastInput=e,t.datepicker._setDateFromField(s),t.datepicker._inDialog&&(e.value=""),t.datepicker._pos||(t.datepicker._pos=t.datepicker._findPos(e),t.datepicker._pos[1]+=e.offsetHeight),r=!1,t(e).parents().each(function(){return r|="fixed"===t(this).css("position"),!r}),h={left:t.datepicker._pos[0],top:t.datepicker._pos[1]},t.datepicker._pos=null,s.dpDiv.empty(),s.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),t.datepicker._updateDatepicker(s),h=t.datepicker._checkOffset(s,h,r),s.dpDiv.css({position:t.datepicker._inDialog&&t.blockUI?"static":r?"fixed":"absolute",display:"none",left:h.left+"px",top:h.top+"px"}),s.inline||(l=t.datepicker._get(s,"showAnim"),c=t.datepicker._get(s,"duration"),s.dpDiv.css("z-index",i(t(e))+1),t.datepicker._datepickerShowing=!0,t.effects&&t.effects.effect[l]?s.dpDiv.show(l,t.datepicker._get(s,"showOptions"),c):s.dpDiv[l||"show"](l?c:null),t.datepicker._shouldFocusInput(s)&&s.input.trigger("focus"),t.datepicker._curInst=s)) -}},_updateDatepicker:function(e){this.maxRows=4,m=e,e.dpDiv.empty().append(this._generateHTML(e)),this._attachHandlers(e);var i,s=this._getNumberOfMonths(e),n=s[1],a=17,r=e.dpDiv.find("."+this._dayOverClass+" a");r.length>0&&o.apply(r.get(0)),e.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),n>1&&e.dpDiv.addClass("ui-datepicker-multi-"+n).css("width",a*n+"em"),e.dpDiv[(1!==s[0]||1!==s[1]?"add":"remove")+"Class"]("ui-datepicker-multi"),e.dpDiv[(this._get(e,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),e===t.datepicker._curInst&&t.datepicker._datepickerShowing&&t.datepicker._shouldFocusInput(e)&&e.input.trigger("focus"),e.yearshtml&&(i=e.yearshtml,setTimeout(function(){i===e.yearshtml&&e.yearshtml&&e.dpDiv.find("select.ui-datepicker-year:first").replaceWith(e.yearshtml),i=e.yearshtml=null},0))},_shouldFocusInput:function(t){return t.input&&t.input.is(":visible")&&!t.input.is(":disabled")&&!t.input.is(":focus")},_checkOffset:function(e,i,s){var n=e.dpDiv.outerWidth(),o=e.dpDiv.outerHeight(),a=e.input?e.input.outerWidth():0,r=e.input?e.input.outerHeight():0,h=document.documentElement.clientWidth+(s?0:t(document).scrollLeft()),l=document.documentElement.clientHeight+(s?0:t(document).scrollTop());return i.left-=this._get(e,"isRTL")?n-a:0,i.left-=s&&i.left===e.input.offset().left?t(document).scrollLeft():0,i.top-=s&&i.top===e.input.offset().top+r?t(document).scrollTop():0,i.left-=Math.min(i.left,i.left+n>h&&h>n?Math.abs(i.left+n-h):0),i.top-=Math.min(i.top,i.top+o>l&&l>o?Math.abs(o+r):0),i},_findPos:function(e){for(var i,s=this._getInst(e),n=this._get(s,"isRTL");e&&("hidden"===e.type||1!==e.nodeType||t.expr.filters.hidden(e));)e=e[n?"previousSibling":"nextSibling"];return i=t(e).offset(),[i.left,i.top]},_hideDatepicker:function(e){var i,s,n,o,a=this._curInst;!a||e&&a!==t.data(e,"datepicker")||this._datepickerShowing&&(i=this._get(a,"showAnim"),s=this._get(a,"duration"),n=function(){t.datepicker._tidyDialog(a)},t.effects&&(t.effects.effect[i]||t.effects[i])?a.dpDiv.hide(i,t.datepicker._get(a,"showOptions"),s,n):a.dpDiv["slideDown"===i?"slideUp":"fadeIn"===i?"fadeOut":"hide"](i?s:null,n),i||n(),this._datepickerShowing=!1,o=this._get(a,"onClose"),o&&o.apply(a.input?a.input[0]:null,[a.input?a.input.val():"",a]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),t.blockUI&&(t.unblockUI(),t("body").append(this.dpDiv))),this._inDialog=!1)},_tidyDialog:function(t){t.dpDiv.removeClass(this._dialogClass).off(".ui-datepicker-calendar")},_checkExternalClick:function(e){if(t.datepicker._curInst){var i=t(e.target),s=t.datepicker._getInst(i[0]);(i[0].id!==t.datepicker._mainDivId&&0===i.parents("#"+t.datepicker._mainDivId).length&&!i.hasClass(t.datepicker.markerClassName)&&!i.closest("."+t.datepicker._triggerClass).length&&t.datepicker._datepickerShowing&&(!t.datepicker._inDialog||!t.blockUI)||i.hasClass(t.datepicker.markerClassName)&&t.datepicker._curInst!==s)&&t.datepicker._hideDatepicker()}},_adjustDate:function(e,i,s){var n=t(e),o=this._getInst(n[0]);this._isDisabledDatepicker(n[0])||(this._adjustInstDate(o,i+("M"===s?this._get(o,"showCurrentAtPos"):0),s),this._updateDatepicker(o))},_gotoToday:function(e){var i,s=t(e),n=this._getInst(s[0]);this._get(n,"gotoCurrent")&&n.currentDay?(n.selectedDay=n.currentDay,n.drawMonth=n.selectedMonth=n.currentMonth,n.drawYear=n.selectedYear=n.currentYear):(i=new Date,n.selectedDay=i.getDate(),n.drawMonth=n.selectedMonth=i.getMonth(),n.drawYear=n.selectedYear=i.getFullYear()),this._notifyChange(n),this._adjustDate(s)},_selectMonthYear:function(e,i,s){var n=t(e),o=this._getInst(n[0]);o["selected"+("M"===s?"Month":"Year")]=o["draw"+("M"===s?"Month":"Year")]=parseInt(i.options[i.selectedIndex].value,10),this._notifyChange(o),this._adjustDate(n)},_selectDay:function(e,i,s,n){var o,a=t(e);t(n).hasClass(this._unselectableClass)||this._isDisabledDatepicker(a[0])||(o=this._getInst(a[0]),o.selectedDay=o.currentDay=t("a",n).html(),o.selectedMonth=o.currentMonth=i,o.selectedYear=o.currentYear=s,this._selectDate(e,this._formatDate(o,o.currentDay,o.currentMonth,o.currentYear)))},_clearDate:function(e){var i=t(e);this._selectDate(i,"")},_selectDate:function(e,i){var s,n=t(e),o=this._getInst(n[0]);i=null!=i?i:this._formatDate(o),o.input&&o.input.val(i),this._updateAlternate(o),s=this._get(o,"onSelect"),s?s.apply(o.input?o.input[0]:null,[i,o]):o.input&&o.input.trigger("change"),o.inline?this._updateDatepicker(o):(this._hideDatepicker(),this._lastInput=o.input[0],"object"!=typeof o.input[0]&&o.input.trigger("focus"),this._lastInput=null)},_updateAlternate:function(e){var i,s,n,o=this._get(e,"altField");o&&(i=this._get(e,"altFormat")||this._get(e,"dateFormat"),s=this._getDate(e),n=this.formatDate(i,s,this._getFormatConfig(e)),t(o).val(n))},noWeekends:function(t){var e=t.getDay();return[e>0&&6>e,""]},iso8601Week:function(t){var e,i=new Date(t.getTime());return i.setDate(i.getDate()+4-(i.getDay()||7)),e=i.getTime(),i.setMonth(0),i.setDate(1),Math.floor(Math.round((e-i)/864e5)/7)+1},parseDate:function(e,i,s){if(null==e||null==i)throw"Invalid arguments";if(i="object"==typeof i?""+i:i+"",""===i)return null;var n,o,a,r,h=0,l=(s?s.shortYearCutoff:null)||this._defaults.shortYearCutoff,c="string"!=typeof l?l:(new Date).getFullYear()%100+parseInt(l,10),u=(s?s.dayNamesShort:null)||this._defaults.dayNamesShort,d=(s?s.dayNames:null)||this._defaults.dayNames,p=(s?s.monthNamesShort:null)||this._defaults.monthNamesShort,f=(s?s.monthNames:null)||this._defaults.monthNames,g=-1,m=-1,_=-1,v=-1,b=!1,y=function(t){var i=e.length>n+1&&e.charAt(n+1)===t;return i&&n++,i},w=function(t){var e=y(t),s="@"===t?14:"!"===t?20:"y"===t&&e?4:"o"===t?3:2,n="y"===t?s:1,o=RegExp("^\\d{"+n+","+s+"}"),a=i.substring(h).match(o);if(!a)throw"Missing number at position "+h;return h+=a[0].length,parseInt(a[0],10)},k=function(e,s,n){var o=-1,a=t.map(y(e)?n:s,function(t,e){return[[e,t]]}).sort(function(t,e){return-(t[1].length-e[1].length)});if(t.each(a,function(t,e){var s=e[1];return i.substr(h,s.length).toLowerCase()===s.toLowerCase()?(o=e[0],h+=s.length,!1):void 0}),-1!==o)return o+1;throw"Unknown name at position "+h},x=function(){if(i.charAt(h)!==e.charAt(n))throw"Unexpected literal at position "+h;h++};for(n=0;e.length>n;n++)if(b)"'"!==e.charAt(n)||y("'")?x():b=!1;else switch(e.charAt(n)){case"d":_=w("d");break;case"D":k("D",u,d);break;case"o":v=w("o");break;case"m":m=w("m");break;case"M":m=k("M",p,f);break;case"y":g=w("y");break;case"@":r=new Date(w("@")),g=r.getFullYear(),m=r.getMonth()+1,_=r.getDate();break;case"!":r=new Date((w("!")-this._ticksTo1970)/1e4),g=r.getFullYear(),m=r.getMonth()+1,_=r.getDate();break;case"'":y("'")?x():b=!0;break;default:x()}if(i.length>h&&(a=i.substr(h),!/^\s+/.test(a)))throw"Extra/unparsed characters found in date: "+a;if(-1===g?g=(new Date).getFullYear():100>g&&(g+=(new Date).getFullYear()-(new Date).getFullYear()%100+(c>=g?0:-100)),v>-1)for(m=1,_=v;;){if(o=this._getDaysInMonth(g,m-1),o>=_)break;m++,_-=o}if(r=this._daylightSavingAdjust(new Date(g,m-1,_)),r.getFullYear()!==g||r.getMonth()+1!==m||r.getDate()!==_)throw"Invalid date";return r},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:1e7*60*60*24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925)),formatDate:function(t,e,i){if(!e)return"";var s,n=(i?i.dayNamesShort:null)||this._defaults.dayNamesShort,o=(i?i.dayNames:null)||this._defaults.dayNames,a=(i?i.monthNamesShort:null)||this._defaults.monthNamesShort,r=(i?i.monthNames:null)||this._defaults.monthNames,h=function(e){var i=t.length>s+1&&t.charAt(s+1)===e;return i&&s++,i},l=function(t,e,i){var s=""+e;if(h(t))for(;i>s.length;)s="0"+s;return s},c=function(t,e,i,s){return h(t)?s[e]:i[e]},u="",d=!1;if(e)for(s=0;t.length>s;s++)if(d)"'"!==t.charAt(s)||h("'")?u+=t.charAt(s):d=!1;else switch(t.charAt(s)){case"d":u+=l("d",e.getDate(),2);break;case"D":u+=c("D",e.getDay(),n,o);break;case"o":u+=l("o",Math.round((new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime()-new Date(e.getFullYear(),0,0).getTime())/864e5),3);break;case"m":u+=l("m",e.getMonth()+1,2);break;case"M":u+=c("M",e.getMonth(),a,r);break;case"y":u+=h("y")?e.getFullYear():(10>e.getFullYear()%100?"0":"")+e.getFullYear()%100;break;case"@":u+=e.getTime();break;case"!":u+=1e4*e.getTime()+this._ticksTo1970;break;case"'":h("'")?u+="'":d=!0;break;default:u+=t.charAt(s)}return u},_possibleChars:function(t){var e,i="",s=!1,n=function(i){var s=t.length>e+1&&t.charAt(e+1)===i;return s&&e++,s};for(e=0;t.length>e;e++)if(s)"'"!==t.charAt(e)||n("'")?i+=t.charAt(e):s=!1;else switch(t.charAt(e)){case"d":case"m":case"y":case"@":i+="0123456789";break;case"D":case"M":return null;case"'":n("'")?i+="'":s=!0;break;default:i+=t.charAt(e)}return i},_get:function(t,e){return void 0!==t.settings[e]?t.settings[e]:this._defaults[e]},_setDateFromField:function(t,e){if(t.input.val()!==t.lastVal){var i=this._get(t,"dateFormat"),s=t.lastVal=t.input?t.input.val():null,n=this._getDefaultDate(t),o=n,a=this._getFormatConfig(t);try{o=this.parseDate(i,s,a)||n}catch(r){s=e?"":s}t.selectedDay=o.getDate(),t.drawMonth=t.selectedMonth=o.getMonth(),t.drawYear=t.selectedYear=o.getFullYear(),t.currentDay=s?o.getDate():0,t.currentMonth=s?o.getMonth():0,t.currentYear=s?o.getFullYear():0,this._adjustInstDate(t)}},_getDefaultDate:function(t){return this._restrictMinMax(t,this._determineDate(t,this._get(t,"defaultDate"),new Date))},_determineDate:function(e,i,s){var n=function(t){var e=new Date;return e.setDate(e.getDate()+t),e},o=function(i){try{return t.datepicker.parseDate(t.datepicker._get(e,"dateFormat"),i,t.datepicker._getFormatConfig(e))}catch(s){}for(var n=(i.toLowerCase().match(/^c/)?t.datepicker._getDate(e):null)||new Date,o=n.getFullYear(),a=n.getMonth(),r=n.getDate(),h=/([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,l=h.exec(i);l;){switch(l[2]||"d"){case"d":case"D":r+=parseInt(l[1],10);break;case"w":case"W":r+=7*parseInt(l[1],10);break;case"m":case"M":a+=parseInt(l[1],10),r=Math.min(r,t.datepicker._getDaysInMonth(o,a));break;case"y":case"Y":o+=parseInt(l[1],10),r=Math.min(r,t.datepicker._getDaysInMonth(o,a))}l=h.exec(i)}return new Date(o,a,r)},a=null==i||""===i?s:"string"==typeof i?o(i):"number"==typeof i?isNaN(i)?s:n(i):new Date(i.getTime());return a=a&&"Invalid Date"==""+a?s:a,a&&(a.setHours(0),a.setMinutes(0),a.setSeconds(0),a.setMilliseconds(0)),this._daylightSavingAdjust(a)},_daylightSavingAdjust:function(t){return t?(t.setHours(t.getHours()>12?t.getHours()+2:0),t):null},_setDate:function(t,e,i){var s=!e,n=t.selectedMonth,o=t.selectedYear,a=this._restrictMinMax(t,this._determineDate(t,e,new Date));t.selectedDay=t.currentDay=a.getDate(),t.drawMonth=t.selectedMonth=t.currentMonth=a.getMonth(),t.drawYear=t.selectedYear=t.currentYear=a.getFullYear(),n===t.selectedMonth&&o===t.selectedYear||i||this._notifyChange(t),this._adjustInstDate(t),t.input&&t.input.val(s?"":this._formatDate(t))},_getDate:function(t){var e=!t.currentYear||t.input&&""===t.input.val()?null:this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));return e},_attachHandlers:function(e){var i=this._get(e,"stepMonths"),s="#"+e.id.replace(/\\\\/g,"\\");e.dpDiv.find("[data-handler]").map(function(){var e={prev:function(){t.datepicker._adjustDate(s,-i,"M")},next:function(){t.datepicker._adjustDate(s,+i,"M")},hide:function(){t.datepicker._hideDatepicker()},today:function(){t.datepicker._gotoToday(s)},selectDay:function(){return t.datepicker._selectDay(s,+this.getAttribute("data-month"),+this.getAttribute("data-year"),this),!1},selectMonth:function(){return t.datepicker._selectMonthYear(s,this,"M"),!1},selectYear:function(){return t.datepicker._selectMonthYear(s,this,"Y"),!1}};t(this).on(this.getAttribute("data-event"),e[this.getAttribute("data-handler")])})},_generateHTML:function(t){var e,i,s,n,o,a,r,h,l,c,u,d,p,f,g,m,_,v,b,y,w,k,x,C,D,I,T,P,M,S,H,z,O,A,N,W,E,F,L,R=new Date,B=this._daylightSavingAdjust(new Date(R.getFullYear(),R.getMonth(),R.getDate())),Y=this._get(t,"isRTL"),j=this._get(t,"showButtonPanel"),q=this._get(t,"hideIfNoPrevNext"),K=this._get(t,"navigationAsDateFormat"),U=this._getNumberOfMonths(t),V=this._get(t,"showCurrentAtPos"),$=this._get(t,"stepMonths"),X=1!==U[0]||1!==U[1],G=this._daylightSavingAdjust(t.currentDay?new Date(t.currentYear,t.currentMonth,t.currentDay):new Date(9999,9,9)),Q=this._getMinMaxDate(t,"min"),J=this._getMinMaxDate(t,"max"),Z=t.drawMonth-V,te=t.drawYear;if(0>Z&&(Z+=12,te--),J)for(e=this._daylightSavingAdjust(new Date(J.getFullYear(),J.getMonth()-U[0]*U[1]+1,J.getDate())),e=Q&&Q>e?Q:e;this._daylightSavingAdjust(new Date(te,Z,1))>e;)Z--,0>Z&&(Z=11,te--);for(t.drawMonth=Z,t.drawYear=te,i=this._get(t,"prevText"),i=K?this.formatDate(i,this._daylightSavingAdjust(new Date(te,Z-$,1)),this._getFormatConfig(t)):i,s=this._canAdjustMonth(t,-1,te,Z)?""+i+"":q?"":""+i+"",n=this._get(t,"nextText"),n=K?this.formatDate(n,this._daylightSavingAdjust(new Date(te,Z+$,1)),this._getFormatConfig(t)):n,o=this._canAdjustMonth(t,1,te,Z)?""+n+"":q?"":""+n+"",a=this._get(t,"currentText"),r=this._get(t,"gotoCurrent")&&t.currentDay?G:B,a=K?this.formatDate(a,r,this._getFormatConfig(t)):a,h=t.inline?"":"",l=j?"
      "+(Y?h:"")+(this._isInRange(t,r)?"":"")+(Y?"":h)+"
      ":"",c=parseInt(this._get(t,"firstDay"),10),c=isNaN(c)?0:c,u=this._get(t,"showWeek"),d=this._get(t,"dayNames"),p=this._get(t,"dayNamesMin"),f=this._get(t,"monthNames"),g=this._get(t,"monthNamesShort"),m=this._get(t,"beforeShowDay"),_=this._get(t,"showOtherMonths"),v=this._get(t,"selectOtherMonths"),b=this._getDefaultDate(t),y="",k=0;U[0]>k;k++){for(x="",this.maxRows=4,C=0;U[1]>C;C++){if(D=this._daylightSavingAdjust(new Date(te,Z,t.selectedDay)),I=" ui-corner-all",T="",X){if(T+="
      "}for(T+="
      "+(/all|left/.test(I)&&0===k?Y?o:s:"")+(/all|right/.test(I)&&0===k?Y?s:o:"")+this._generateMonthYearHeader(t,Z,te,Q,J,k>0||C>0,f,g)+"
      "+"",P=u?"":"",w=0;7>w;w++)M=(w+c)%7,P+="";for(T+=P+"",S=this._getDaysInMonth(te,Z),te===t.selectedYear&&Z===t.selectedMonth&&(t.selectedDay=Math.min(t.selectedDay,S)),H=(this._getFirstDayOfMonth(te,Z)-c+7)%7,z=Math.ceil((H+S)/7),O=X?this.maxRows>z?this.maxRows:z:z,this.maxRows=O,A=this._daylightSavingAdjust(new Date(te,Z,1-H)),N=0;O>N;N++){for(T+="",W=u?"":"",w=0;7>w;w++)E=m?m.apply(t.input?t.input[0]:null,[A]):[!0,""],F=A.getMonth()!==Z,L=F&&!v||!E[0]||Q&&Q>A||J&&A>J,W+="",A.setDate(A.getDate()+1),A=this._daylightSavingAdjust(A);T+=W+""}Z++,Z>11&&(Z=0,te++),T+="
      "+this._get(t,"weekHeader")+"=5?" class='ui-datepicker-week-end'":"")+">"+""+p[M]+"
      "+this._get(t,"calculateWeek")(A)+""+(F&&!_?" ":L?""+A.getDate()+"":""+A.getDate()+"")+"
      "+(X?"
      "+(U[0]>0&&C===U[1]-1?"
      ":""):""),x+=T}y+=x}return y+=l,t._keyEvent=!1,y},_generateMonthYearHeader:function(t,e,i,s,n,o,a,r){var h,l,c,u,d,p,f,g,m=this._get(t,"changeMonth"),_=this._get(t,"changeYear"),v=this._get(t,"showMonthAfterYear"),b="
      ",y="";if(o||!m)y+=""+a[e]+"";else{for(h=s&&s.getFullYear()===i,l=n&&n.getFullYear()===i,y+=""}if(v||(b+=y+(!o&&m&&_?"":" ")),!t.yearshtml)if(t.yearshtml="",o||!_)b+=""+i+"";else{for(u=this._get(t,"yearRange").split(":"),d=(new Date).getFullYear(),p=function(t){var e=t.match(/c[+\-].*/)?i+parseInt(t.substring(1),10):t.match(/[+\-].*/)?d+parseInt(t,10):parseInt(t,10);return isNaN(e)?d:e},f=p(u[0]),g=Math.max(f,p(u[1]||"")),f=s?Math.max(f,s.getFullYear()):f,g=n?Math.min(g,n.getFullYear()):g,t.yearshtml+="",b+=t.yearshtml,t.yearshtml=null}return b+=this._get(t,"yearSuffix"),v&&(b+=(!o&&m&&_?"":" ")+y),b+="
      "},_adjustInstDate:function(t,e,i){var s=t.selectedYear+("Y"===i?e:0),n=t.selectedMonth+("M"===i?e:0),o=Math.min(t.selectedDay,this._getDaysInMonth(s,n))+("D"===i?e:0),a=this._restrictMinMax(t,this._daylightSavingAdjust(new Date(s,n,o)));t.selectedDay=a.getDate(),t.drawMonth=t.selectedMonth=a.getMonth(),t.drawYear=t.selectedYear=a.getFullYear(),("M"===i||"Y"===i)&&this._notifyChange(t)},_restrictMinMax:function(t,e){var i=this._getMinMaxDate(t,"min"),s=this._getMinMaxDate(t,"max"),n=i&&i>e?i:e;return s&&n>s?s:n},_notifyChange:function(t){var e=this._get(t,"onChangeMonthYear");e&&e.apply(t.input?t.input[0]:null,[t.selectedYear,t.selectedMonth+1,t])},_getNumberOfMonths:function(t){var e=this._get(t,"numberOfMonths");return null==e?[1,1]:"number"==typeof e?[1,e]:e},_getMinMaxDate:function(t,e){return this._determineDate(t,this._get(t,e+"Date"),null)},_getDaysInMonth:function(t,e){return 32-this._daylightSavingAdjust(new Date(t,e,32)).getDate()},_getFirstDayOfMonth:function(t,e){return new Date(t,e,1).getDay()},_canAdjustMonth:function(t,e,i,s){var n=this._getNumberOfMonths(t),o=this._daylightSavingAdjust(new Date(i,s+(0>e?e:n[0]*n[1]),1));return 0>e&&o.setDate(this._getDaysInMonth(o.getFullYear(),o.getMonth())),this._isInRange(t,o)},_isInRange:function(t,e){var i,s,n=this._getMinMaxDate(t,"min"),o=this._getMinMaxDate(t,"max"),a=null,r=null,h=this._get(t,"yearRange");return h&&(i=h.split(":"),s=(new Date).getFullYear(),a=parseInt(i[0],10),r=parseInt(i[1],10),i[0].match(/[+\-].*/)&&(a+=s),i[1].match(/[+\-].*/)&&(r+=s)),(!n||e.getTime()>=n.getTime())&&(!o||e.getTime()<=o.getTime())&&(!a||e.getFullYear()>=a)&&(!r||r>=e.getFullYear())},_getFormatConfig:function(t){var e=this._get(t,"shortYearCutoff");return e="string"!=typeof e?e:(new Date).getFullYear()%100+parseInt(e,10),{shortYearCutoff:e,dayNamesShort:this._get(t,"dayNamesShort"),dayNames:this._get(t,"dayNames"),monthNamesShort:this._get(t,"monthNamesShort"),monthNames:this._get(t,"monthNames")}},_formatDate:function(t,e,i,s){e||(t.currentDay=t.selectedDay,t.currentMonth=t.selectedMonth,t.currentYear=t.selectedYear);var n=e?"object"==typeof e?e:this._daylightSavingAdjust(new Date(s,i,e)):this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));return this.formatDate(this._get(t,"dateFormat"),n,this._getFormatConfig(t))}}),t.fn.datepicker=function(e){if(!this.length)return this;t.datepicker.initialized||(t(document).on("mousedown",t.datepicker._checkExternalClick),t.datepicker.initialized=!0),0===t("#"+t.datepicker._mainDivId).length&&t("body").append(t.datepicker.dpDiv);var i=Array.prototype.slice.call(arguments,1);return"string"!=typeof e||"isDisabled"!==e&&"getDate"!==e&&"widget"!==e?"option"===e&&2===arguments.length&&"string"==typeof arguments[1]?t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this[0]].concat(i)):this.each(function(){"string"==typeof e?t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this].concat(i)):t.datepicker._attachDatepicker(this,e)}):t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this[0]].concat(i))},t.datepicker=new s,t.datepicker.initialized=!1,t.datepicker.uuid=(new Date).getTime(),t.datepicker.version="1.12.1",t.datepicker,t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var _=!1;t(document).on("mouseup",function(){_=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!_){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,n="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!n&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),_=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,_=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},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;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.ui.safeBlur=function(e){e&&"body"!==e.nodeName.toLowerCase()&&t(e).trigger("blur")},t.widget("ui.draggable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){"original"===this.options.helper&&this._setPositionRelative(),this.options.addClasses&&this._addClass("ui-draggable"),this._setHandleClassName(),this._mouseInit()},_setOption:function(t,e){this._super(t,e),"handle"===t&&(this._removeHandleClassName(),this._setHandleClassName())},_destroy:function(){return(this.helper||this.element).is(".ui-draggable-dragging")?(this.destroyOnClear=!0,void 0):(this._removeHandleClassName(),this._mouseDestroy(),void 0)},_mouseCapture:function(e){var i=this.options;return this.helper||i.disabled||t(e.target).closest(".ui-resizable-handle").length>0?!1:(this.handle=this._getHandle(e),this.handle?(this._blurActiveElement(e),this._blockFrames(i.iframeFix===!0?"iframe":i.iframeFix),!0):!1)},_blockFrames:function(e){this.iframeBlocks=this.document.find(e).map(function(){var e=t(this);return t("
      ").css("position","absolute").appendTo(e.parent()).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).offset(e.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(e){var i=t.ui.safeActiveElement(this.document[0]),s=t(e.target);s.closest(i).length||t.ui.safeBlur(i)},_mouseStart:function(e){var i=this.options;return this.helper=this._createHelper(e),this._addClass(this.helper,"ui-draggable-dragging"),this._cacheHelperProportions(),t.ui.ddmanager&&(t.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=this.helper.parents().filter(function(){return"fixed"===t(this).css("position")}).length>0,this.positionAbs=this.element.offset(),this._refreshOffsets(e),this.originalPosition=this.position=this._generatePosition(e,!1),this.originalPageX=e.pageX,this.originalPageY=e.pageY,i.cursorAt&&this._adjustOffsetFromHelper(i.cursorAt),this._setContainment(),this._trigger("start",e)===!1?(this._clear(),!1):(this._cacheHelperProportions(),t.ui.ddmanager&&!i.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this._mouseDrag(e,!0),t.ui.ddmanager&&t.ui.ddmanager.dragStart(this,e),!0)},_refreshOffsets:function(t){this.offset={top:this.positionAbs.top-this.margins.top,left:this.positionAbs.left-this.margins.left,scroll:!1,parent:this._getParentOffset(),relative:this._getRelativeOffset()},this.offset.click={left:t.pageX-this.offset.left,top:t.pageY-this.offset.top}},_mouseDrag:function(e,i){if(this.hasFixedAncestor&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(e,!0),this.positionAbs=this._convertPositionTo("absolute"),!i){var s=this._uiHash();if(this._trigger("drag",e,s)===!1)return this._mouseUp(new t.Event("mouseup",e)),!1;this.position=s.position}return this.helper[0].style.left=this.position.left+"px",this.helper[0].style.top=this.position.top+"px",t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),!1},_mouseStop:function(e){var i=this,s=!1;return t.ui.ddmanager&&!this.options.dropBehaviour&&(s=t.ui.ddmanager.drop(this,e)),this.dropped&&(s=this.dropped,this.dropped=!1),"invalid"===this.options.revert&&!s||"valid"===this.options.revert&&s||this.options.revert===!0||t.isFunction(this.options.revert)&&this.options.revert.call(this.element,s)?t(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){i._trigger("stop",e)!==!1&&i._clear()}):this._trigger("stop",e)!==!1&&this._clear(),!1},_mouseUp:function(e){return this._unblockFrames(),t.ui.ddmanager&&t.ui.ddmanager.dragStop(this,e),this.handleElement.is(e.target)&&this.element.trigger("focus"),t.ui.mouse.prototype._mouseUp.call(this,e)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp(new t.Event("mouseup",{target:this.element[0]})):this._clear(),this},_getHandle:function(e){return this.options.handle?!!t(e.target).closest(this.element.find(this.options.handle)).length:!0},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element,this._addClass(this.handleElement,"ui-draggable-handle")},_removeHandleClassName:function(){this._removeClass(this.handleElement,"ui-draggable-handle")},_createHelper:function(e){var i=this.options,s=t.isFunction(i.helper),n=s?t(i.helper.apply(this.element[0],[e])):"clone"===i.helper?this.element.clone().removeAttr("id"):this.element;return n.parents("body").length||n.appendTo("parent"===i.appendTo?this.element[0].parentNode:i.appendTo),s&&n[0]===this.element[0]&&this._setPositionRelative(),n[0]===this.element[0]||/(fixed|absolute)/.test(n.css("position"))||n.css("position","absolute"),n},_setPositionRelative:function(){/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative")},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_isRootNode:function(t){return/(html|body)/i.test(t.tagName)||t===this.document[0]},_getParentOffset:function(){var e=this.offsetParent.offset(),i=this.document[0];return"absolute"===this.cssPosition&&this.scrollParent[0]!==i&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),this._isRootNode(this.offsetParent[0])&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"!==this.cssPosition)return{top:0,left:0};var t=this.element.position(),e=this._isRootNode(this.scrollParent[0]);return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+(e?0:this.scrollParent.scrollTop()),left:t.left-(parseInt(this.helper.css("left"),10)||0)+(e?0:this.scrollParent.scrollLeft())} -},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,s,n=this.options,o=this.document[0];return this.relativeContainer=null,n.containment?"window"===n.containment?(this.containment=[t(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,t(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,t(window).scrollLeft()+t(window).width()-this.helperProportions.width-this.margins.left,t(window).scrollTop()+(t(window).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):"document"===n.containment?(this.containment=[0,0,t(o).width()-this.helperProportions.width-this.margins.left,(t(o).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):n.containment.constructor===Array?(this.containment=n.containment,void 0):("parent"===n.containment&&(n.containment=this.helper[0].parentNode),i=t(n.containment),s=i[0],s&&(e=/(scroll|auto)/.test(i.css("overflow")),this.containment=[(parseInt(i.css("borderLeftWidth"),10)||0)+(parseInt(i.css("paddingLeft"),10)||0),(parseInt(i.css("borderTopWidth"),10)||0)+(parseInt(i.css("paddingTop"),10)||0),(e?Math.max(s.scrollWidth,s.offsetWidth):s.offsetWidth)-(parseInt(i.css("borderRightWidth"),10)||0)-(parseInt(i.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(e?Math.max(s.scrollHeight,s.offsetHeight):s.offsetHeight)-(parseInt(i.css("borderBottomWidth"),10)||0)-(parseInt(i.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relativeContainer=i),void 0):(this.containment=null,void 0)},_convertPositionTo:function(t,e){e||(e=this.position);var i="absolute"===t?1:-1,s=this._isRootNode(this.scrollParent[0]);return{top:e.top+this.offset.relative.top*i+this.offset.parent.top*i-("fixed"===this.cssPosition?-this.offset.scroll.top:s?0:this.offset.scroll.top)*i,left:e.left+this.offset.relative.left*i+this.offset.parent.left*i-("fixed"===this.cssPosition?-this.offset.scroll.left:s?0:this.offset.scroll.left)*i}},_generatePosition:function(t,e){var i,s,n,o,a=this.options,r=this._isRootNode(this.scrollParent[0]),h=t.pageX,l=t.pageY;return r&&this.offset.scroll||(this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()}),e&&(this.containment&&(this.relativeContainer?(s=this.relativeContainer.offset(),i=[this.containment[0]+s.left,this.containment[1]+s.top,this.containment[2]+s.left,this.containment[3]+s.top]):i=this.containment,t.pageX-this.offset.click.lefti[2]&&(h=i[2]+this.offset.click.left),t.pageY-this.offset.click.top>i[3]&&(l=i[3]+this.offset.click.top)),a.grid&&(n=a.grid[1]?this.originalPageY+Math.round((l-this.originalPageY)/a.grid[1])*a.grid[1]:this.originalPageY,l=i?n-this.offset.click.top>=i[1]||n-this.offset.click.top>i[3]?n:n-this.offset.click.top>=i[1]?n-a.grid[1]:n+a.grid[1]:n,o=a.grid[0]?this.originalPageX+Math.round((h-this.originalPageX)/a.grid[0])*a.grid[0]:this.originalPageX,h=i?o-this.offset.click.left>=i[0]||o-this.offset.click.left>i[2]?o:o-this.offset.click.left>=i[0]?o-a.grid[0]:o+a.grid[0]:o),"y"===a.axis&&(h=this.originalPageX),"x"===a.axis&&(l=this.originalPageY)),{top:l-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:r?0:this.offset.scroll.top),left:h-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:r?0:this.offset.scroll.left)}},_clear:function(){this._removeClass(this.helper,"ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_trigger:function(e,i,s){return s=s||this._uiHash(),t.ui.plugin.call(this,e,[i,s,this],!0),/^(drag|start|stop)/.test(e)&&(this.positionAbs=this._convertPositionTo("absolute"),s.offset=this.positionAbs),t.Widget.prototype._trigger.call(this,e,i,s)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),t.ui.plugin.add("draggable","connectToSortable",{start:function(e,i,s){var n=t.extend({},i,{item:s.element});s.sortables=[],t(s.options.connectToSortable).each(function(){var i=t(this).sortable("instance");i&&!i.options.disabled&&(s.sortables.push(i),i.refreshPositions(),i._trigger("activate",e,n))})},stop:function(e,i,s){var n=t.extend({},i,{item:s.element});s.cancelHelperRemoval=!1,t.each(s.sortables,function(){var t=this;t.isOver?(t.isOver=0,s.cancelHelperRemoval=!0,t.cancelHelperRemoval=!1,t._storedCSS={position:t.placeholder.css("position"),top:t.placeholder.css("top"),left:t.placeholder.css("left")},t._mouseStop(e),t.options.helper=t.options._helper):(t.cancelHelperRemoval=!0,t._trigger("deactivate",e,n))})},drag:function(e,i,s){t.each(s.sortables,function(){var n=!1,o=this;o.positionAbs=s.positionAbs,o.helperProportions=s.helperProportions,o.offset.click=s.offset.click,o._intersectsWith(o.containerCache)&&(n=!0,t.each(s.sortables,function(){return this.positionAbs=s.positionAbs,this.helperProportions=s.helperProportions,this.offset.click=s.offset.click,this!==o&&this._intersectsWith(this.containerCache)&&t.contains(o.element[0],this.element[0])&&(n=!1),n})),n?(o.isOver||(o.isOver=1,s._parent=i.helper.parent(),o.currentItem=i.helper.appendTo(o.element).data("ui-sortable-item",!0),o.options._helper=o.options.helper,o.options.helper=function(){return i.helper[0]},e.target=o.currentItem[0],o._mouseCapture(e,!0),o._mouseStart(e,!0,!0),o.offset.click.top=s.offset.click.top,o.offset.click.left=s.offset.click.left,o.offset.parent.left-=s.offset.parent.left-o.offset.parent.left,o.offset.parent.top-=s.offset.parent.top-o.offset.parent.top,s._trigger("toSortable",e),s.dropped=o.element,t.each(s.sortables,function(){this.refreshPositions()}),s.currentItem=s.element,o.fromOutside=s),o.currentItem&&(o._mouseDrag(e),i.position=o.position)):o.isOver&&(o.isOver=0,o.cancelHelperRemoval=!0,o.options._revert=o.options.revert,o.options.revert=!1,o._trigger("out",e,o._uiHash(o)),o._mouseStop(e,!0),o.options.revert=o.options._revert,o.options.helper=o.options._helper,o.placeholder&&o.placeholder.remove(),i.helper.appendTo(s._parent),s._refreshOffsets(e),i.position=s._generatePosition(e,!0),s._trigger("fromSortable",e),s.dropped=!1,t.each(s.sortables,function(){this.refreshPositions()}))})}}),t.ui.plugin.add("draggable","cursor",{start:function(e,i,s){var n=t("body"),o=s.options;n.css("cursor")&&(o._cursor=n.css("cursor")),n.css("cursor",o.cursor)},stop:function(e,i,s){var n=s.options;n._cursor&&t("body").css("cursor",n._cursor)}}),t.ui.plugin.add("draggable","opacity",{start:function(e,i,s){var n=t(i.helper),o=s.options;n.css("opacity")&&(o._opacity=n.css("opacity")),n.css("opacity",o.opacity)},stop:function(e,i,s){var n=s.options;n._opacity&&t(i.helper).css("opacity",n._opacity)}}),t.ui.plugin.add("draggable","scroll",{start:function(t,e,i){i.scrollParentNotHidden||(i.scrollParentNotHidden=i.helper.scrollParent(!1)),i.scrollParentNotHidden[0]!==i.document[0]&&"HTML"!==i.scrollParentNotHidden[0].tagName&&(i.overflowOffset=i.scrollParentNotHidden.offset())},drag:function(e,i,s){var n=s.options,o=!1,a=s.scrollParentNotHidden[0],r=s.document[0];a!==r&&"HTML"!==a.tagName?(n.axis&&"x"===n.axis||(s.overflowOffset.top+a.offsetHeight-e.pageY=0;d--)h=s.snapElements[d].left-s.margins.left,l=h+s.snapElements[d].width,c=s.snapElements[d].top-s.margins.top,u=c+s.snapElements[d].height,h-g>_||m>l+g||c-g>b||v>u+g||!t.contains(s.snapElements[d].item.ownerDocument,s.snapElements[d].item)?(s.snapElements[d].snapping&&s.options.snap.release&&s.options.snap.release.call(s.element,e,t.extend(s._uiHash(),{snapItem:s.snapElements[d].item})),s.snapElements[d].snapping=!1):("inner"!==f.snapMode&&(n=g>=Math.abs(c-b),o=g>=Math.abs(u-v),a=g>=Math.abs(h-_),r=g>=Math.abs(l-m),n&&(i.position.top=s._convertPositionTo("relative",{top:c-s.helperProportions.height,left:0}).top),o&&(i.position.top=s._convertPositionTo("relative",{top:u,left:0}).top),a&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h-s.helperProportions.width}).left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l}).left)),p=n||o||a||r,"outer"!==f.snapMode&&(n=g>=Math.abs(c-v),o=g>=Math.abs(u-b),a=g>=Math.abs(h-m),r=g>=Math.abs(l-_),n&&(i.position.top=s._convertPositionTo("relative",{top:c,left:0}).top),o&&(i.position.top=s._convertPositionTo("relative",{top:u-s.helperProportions.height,left:0}).top),a&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h}).left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l-s.helperProportions.width}).left)),!s.snapElements[d].snapping&&(n||o||a||r||p)&&s.options.snap.snap&&s.options.snap.snap.call(s.element,e,t.extend(s._uiHash(),{snapItem:s.snapElements[d].item})),s.snapElements[d].snapping=n||o||a||r||p)}}),t.ui.plugin.add("draggable","stack",{start:function(e,i,s){var n,o=s.options,a=t.makeArray(t(o.stack)).sort(function(e,i){return(parseInt(t(e).css("zIndex"),10)||0)-(parseInt(t(i).css("zIndex"),10)||0)});a.length&&(n=parseInt(t(a[0]).css("zIndex"),10)||0,t(a).each(function(e){t(this).css("zIndex",n+e)}),this.css("zIndex",n+a.length))}}),t.ui.plugin.add("draggable","zIndex",{start:function(e,i,s){var n=t(i.helper),o=s.options;n.css("zIndex")&&(o._zIndex=n.css("zIndex")),n.css("zIndex",o.zIndex)},stop:function(e,i,s){var n=s.options;n._zIndex&&t(i.helper).css("zIndex",n._zIndex)}}),t.ui.draggable,t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("
      ").css({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,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),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(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(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),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".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=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("
      "),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),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,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidtht.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-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")];4>e;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;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("
      "),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:++i.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,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,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}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,g=s.maxWidth&&p>s.maxWidth,m=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),g&&(p-=l),m&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable,t.widget("ui.dialog",{version:"1.12.1",options:{appendTo:"body",autoOpen:!0,buttons:[],classes:{"ui-dialog":"ui-corner-all","ui-dialog-titlebar":"ui-corner-all"},closeOnEscape:!0,closeText:"Close",draggable:!0,hide:null,height:"auto",maxHeight:null,maxWidth:null,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",of:window,collision:"fit",using:function(e){var i=t(this).css(e).offset().top;0>i&&t(this).css("top",e.top-i)}},resizable:!0,show:null,title:null,width:300,beforeClose:null,close:null,drag:null,dragStart:null,dragStop:null,focus:null,open:null,resize:null,resizeStart:null,resizeStop:null},sizeRelatedOptions:{buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},resizableRelatedOptions:{maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0},_create:function(){this.originalCss={display:this.element[0].style.display,width:this.element[0].style.width,minHeight:this.element[0].style.minHeight,maxHeight:this.element[0].style.maxHeight,height:this.element[0].style.height},this.originalPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.originalTitle=this.element.attr("title"),null==this.options.title&&null!=this.originalTitle&&(this.options.title=this.originalTitle),this.options.disabled&&(this.options.disabled=!1),this._createWrapper(),this.element.show().removeAttr("title").appendTo(this.uiDialog),this._addClass("ui-dialog-content","ui-widget-content"),this._createTitlebar(),this._createButtonPane(),this.options.draggable&&t.fn.draggable&&this._makeDraggable(),this.options.resizable&&t.fn.resizable&&this._makeResizable(),this._isOpen=!1,this._trackFocus()},_init:function(){this.options.autoOpen&&this.open()},_appendTo:function(){var e=this.options.appendTo;return e&&(e.jquery||e.nodeType)?t(e):this.document.find(e||"body").eq(0)},_destroy:function(){var t,e=this.originalPosition;this._untrackInstance(),this._destroyOverlay(),this.element.removeUniqueId().css(this.originalCss).detach(),this.uiDialog.remove(),this.originalTitle&&this.element.attr("title",this.originalTitle),t=e.parent.children().eq(e.index),t.length&&t[0]!==this.element[0]?t.before(this.element):e.parent.append(this.element)},widget:function(){return this.uiDialog -},disable:t.noop,enable:t.noop,close:function(e){var i=this;this._isOpen&&this._trigger("beforeClose",e)!==!1&&(this._isOpen=!1,this._focusedElement=null,this._destroyOverlay(),this._untrackInstance(),this.opener.filter(":focusable").trigger("focus").length||t.ui.safeBlur(t.ui.safeActiveElement(this.document[0])),this._hide(this.uiDialog,this.options.hide,function(){i._trigger("close",e)}))},isOpen:function(){return this._isOpen},moveToTop:function(){this._moveToTop()},_moveToTop:function(e,i){var s=!1,n=this.uiDialog.siblings(".ui-front:visible").map(function(){return+t(this).css("z-index")}).get(),o=Math.max.apply(null,n);return o>=+this.uiDialog.css("z-index")&&(this.uiDialog.css("z-index",o+1),s=!0),s&&!i&&this._trigger("focus",e),s},open:function(){var e=this;return this._isOpen?(this._moveToTop()&&this._focusTabbable(),void 0):(this._isOpen=!0,this.opener=t(t.ui.safeActiveElement(this.document[0])),this._size(),this._position(),this._createOverlay(),this._moveToTop(null,!0),this.overlay&&this.overlay.css("z-index",this.uiDialog.css("z-index")-1),this._show(this.uiDialog,this.options.show,function(){e._focusTabbable(),e._trigger("focus")}),this._makeFocusTarget(),this._trigger("open"),void 0)},_focusTabbable:function(){var t=this._focusedElement;t||(t=this.element.find("[autofocus]")),t.length||(t=this.element.find(":tabbable")),t.length||(t=this.uiDialogButtonPane.find(":tabbable")),t.length||(t=this.uiDialogTitlebarClose.filter(":tabbable")),t.length||(t=this.uiDialog),t.eq(0).trigger("focus")},_keepFocus:function(e){function i(){var e=t.ui.safeActiveElement(this.document[0]),i=this.uiDialog[0]===e||t.contains(this.uiDialog[0],e);i||this._focusTabbable()}e.preventDefault(),i.call(this),this._delay(i)},_createWrapper:function(){this.uiDialog=t("
      ").hide().attr({tabIndex:-1,role:"dialog"}).appendTo(this._appendTo()),this._addClass(this.uiDialog,"ui-dialog","ui-widget ui-widget-content ui-front"),this._on(this.uiDialog,{keydown:function(e){if(this.options.closeOnEscape&&!e.isDefaultPrevented()&&e.keyCode&&e.keyCode===t.ui.keyCode.ESCAPE)return e.preventDefault(),this.close(e),void 0;if(e.keyCode===t.ui.keyCode.TAB&&!e.isDefaultPrevented()){var i=this.uiDialog.find(":tabbable"),s=i.filter(":first"),n=i.filter(":last");e.target!==n[0]&&e.target!==this.uiDialog[0]||e.shiftKey?e.target!==s[0]&&e.target!==this.uiDialog[0]||!e.shiftKey||(this._delay(function(){n.trigger("focus")}),e.preventDefault()):(this._delay(function(){s.trigger("focus")}),e.preventDefault())}},mousedown:function(t){this._moveToTop(t)&&this._focusTabbable()}}),this.element.find("[aria-describedby]").length||this.uiDialog.attr({"aria-describedby":this.element.uniqueId().attr("id")})},_createTitlebar:function(){var e;this.uiDialogTitlebar=t("
      "),this._addClass(this.uiDialogTitlebar,"ui-dialog-titlebar","ui-widget-header ui-helper-clearfix"),this._on(this.uiDialogTitlebar,{mousedown:function(e){t(e.target).closest(".ui-dialog-titlebar-close")||this.uiDialog.trigger("focus")}}),this.uiDialogTitlebarClose=t("").button({label:t("").text(this.options.closeText).html(),icon:"ui-icon-closethick",showLabel:!1}).appendTo(this.uiDialogTitlebar),this._addClass(this.uiDialogTitlebarClose,"ui-dialog-titlebar-close"),this._on(this.uiDialogTitlebarClose,{click:function(t){t.preventDefault(),this.close(t)}}),e=t("").uniqueId().prependTo(this.uiDialogTitlebar),this._addClass(e,"ui-dialog-title"),this._title(e),this.uiDialogTitlebar.prependTo(this.uiDialog),this.uiDialog.attr({"aria-labelledby":e.attr("id")})},_title:function(t){this.options.title?t.text(this.options.title):t.html(" ")},_createButtonPane:function(){this.uiDialogButtonPane=t("
      "),this._addClass(this.uiDialogButtonPane,"ui-dialog-buttonpane","ui-widget-content ui-helper-clearfix"),this.uiButtonSet=t("
      ").appendTo(this.uiDialogButtonPane),this._addClass(this.uiButtonSet,"ui-dialog-buttonset"),this._createButtons()},_createButtons:function(){var e=this,i=this.options.buttons;return this.uiDialogButtonPane.remove(),this.uiButtonSet.empty(),t.isEmptyObject(i)||t.isArray(i)&&!i.length?(this._removeClass(this.uiDialog,"ui-dialog-buttons"),void 0):(t.each(i,function(i,s){var n,o;s=t.isFunction(s)?{click:s,text:i}:s,s=t.extend({type:"button"},s),n=s.click,o={icon:s.icon,iconPosition:s.iconPosition,showLabel:s.showLabel,icons:s.icons,text:s.text},delete s.click,delete s.icon,delete s.iconPosition,delete s.showLabel,delete s.icons,"boolean"==typeof s.text&&delete s.text,t("",s).button(o).appendTo(e.uiButtonSet).on("click",function(){n.apply(e.element[0],arguments)})}),this._addClass(this.uiDialog,"ui-dialog-buttons"),this.uiDialogButtonPane.appendTo(this.uiDialog),void 0)},_makeDraggable:function(){function e(t){return{position:t.position,offset:t.offset}}var i=this,s=this.options;this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(s,n){i._addClass(t(this),"ui-dialog-dragging"),i._blockFrames(),i._trigger("dragStart",s,e(n))},drag:function(t,s){i._trigger("drag",t,e(s))},stop:function(n,o){var a=o.offset.left-i.document.scrollLeft(),r=o.offset.top-i.document.scrollTop();s.position={my:"left top",at:"left"+(a>=0?"+":"")+a+" "+"top"+(r>=0?"+":"")+r,of:i.window},i._removeClass(t(this),"ui-dialog-dragging"),i._unblockFrames(),i._trigger("dragStop",n,e(o))}})},_makeResizable:function(){function e(t){return{originalPosition:t.originalPosition,originalSize:t.originalSize,position:t.position,size:t.size}}var i=this,s=this.options,n=s.resizable,o=this.uiDialog.css("position"),a="string"==typeof n?n:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:s.maxWidth,maxHeight:s.maxHeight,minWidth:s.minWidth,minHeight:this._minHeight(),handles:a,start:function(s,n){i._addClass(t(this),"ui-dialog-resizing"),i._blockFrames(),i._trigger("resizeStart",s,e(n))},resize:function(t,s){i._trigger("resize",t,e(s))},stop:function(n,o){var a=i.uiDialog.offset(),r=a.left-i.document.scrollLeft(),h=a.top-i.document.scrollTop();s.height=i.uiDialog.height(),s.width=i.uiDialog.width(),s.position={my:"left top",at:"left"+(r>=0?"+":"")+r+" "+"top"+(h>=0?"+":"")+h,of:i.window},i._removeClass(t(this),"ui-dialog-resizing"),i._unblockFrames(),i._trigger("resizeStop",n,e(o))}}).css("position",o)},_trackFocus:function(){this._on(this.widget(),{focusin:function(e){this._makeFocusTarget(),this._focusedElement=t(e.target)}})},_makeFocusTarget:function(){this._untrackInstance(),this._trackingInstances().unshift(this)},_untrackInstance:function(){var e=this._trackingInstances(),i=t.inArray(this,e);-1!==i&&e.splice(i,1)},_trackingInstances:function(){var t=this.document.data("ui-dialog-instances");return t||(t=[],this.document.data("ui-dialog-instances",t)),t},_minHeight:function(){var t=this.options;return"auto"===t.height?t.minHeight:Math.min(t.minHeight,t.height)},_position:function(){var t=this.uiDialog.is(":visible");t||this.uiDialog.show(),this.uiDialog.position(this.options.position),t||this.uiDialog.hide()},_setOptions:function(e){var i=this,s=!1,n={};t.each(e,function(t,e){i._setOption(t,e),t in i.sizeRelatedOptions&&(s=!0),t in i.resizableRelatedOptions&&(n[t]=e)}),s&&(this._size(),this._position()),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option",n)},_setOption:function(e,i){var s,n,o=this.uiDialog;"disabled"!==e&&(this._super(e,i),"appendTo"===e&&this.uiDialog.appendTo(this._appendTo()),"buttons"===e&&this._createButtons(),"closeText"===e&&this.uiDialogTitlebarClose.button({label:t("").text(""+this.options.closeText).html()}),"draggable"===e&&(s=o.is(":data(ui-draggable)"),s&&!i&&o.draggable("destroy"),!s&&i&&this._makeDraggable()),"position"===e&&this._position(),"resizable"===e&&(n=o.is(":data(ui-resizable)"),n&&!i&&o.resizable("destroy"),n&&"string"==typeof i&&o.resizable("option","handles",i),n||i===!1||this._makeResizable()),"title"===e&&this._title(this.uiDialogTitlebar.find(".ui-dialog-title")))},_size:function(){var t,e,i,s=this.options;this.element.show().css({width:"auto",minHeight:0,maxHeight:"none",height:0}),s.minWidth>s.width&&(s.width=s.minWidth),t=this.uiDialog.css({height:"auto",width:s.width}).outerHeight(),e=Math.max(0,s.minHeight-t),i="number"==typeof s.maxHeight?Math.max(0,s.maxHeight-t):"none","auto"===s.height?this.element.css({minHeight:e,maxHeight:i,height:"auto"}):this.element.height(Math.max(0,s.height-t)),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())},_blockFrames:function(){this.iframeBlocks=this.document.find("iframe").map(function(){var e=t(this);return t("
      ").css({position:"absolute",width:e.outerWidth(),height:e.outerHeight()}).appendTo(e.parent()).offset(e.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_allowInteraction:function(e){return t(e.target).closest(".ui-dialog").length?!0:!!t(e.target).closest(".ui-datepicker").length},_createOverlay:function(){if(this.options.modal){var e=!0;this._delay(function(){e=!1}),this.document.data("ui-dialog-overlays")||this._on(this.document,{focusin:function(t){e||this._allowInteraction(t)||(t.preventDefault(),this._trackingInstances()[0]._focusTabbable())}}),this.overlay=t("
      ").appendTo(this._appendTo()),this._addClass(this.overlay,null,"ui-widget-overlay ui-front"),this._on(this.overlay,{mousedown:"_keepFocus"}),this.document.data("ui-dialog-overlays",(this.document.data("ui-dialog-overlays")||0)+1)}},_destroyOverlay:function(){if(this.options.modal&&this.overlay){var t=this.document.data("ui-dialog-overlays")-1;t?this.document.data("ui-dialog-overlays",t):(this._off(this.document,"focusin"),this.document.removeData("ui-dialog-overlays")),this.overlay.remove(),this.overlay=null}}}),t.uiBackCompat!==!1&&t.widget("ui.dialog",t.ui.dialog,{options:{dialogClass:""},_createWrapper:function(){this._super(),this.uiDialog.addClass(this.options.dialogClass)},_setOption:function(t,e){"dialogClass"===t&&this.uiDialog.removeClass(this.options.dialogClass).addClass(e),this._superApply(arguments)}}),t.ui.dialog,t.widget("ui.droppable",{version:"1.12.1",widgetEventPrefix:"drop",options:{accept:"*",addClasses:!0,greedy:!1,scope:"default",tolerance:"intersect",activate:null,deactivate:null,drop:null,out:null,over:null},_create:function(){var e,i=this.options,s=i.accept;this.isover=!1,this.isout=!0,this.accept=t.isFunction(s)?s:function(t){return t.is(s)},this.proportions=function(){return arguments.length?(e=arguments[0],void 0):e?e:e={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight}},this._addToManager(i.scope),i.addClasses&&this._addClass("ui-droppable")},_addToManager:function(e){t.ui.ddmanager.droppables[e]=t.ui.ddmanager.droppables[e]||[],t.ui.ddmanager.droppables[e].push(this)},_splice:function(t){for(var e=0;t.length>e;e++)t[e]===this&&t.splice(e,1)},_destroy:function(){var e=t.ui.ddmanager.droppables[this.options.scope];this._splice(e)},_setOption:function(e,i){if("accept"===e)this.accept=t.isFunction(i)?i:function(t){return t.is(i)};else if("scope"===e){var s=t.ui.ddmanager.droppables[this.options.scope];this._splice(s),this._addToManager(i)}this._super(e,i)},_activate:function(e){var i=t.ui.ddmanager.current;this._addActiveClass(),i&&this._trigger("activate",e,this.ui(i))},_deactivate:function(e){var i=t.ui.ddmanager.current;this._removeActiveClass(),i&&this._trigger("deactivate",e,this.ui(i))},_over:function(e){var i=t.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this._addHoverClass(),this._trigger("over",e,this.ui(i)))},_out:function(e){var i=t.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this._removeHoverClass(),this._trigger("out",e,this.ui(i)))},_drop:function(e,i){var s=i||t.ui.ddmanager.current,n=!1;return s&&(s.currentItem||s.element)[0]!==this.element[0]?(this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function(){var i=t(this).droppable("instance");return i.options.greedy&&!i.options.disabled&&i.options.scope===s.options.scope&&i.accept.call(i.element[0],s.currentItem||s.element)&&v(s,t.extend(i,{offset:i.element.offset()}),i.options.tolerance,e)?(n=!0,!1):void 0}),n?!1:this.accept.call(this.element[0],s.currentItem||s.element)?(this._removeActiveClass(),this._removeHoverClass(),this._trigger("drop",e,this.ui(s)),this.element):!1):!1},ui:function(t){return{draggable:t.currentItem||t.element,helper:t.helper,position:t.position,offset:t.positionAbs}},_addHoverClass:function(){this._addClass("ui-droppable-hover")},_removeHoverClass:function(){this._removeClass("ui-droppable-hover")},_addActiveClass:function(){this._addClass("ui-droppable-active")},_removeActiveClass:function(){this._removeClass("ui-droppable-active")}});var v=t.ui.intersect=function(){function t(t,e,i){return t>=e&&e+i>t}return function(e,i,s,n){if(!i.offset)return!1;var o=(e.positionAbs||e.position.absolute).left+e.margins.left,a=(e.positionAbs||e.position.absolute).top+e.margins.top,r=o+e.helperProportions.width,h=a+e.helperProportions.height,l=i.offset.left,c=i.offset.top,u=l+i.proportions().width,d=c+i.proportions().height;switch(s){case"fit":return o>=l&&u>=r&&a>=c&&d>=h;case"intersect":return o+e.helperProportions.width/2>l&&u>r-e.helperProportions.width/2&&a+e.helperProportions.height/2>c&&d>h-e.helperProportions.height/2;case"pointer":return t(n.pageY,c,i.proportions().height)&&t(n.pageX,l,i.proportions().width);case"touch":return(a>=c&&d>=a||h>=c&&d>=h||c>a&&h>d)&&(o>=l&&u>=o||r>=l&&u>=r||l>o&&r>u);default:return!1}}}();t.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(e,i){var s,n,o=t.ui.ddmanager.droppables[e.options.scope]||[],a=i?i.type:null,r=(e.currentItem||e.element).find(":data(ui-droppable)").addBack();t:for(s=0;o.length>s;s++)if(!(o[s].options.disabled||e&&!o[s].accept.call(o[s].element[0],e.currentItem||e.element))){for(n=0;r.length>n;n++)if(r[n]===o[s].element[0]){o[s].proportions().height=0;continue t}o[s].visible="none"!==o[s].element.css("display"),o[s].visible&&("mousedown"===a&&o[s]._activate.call(o[s],i),o[s].offset=o[s].element.offset(),o[s].proportions({width:o[s].element[0].offsetWidth,height:o[s].element[0].offsetHeight}))}},drop:function(e,i){var s=!1;return t.each((t.ui.ddmanager.droppables[e.options.scope]||[]).slice(),function(){this.options&&(!this.options.disabled&&this.visible&&v(e,this,this.options.tolerance,i)&&(s=this._drop.call(this,i)||s),!this.options.disabled&&this.visible&&this.accept.call(this.element[0],e.currentItem||e.element)&&(this.isout=!0,this.isover=!1,this._deactivate.call(this,i)))}),s},dragStart:function(e,i){e.element.parentsUntil("body").on("scroll.droppable",function(){e.options.refreshPositions||t.ui.ddmanager.prepareOffsets(e,i)})},drag:function(e,i){e.options.refreshPositions&&t.ui.ddmanager.prepareOffsets(e,i),t.each(t.ui.ddmanager.droppables[e.options.scope]||[],function(){if(!this.options.disabled&&!this.greedyChild&&this.visible){var s,n,o,a=v(e,this,this.options.tolerance,i),r=!a&&this.isover?"isout":a&&!this.isover?"isover":null;r&&(this.options.greedy&&(n=this.options.scope,o=this.element.parents(":data(ui-droppable)").filter(function(){return t(this).droppable("instance").options.scope===n}),o.length&&(s=t(o[0]).droppable("instance"),s.greedyChild="isover"===r)),s&&"isover"===r&&(s.isover=!1,s.isout=!0,s._out.call(s,i)),this[r]=!0,this["isout"===r?"isover":"isout"]=!1,this["isover"===r?"_over":"_out"].call(this,i),s&&"isout"===r&&(s.isout=!1,s.isover=!0,s._over.call(s,i)))}})},dragStop:function(e,i){e.element.parentsUntil("body").off("scroll.droppable"),e.options.refreshPositions||t.ui.ddmanager.prepareOffsets(e,i)}},t.uiBackCompat!==!1&&t.widget("ui.droppable",t.ui.droppable,{options:{hoverClass:!1,activeClass:!1},_addActiveClass:function(){this._super(),this.options.activeClass&&this.element.addClass(this.options.activeClass)},_removeActiveClass:function(){this._super(),this.options.activeClass&&this.element.removeClass(this.options.activeClass)},_addHoverClass:function(){this._super(),this.options.hoverClass&&this.element.addClass(this.options.hoverClass)},_removeHoverClass:function(){this._super(),this.options.hoverClass&&this.element.removeClass(this.options.hoverClass)}}),t.ui.droppable,t.widget("ui.progressbar",{version:"1.12.1",options:{classes:{"ui-progressbar":"ui-corner-all","ui-progressbar-value":"ui-corner-left","ui-progressbar-complete":"ui-corner-right"},max:100,value:0,change:null,complete:null},min:0,_create:function(){this.oldValue=this.options.value=this._constrainedValue(),this.element.attr({role:"progressbar","aria-valuemin":this.min}),this._addClass("ui-progressbar","ui-widget ui-widget-content"),this.valueDiv=t("
      ").appendTo(this.element),this._addClass(this.valueDiv,"ui-progressbar-value","ui-widget-header"),this._refreshValue()},_destroy:function(){this.element.removeAttr("role aria-valuemin aria-valuemax aria-valuenow"),this.valueDiv.remove()},value:function(t){return void 0===t?this.options.value:(this.options.value=this._constrainedValue(t),this._refreshValue(),void 0)},_constrainedValue:function(t){return void 0===t&&(t=this.options.value),this.indeterminate=t===!1,"number"!=typeof t&&(t=0),this.indeterminate?!1:Math.min(this.options.max,Math.max(this.min,t))},_setOptions:function(t){var e=t.value;delete t.value,this._super(t),this.options.value=this._constrainedValue(e),this._refreshValue()},_setOption:function(t,e){"max"===t&&(e=Math.max(this.min,e)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t),this._toggleClass(null,"ui-state-disabled",!!t)},_percentage:function(){return this.indeterminate?100:100*(this.options.value-this.min)/(this.options.max-this.min)},_refreshValue:function(){var e=this.options.value,i=this._percentage();this.valueDiv.toggle(this.indeterminate||e>this.min).width(i.toFixed(0)+"%"),this._toggleClass(this.valueDiv,"ui-progressbar-complete",null,e===this.options.max)._toggleClass("ui-progressbar-indeterminate",null,this.indeterminate),this.indeterminate?(this.element.removeAttr("aria-valuenow"),this.overlayDiv||(this.overlayDiv=t("
      ").appendTo(this.valueDiv),this._addClass(this.overlayDiv,"ui-progressbar-overlay"))):(this.element.attr({"aria-valuemax":this.options.max,"aria-valuenow":e}),this.overlayDiv&&(this.overlayDiv.remove(),this.overlayDiv=null)),this.oldValue!==e&&(this.oldValue=e,this._trigger("change")),e===this.options.max&&this._trigger("complete")}}),t.widget("ui.selectable",t.ui.mouse,{version:"1.12.1",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch",selected:null,selecting:null,start:null,stop:null,unselected:null,unselecting:null},_create:function(){var e=this;this._addClass("ui-selectable"),this.dragged=!1,this.refresh=function(){e.elementPos=t(e.element[0]).offset(),e.selectees=t(e.options.filter,e.element[0]),e._addClass(e.selectees,"ui-selectee"),e.selectees.each(function(){var i=t(this),s=i.offset(),n={left:s.left-e.elementPos.left,top:s.top-e.elementPos.top};t.data(this,"selectable-item",{element:this,$element:i,left:n.left,top:n.top,right:n.left+i.outerWidth(),bottom:n.top+i.outerHeight(),startselected:!1,selected:i.hasClass("ui-selected"),selecting:i.hasClass("ui-selecting"),unselecting:i.hasClass("ui-unselecting")})})},this.refresh(),this._mouseInit(),this.helper=t("
      "),this._addClass(this.helper,"ui-selectable-helper")},_destroy:function(){this.selectees.removeData("selectable-item"),this._mouseDestroy()},_mouseStart:function(e){var i=this,s=this.options;this.opos=[e.pageX,e.pageY],this.elementPos=t(this.element[0]).offset(),this.options.disabled||(this.selectees=t(s.filter,this.element[0]),this._trigger("start",e),t(s.appendTo).append(this.helper),this.helper.css({left:e.pageX,top:e.pageY,width:0,height:0}),s.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var s=t.data(this,"selectable-item");s.startselected=!0,e.metaKey||e.ctrlKey||(i._removeClass(s.$element,"ui-selected"),s.selected=!1,i._addClass(s.$element,"ui-unselecting"),s.unselecting=!0,i._trigger("unselecting",e,{unselecting:s.element}))}),t(e.target).parents().addBack().each(function(){var s,n=t.data(this,"selectable-item");return n?(s=!e.metaKey&&!e.ctrlKey||!n.$element.hasClass("ui-selected"),i._removeClass(n.$element,s?"ui-unselecting":"ui-selected")._addClass(n.$element,s?"ui-selecting":"ui-unselecting"),n.unselecting=!s,n.selecting=s,n.selected=s,s?i._trigger("selecting",e,{selecting:n.element}):i._trigger("unselecting",e,{unselecting:n.element}),!1):void 0}))},_mouseDrag:function(e){if(this.dragged=!0,!this.options.disabled){var i,s=this,n=this.options,o=this.opos[0],a=this.opos[1],r=e.pageX,h=e.pageY;return o>r&&(i=r,r=o,o=i),a>h&&(i=h,h=a,a=i),this.helper.css({left:o,top:a,width:r-o,height:h-a}),this.selectees.each(function(){var i=t.data(this,"selectable-item"),l=!1,c={};i&&i.element!==s.element[0]&&(c.left=i.left+s.elementPos.left,c.right=i.right+s.elementPos.left,c.top=i.top+s.elementPos.top,c.bottom=i.bottom+s.elementPos.top,"touch"===n.tolerance?l=!(c.left>r||o>c.right||c.top>h||a>c.bottom):"fit"===n.tolerance&&(l=c.left>o&&r>c.right&&c.top>a&&h>c.bottom),l?(i.selected&&(s._removeClass(i.$element,"ui-selected"),i.selected=!1),i.unselecting&&(s._removeClass(i.$element,"ui-unselecting"),i.unselecting=!1),i.selecting||(s._addClass(i.$element,"ui-selecting"),i.selecting=!0,s._trigger("selecting",e,{selecting:i.element}))):(i.selecting&&((e.metaKey||e.ctrlKey)&&i.startselected?(s._removeClass(i.$element,"ui-selecting"),i.selecting=!1,s._addClass(i.$element,"ui-selected"),i.selected=!0):(s._removeClass(i.$element,"ui-selecting"),i.selecting=!1,i.startselected&&(s._addClass(i.$element,"ui-unselecting"),i.unselecting=!0),s._trigger("unselecting",e,{unselecting:i.element}))),i.selected&&(e.metaKey||e.ctrlKey||i.startselected||(s._removeClass(i.$element,"ui-selected"),i.selected=!1,s._addClass(i.$element,"ui-unselecting"),i.unselecting=!0,s._trigger("unselecting",e,{unselecting:i.element})))))}),!1}},_mouseStop:function(e){var i=this;return this.dragged=!1,t(".ui-unselecting",this.element[0]).each(function(){var s=t.data(this,"selectable-item");i._removeClass(s.$element,"ui-unselecting"),s.unselecting=!1,s.startselected=!1,i._trigger("unselected",e,{unselected:s.element})}),t(".ui-selecting",this.element[0]).each(function(){var s=t.data(this,"selectable-item");i._removeClass(s.$element,"ui-selecting")._addClass(s.$element,"ui-selected"),s.selecting=!1,s.selected=!0,s.startselected=!0,i._trigger("selected",e,{selected:s.element})}),this._trigger("stop",e),this.helper.remove(),!1}}),t.widget("ui.selectmenu",[t.ui.formResetMixin,{version:"1.12.1",defaultElement:"",widgetEventPrefix:"spin",options:{classes:{"ui-spinner":"ui-corner-all","ui-spinner-down":"ui-corner-br","ui-spinner-up":"ui-corner-tr"},culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:!0,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._setOption("max",this.options.max),this._setOption("min",this.options.min),this._setOption("step",this.options.step),""!==this.value()&&this._value(this.element.val(),!0),this._draw(),this._on(this._events),this._refresh(),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_getCreateOptions:function(){var e=this._super(),i=this.element;return t.each(["min","max","step"],function(t,s){var n=i.attr(s);null!=n&&n.length&&(e[s]=n)}),e},_events:{keydown:function(t){this._start(t)&&this._keydown(t)&&t.preventDefault()},keyup:"_stop",focus:function(){this.previous=this.element.val()},blur:function(t){return this.cancelBlur?(delete this.cancelBlur,void 0):(this._stop(),this._refresh(),this.previous!==this.element.val()&&this._trigger("change",t),void 0)},mousewheel:function(t,e){if(e){if(!this.spinning&&!this._start(t))return!1;this._spin((e>0?1:-1)*this.options.step,t),clearTimeout(this.mousewheelTimer),this.mousewheelTimer=this._delay(function(){this.spinning&&this._stop(t)},100),t.preventDefault()}},"mousedown .ui-spinner-button":function(e){function i(){var e=this.element[0]===t.ui.safeActiveElement(this.document[0]);e||(this.element.trigger("focus"),this.previous=s,this._delay(function(){this.previous=s}))}var s;s=this.element[0]===t.ui.safeActiveElement(this.document[0])?this.previous:this.element.val(),e.preventDefault(),i.call(this),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,i.call(this)}),this._start(e)!==!1&&this._repeat(null,t(e.currentTarget).hasClass("ui-spinner-up")?1:-1,e)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(e){return t(e.currentTarget).hasClass("ui-state-active")?this._start(e)===!1?!1:(this._repeat(null,t(e.currentTarget).hasClass("ui-spinner-up")?1:-1,e),void 0):void 0},"mouseleave .ui-spinner-button":"_stop"},_enhance:function(){this.uiSpinner=this.element.attr("autocomplete","off").wrap("").parent().append("")},_draw:function(){this._enhance(),this._addClass(this.uiSpinner,"ui-spinner","ui-widget ui-widget-content"),this._addClass("ui-spinner-input"),this.element.attr("role","spinbutton"),this.buttons=this.uiSpinner.children("a").attr("tabIndex",-1).attr("aria-hidden",!0).button({classes:{"ui-button":""}}),this._removeClass(this.buttons,"ui-corner-all"),this._addClass(this.buttons.first(),"ui-spinner-button ui-spinner-up"),this._addClass(this.buttons.last(),"ui-spinner-button ui-spinner-down"),this.buttons.first().button({icon:this.options.icons.up,showLabel:!1}),this.buttons.last().button({icon:this.options.icons.down,showLabel:!1}),this.buttons.height()>Math.ceil(.5*this.uiSpinner.height())&&this.uiSpinner.height()>0&&this.uiSpinner.height(this.uiSpinner.height())},_keydown:function(e){var i=this.options,s=t.ui.keyCode;switch(e.keyCode){case s.UP:return this._repeat(null,1,e),!0;case s.DOWN:return this._repeat(null,-1,e),!0;case s.PAGE_UP:return this._repeat(null,i.page,e),!0;case s.PAGE_DOWN:return this._repeat(null,-i.page,e),!0}return!1},_start:function(t){return this.spinning||this._trigger("start",t)!==!1?(this.counter||(this.counter=1),this.spinning=!0,!0):!1},_repeat:function(t,e,i){t=t||500,clearTimeout(this.timer),this.timer=this._delay(function(){this._repeat(40,e,i)},t),this._spin(e*this.options.step,i)},_spin:function(t,e){var i=this.value()||0;this.counter||(this.counter=1),i=this._adjustValue(i+t*this._increment(this.counter)),this.spinning&&this._trigger("spin",e,{value:i})===!1||(this._value(i),this.counter++)},_increment:function(e){var i=this.options.incremental;return i?t.isFunction(i)?i(e):Math.floor(e*e*e/5e4-e*e/500+17*e/200+1):1},_precision:function(){var t=this._precisionOf(this.options.step);return null!==this.options.min&&(t=Math.max(t,this._precisionOf(this.options.min))),t},_precisionOf:function(t){var e=""+t,i=e.indexOf(".");return-1===i?0:e.length-i-1},_adjustValue:function(t){var e,i,s=this.options;return e=null!==s.min?s.min:0,i=t-e,i=Math.round(i/s.step)*s.step,t=e+i,t=parseFloat(t.toFixed(this._precision())),null!==s.max&&t>s.max?s.max:null!==s.min&&s.min>t?s.min:t},_stop:function(t){this.spinning&&(clearTimeout(this.timer),clearTimeout(this.mousewheelTimer),this.counter=0,this.spinning=!1,this._trigger("stop",t))},_setOption:function(t,e){var i,s,n;return"culture"===t||"numberFormat"===t?(i=this._parse(this.element.val()),this.options[t]=e,this.element.val(this._format(i)),void 0):(("max"===t||"min"===t||"step"===t)&&"string"==typeof e&&(e=this._parse(e)),"icons"===t&&(s=this.buttons.first().find(".ui-icon"),this._removeClass(s,null,this.options.icons.up),this._addClass(s,null,e.up),n=this.buttons.last().find(".ui-icon"),this._removeClass(n,null,this.options.icons.down),this._addClass(n,null,e.down)),this._super(t,e),void 0)},_setOptionDisabled:function(t){this._super(t),this._toggleClass(this.uiSpinner,null,"ui-state-disabled",!!t),this.element.prop("disabled",!!t),this.buttons.button(t?"disable":"enable")},_setOptions:r(function(t){this._super(t)}),_parse:function(t){return"string"==typeof t&&""!==t&&(t=window.Globalize&&this.options.numberFormat?Globalize.parseFloat(t,10,this.options.culture):+t),""===t||isNaN(t)?null:t},_format:function(t){return""===t?"":window.Globalize&&this.options.numberFormat?Globalize.format(t,this.options.numberFormat,this.options.culture):t},_refresh:function(){this.element.attr({"aria-valuemin":this.options.min,"aria-valuemax":this.options.max,"aria-valuenow":this._parse(this.element.val())})},isValid:function(){var t=this.value();return null===t?!1:t===this._adjustValue(t)},_value:function(t,e){var i;""!==t&&(i=this._parse(t),null!==i&&(e||(i=this._adjustValue(i)),t=this._format(i))),this.element.val(t),this._refresh()},_destroy:function(){this.element.prop("disabled",!1).removeAttr("autocomplete role aria-valuemin aria-valuemax aria-valuenow"),this.uiSpinner.replaceWith(this.element)},stepUp:r(function(t){this._stepUp(t)}),_stepUp:function(t){this._start()&&(this._spin((t||1)*this.options.step),this._stop())},stepDown:r(function(t){this._stepDown(t)}),_stepDown:function(t){this._start()&&(this._spin((t||1)*-this.options.step),this._stop())},pageUp:r(function(t){this._stepUp((t||1)*this.options.page)}),pageDown:r(function(t){this._stepDown((t||1)*this.options.page)}),value:function(t){return arguments.length?(r(this._value).call(this,t),void 0):this._parse(this.element.val())},widget:function(){return this.uiSpinner}}),t.uiBackCompat!==!1&&t.widget("ui.spinner",t.ui.spinner,{_enhance:function(){this.uiSpinner=this.element.attr("autocomplete","off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml())},_uiSpinnerHtml:function(){return""},_buttonHtml:function(){return""}}),t.ui.spinner,t.widget("ui.tabs",{version:"1.12.1",delay:300,options:{active:null,classes:{"ui-tabs":"ui-corner-all","ui-tabs-nav":"ui-corner-all","ui-tabs-panel":"ui-corner-bottom","ui-tabs-tab":"ui-corner-top"},collapsible:!1,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_isLocal:function(){var t=/#.*$/;return function(e){var i,s;i=e.href.replace(t,""),s=location.href.replace(t,"");try{i=decodeURIComponent(i)}catch(n){}try{s=decodeURIComponent(s)}catch(n){}return e.hash.length>1&&i===s}}(),_create:function(){var e=this,i=this.options;this.running=!1,this._addClass("ui-tabs","ui-widget ui-widget-content"),this._toggleClass("ui-tabs-collapsible",null,i.collapsible),this._processTabs(),i.active=this._initialActive(),t.isArray(i.disabled)&&(i.disabled=t.unique(i.disabled.concat(t.map(this.tabs.filter(".ui-state-disabled"),function(t){return e.tabs.index(t)}))).sort()),this.active=this.options.active!==!1&&this.anchors.length?this._findActive(i.active):t(),this._refresh(),this.active.length&&this.load(i.active)},_initialActive:function(){var e=this.options.active,i=this.options.collapsible,s=location.hash.substring(1);return null===e&&(s&&this.tabs.each(function(i,n){return t(n).attr("aria-controls")===s?(e=i,!1):void 0}),null===e&&(e=this.tabs.index(this.tabs.filter(".ui-tabs-active"))),(null===e||-1===e)&&(e=this.tabs.length?0:!1)),e!==!1&&(e=this.tabs.index(this.tabs.eq(e)),-1===e&&(e=i?!1:0)),!i&&e===!1&&this.anchors.length&&(e=0),e},_getCreateEventData:function(){return{tab:this.active,panel:this.active.length?this._getPanelForTab(this.active):t()}},_tabKeydown:function(e){var i=t(t.ui.safeActiveElement(this.document[0])).closest("li"),s=this.tabs.index(i),n=!0;if(!this._handlePageNav(e)){switch(e.keyCode){case t.ui.keyCode.RIGHT:case t.ui.keyCode.DOWN:s++;break;case t.ui.keyCode.UP:case t.ui.keyCode.LEFT:n=!1,s--;break;case t.ui.keyCode.END:s=this.anchors.length-1;break;case t.ui.keyCode.HOME:s=0;break;case t.ui.keyCode.SPACE:return e.preventDefault(),clearTimeout(this.activating),this._activate(s),void 0;case t.ui.keyCode.ENTER:return e.preventDefault(),clearTimeout(this.activating),this._activate(s===this.options.active?!1:s),void 0;default:return}e.preventDefault(),clearTimeout(this.activating),s=this._focusNextTab(s,n),e.ctrlKey||e.metaKey||(i.attr("aria-selected","false"),this.tabs.eq(s).attr("aria-selected","true"),this.activating=this._delay(function(){this.option("active",s)},this.delay))}},_panelKeydown:function(e){this._handlePageNav(e)||e.ctrlKey&&e.keyCode===t.ui.keyCode.UP&&(e.preventDefault(),this.active.trigger("focus"))},_handlePageNav:function(e){return e.altKey&&e.keyCode===t.ui.keyCode.PAGE_UP?(this._activate(this._focusNextTab(this.options.active-1,!1)),!0):e.altKey&&e.keyCode===t.ui.keyCode.PAGE_DOWN?(this._activate(this._focusNextTab(this.options.active+1,!0)),!0):void 0},_findNextTab:function(e,i){function s(){return e>n&&(e=0),0>e&&(e=n),e}for(var n=this.tabs.length-1;-1!==t.inArray(s(),this.options.disabled);)e=i?e+1:e-1;return e},_focusNextTab:function(t,e){return t=this._findNextTab(t,e),this.tabs.eq(t).trigger("focus"),t},_setOption:function(t,e){return"active"===t?(this._activate(e),void 0):(this._super(t,e),"collapsible"===t&&(this._toggleClass("ui-tabs-collapsible",null,e),e||this.options.active!==!1||this._activate(0)),"event"===t&&this._setupEvents(e),"heightStyle"===t&&this._setupHeightStyle(e),void 0)},_sanitizeSelector:function(t){return t?t.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var e=this.options,i=this.tablist.children(":has(a[href])");e.disabled=t.map(i.filter(".ui-state-disabled"),function(t){return i.index(t)}),this._processTabs(),e.active!==!1&&this.anchors.length?this.active.length&&!t.contains(this.tablist[0],this.active[0])?this.tabs.length===e.disabled.length?(e.active=!1,this.active=t()):this._activate(this._findNextTab(Math.max(0,e.active-1),!1)):e.active=this.tabs.index(this.active):(e.active=!1,this.active=t()),this._refresh()},_refresh:function(){this._setOptionDisabled(this.options.disabled),this._setupEvents(this.options.event),this._setupHeightStyle(this.options.heightStyle),this.tabs.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}),this.panels.not(this._getPanelForTab(this.active)).hide().attr({"aria-hidden":"true"}),this.active.length?(this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}),this._addClass(this.active,"ui-tabs-active","ui-state-active"),this._getPanelForTab(this.active).show().attr({"aria-hidden":"false"})):this.tabs.eq(0).attr("tabIndex",0)},_processTabs:function(){var e=this,i=this.tabs,s=this.anchors,n=this.panels;this.tablist=this._getList().attr("role","tablist"),this._addClass(this.tablist,"ui-tabs-nav","ui-helper-reset ui-helper-clearfix ui-widget-header"),this.tablist.on("mousedown"+this.eventNamespace,"> li",function(e){t(this).is(".ui-state-disabled")&&e.preventDefault()}).on("focus"+this.eventNamespace,".ui-tabs-anchor",function(){t(this).closest("li").is(".ui-state-disabled")&&this.blur()}),this.tabs=this.tablist.find("> li:has(a[href])").attr({role:"tab",tabIndex:-1}),this._addClass(this.tabs,"ui-tabs-tab","ui-state-default"),this.anchors=this.tabs.map(function(){return t("a",this)[0]}).attr({role:"presentation",tabIndex:-1}),this._addClass(this.anchors,"ui-tabs-anchor"),this.panels=t(),this.anchors.each(function(i,s){var n,o,a,r=t(s).uniqueId().attr("id"),h=t(s).closest("li"),l=h.attr("aria-controls");e._isLocal(s)?(n=s.hash,a=n.substring(1),o=e.element.find(e._sanitizeSelector(n))):(a=h.attr("aria-controls")||t({}).uniqueId()[0].id,n="#"+a,o=e.element.find(n),o.length||(o=e._createPanel(a),o.insertAfter(e.panels[i-1]||e.tablist)),o.attr("aria-live","polite")),o.length&&(e.panels=e.panels.add(o)),l&&h.data("ui-tabs-aria-controls",l),h.attr({"aria-controls":a,"aria-labelledby":r}),o.attr("aria-labelledby",r)}),this.panels.attr("role","tabpanel"),this._addClass(this.panels,"ui-tabs-panel","ui-widget-content"),i&&(this._off(i.not(this.tabs)),this._off(s.not(this.anchors)),this._off(n.not(this.panels)))},_getList:function(){return this.tablist||this.element.find("ol, ul").eq(0)},_createPanel:function(e){return t("
      ").attr("id",e).data("ui-tabs-destroy",!0)},_setOptionDisabled:function(e){var i,s,n;for(t.isArray(e)&&(e.length?e.length===this.anchors.length&&(e=!0):e=!1),n=0;s=this.tabs[n];n++)i=t(s),e===!0||-1!==t.inArray(n,e)?(i.attr("aria-disabled","true"),this._addClass(i,null,"ui-state-disabled")):(i.removeAttr("aria-disabled"),this._removeClass(i,null,"ui-state-disabled"));this.options.disabled=e,this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,e===!0)},_setupEvents:function(e){var i={};e&&t.each(e.split(" "),function(t,e){i[e]="_eventHandler"}),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(!0,this.anchors,{click:function(t){t.preventDefault()}}),this._on(this.anchors,i),this._on(this.tabs,{keydown:"_tabKeydown"}),this._on(this.panels,{keydown:"_panelKeydown"}),this._focusable(this.tabs),this._hoverable(this.tabs)},_setupHeightStyle:function(e){var i,s=this.element.parent();"fill"===e?(i=s.height(),i-=this.element.outerHeight()-this.element.height(),this.element.siblings(":visible").each(function(){var e=t(this),s=e.css("position");"absolute"!==s&&"fixed"!==s&&(i-=e.outerHeight(!0))}),this.element.children().not(this.panels).each(function(){i-=t(this).outerHeight(!0)}),this.panels.each(function(){t(this).height(Math.max(0,i-t(this).innerHeight()+t(this).height()))}).css("overflow","auto")):"auto"===e&&(i=0,this.panels.each(function(){i=Math.max(i,t(this).height("").height())}).height(i))},_eventHandler:function(e){var i=this.options,s=this.active,n=t(e.currentTarget),o=n.closest("li"),a=o[0]===s[0],r=a&&i.collapsible,h=r?t():this._getPanelForTab(o),l=s.length?this._getPanelForTab(s):t(),c={oldTab:s,oldPanel:l,newTab:r?t():o,newPanel:h};e.preventDefault(),o.hasClass("ui-state-disabled")||o.hasClass("ui-tabs-loading")||this.running||a&&!i.collapsible||this._trigger("beforeActivate",e,c)===!1||(i.active=r?!1:this.tabs.index(o),this.active=a?t():o,this.xhr&&this.xhr.abort(),l.length||h.length||t.error("jQuery UI Tabs: Mismatching fragment identifier."),h.length&&this.load(this.tabs.index(o),e),this._toggle(e,c))},_toggle:function(e,i){function s(){o.running=!1,o._trigger("activate",e,i)}function n(){o._addClass(i.newTab.closest("li"),"ui-tabs-active","ui-state-active"),a.length&&o.options.show?o._show(a,o.options.show,s):(a.show(),s())}var o=this,a=i.newPanel,r=i.oldPanel;this.running=!0,r.length&&this.options.hide?this._hide(r,this.options.hide,function(){o._removeClass(i.oldTab.closest("li"),"ui-tabs-active","ui-state-active"),n()}):(this._removeClass(i.oldTab.closest("li"),"ui-tabs-active","ui-state-active"),r.hide(),n()),r.attr("aria-hidden","true"),i.oldTab.attr({"aria-selected":"false","aria-expanded":"false"}),a.length&&r.length?i.oldTab.attr("tabIndex",-1):a.length&&this.tabs.filter(function(){return 0===t(this).attr("tabIndex")}).attr("tabIndex",-1),a.attr("aria-hidden","false"),i.newTab.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_activate:function(e){var i,s=this._findActive(e);s[0]!==this.active[0]&&(s.length||(s=this.active),i=s.find(".ui-tabs-anchor")[0],this._eventHandler({target:i,currentTarget:i,preventDefault:t.noop}))},_findActive:function(e){return e===!1?t():this.tabs.eq(e)},_getIndex:function(e){return"string"==typeof e&&(e=this.anchors.index(this.anchors.filter("[href$='"+t.ui.escapeSelector(e)+"']"))),e},_destroy:function(){this.xhr&&this.xhr.abort(),this.tablist.removeAttr("role").off(this.eventNamespace),this.anchors.removeAttr("role tabIndex").removeUniqueId(),this.tabs.add(this.panels).each(function(){t.data(this,"ui-tabs-destroy")?t(this).remove():t(this).removeAttr("role tabIndex aria-live aria-busy aria-selected aria-labelledby aria-hidden aria-expanded")}),this.tabs.each(function(){var e=t(this),i=e.data("ui-tabs-aria-controls");i?e.attr("aria-controls",i).removeData("ui-tabs-aria-controls"):e.removeAttr("aria-controls")}),this.panels.show(),"content"!==this.options.heightStyle&&this.panels.css("height","")},enable:function(e){var i=this.options.disabled;i!==!1&&(void 0===e?i=!1:(e=this._getIndex(e),i=t.isArray(i)?t.map(i,function(t){return t!==e?t:null}):t.map(this.tabs,function(t,i){return i!==e?i:null})),this._setOptionDisabled(i))},disable:function(e){var i=this.options.disabled;if(i!==!0){if(void 0===e)i=!0;else{if(e=this._getIndex(e),-1!==t.inArray(e,i))return;i=t.isArray(i)?t.merge([e],i).sort():[e]}this._setOptionDisabled(i)}},load:function(e,i){e=this._getIndex(e);var s=this,n=this.tabs.eq(e),o=n.find(".ui-tabs-anchor"),a=this._getPanelForTab(n),r={tab:n,panel:a},h=function(t,e){"abort"===e&&s.panels.stop(!1,!0),s._removeClass(n,"ui-tabs-loading"),a.removeAttr("aria-busy"),t===s.xhr&&delete s.xhr};this._isLocal(o[0])||(this.xhr=t.ajax(this._ajaxSettings(o,i,r)),this.xhr&&"canceled"!==this.xhr.statusText&&(this._addClass(n,"ui-tabs-loading"),a.attr("aria-busy","true"),this.xhr.done(function(t,e,n){setTimeout(function(){a.html(t),s._trigger("load",i,r),h(n,e)},1)}).fail(function(t,e){setTimeout(function(){h(t,e)},1)})))},_ajaxSettings:function(e,i,s){var n=this;return{url:e.attr("href").replace(/#.*$/,""),beforeSend:function(e,o){return n._trigger("beforeLoad",i,t.extend({jqXHR:e,ajaxSettings:o},s))}}},_getPanelForTab:function(e){var i=t(e).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+i))}}),t.uiBackCompat!==!1&&t.widget("ui.tabs",t.ui.tabs,{_processTabs:function(){this._superApply(arguments),this._addClass(this.tabs,"ui-tab")}}),t.ui.tabs,t.widget("ui.tooltip",{version:"1.12.1",options:{classes:{"ui-tooltip":"ui-corner-all ui-widget-shadow"},content:function(){var e=t(this).attr("title")||"";return t("").text(e).html()},hide:!0,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:!0,track:!1,close:null,open:null},_addDescribedBy:function(e,i){var s=(e.attr("aria-describedby")||"").split(/\s+/);s.push(i),e.data("ui-tooltip-id",i).attr("aria-describedby",t.trim(s.join(" ")))},_removeDescribedBy:function(e){var i=e.data("ui-tooltip-id"),s=(e.attr("aria-describedby")||"").split(/\s+/),n=t.inArray(i,s);-1!==n&&s.splice(n,1),e.removeData("ui-tooltip-id"),s=t.trim(s.join(" ")),s?e.attr("aria-describedby",s):e.removeAttr("aria-describedby")},_create:function(){this._on({mouseover:"open",focusin:"open"}),this.tooltips={},this.parents={},this.liveRegion=t("
      ").attr({role:"log","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this.disabledTitles=t([])},_setOption:function(e,i){var s=this;this._super(e,i),"content"===e&&t.each(this.tooltips,function(t,e){s._updateContent(e.element)})},_setOptionDisabled:function(t){this[t?"_disable":"_enable"]()},_disable:function(){var e=this;t.each(this.tooltips,function(i,s){var n=t.Event("blur");n.target=n.currentTarget=s.element[0],e.close(n,!0)}),this.disabledTitles=this.disabledTitles.add(this.element.find(this.options.items).addBack().filter(function(){var e=t(this);return e.is("[title]")?e.data("ui-tooltip-title",e.attr("title")).removeAttr("title"):void 0}))},_enable:function(){this.disabledTitles.each(function(){var e=t(this);e.data("ui-tooltip-title")&&e.attr("title",e.data("ui-tooltip-title"))}),this.disabledTitles=t([])},open:function(e){var i=this,s=t(e?e.target:this.element).closest(this.options.items);s.length&&!s.data("ui-tooltip-id")&&(s.attr("title")&&s.data("ui-tooltip-title",s.attr("title")),s.data("ui-tooltip-open",!0),e&&"mouseover"===e.type&&s.parents().each(function(){var e,s=t(this);s.data("ui-tooltip-open")&&(e=t.Event("blur"),e.target=e.currentTarget=this,i.close(e,!0)),s.attr("title")&&(s.uniqueId(),i.parents[this.id]={element:this,title:s.attr("title")},s.attr("title",""))}),this._registerCloseHandlers(e,s),this._updateContent(s,e))},_updateContent:function(t,e){var i,s=this.options.content,n=this,o=e?e.type:null;return"string"==typeof s||s.nodeType||s.jquery?this._open(e,t,s):(i=s.call(t[0],function(i){n._delay(function(){t.data("ui-tooltip-open")&&(e&&(e.type=o),this._open(e,t,i))})}),i&&this._open(e,t,i),void 0)},_open:function(e,i,s){function n(t){l.of=t,a.is(":hidden")||a.position(l)}var o,a,r,h,l=t.extend({},this.options.position);if(s){if(o=this._find(i))return o.tooltip.find(".ui-tooltip-content").html(s),void 0;i.is("[title]")&&(e&&"mouseover"===e.type?i.attr("title",""):i.removeAttr("title")),o=this._tooltip(i),a=o.tooltip,this._addDescribedBy(i,a.attr("id")),a.find(".ui-tooltip-content").html(s),this.liveRegion.children().hide(),h=t("
      ").html(a.find(".ui-tooltip-content").html()),h.removeAttr("name").find("[name]").removeAttr("name"),h.removeAttr("id").find("[id]").removeAttr("id"),h.appendTo(this.liveRegion),this.options.track&&e&&/^mouse/.test(e.type)?(this._on(this.document,{mousemove:n}),n(e)):a.position(t.extend({of:i},this.options.position)),a.hide(),this._show(a,this.options.show),this.options.track&&this.options.show&&this.options.show.delay&&(r=this.delayedShow=setInterval(function(){a.is(":visible")&&(n(l.of),clearInterval(r))},t.fx.interval)),this._trigger("open",e,{tooltip:a})}},_registerCloseHandlers:function(e,i){var s={keyup:function(e){if(e.keyCode===t.ui.keyCode.ESCAPE){var s=t.Event(e);s.currentTarget=i[0],this.close(s,!0)}}};i[0]!==this.element[0]&&(s.remove=function(){this._removeTooltip(this._find(i).tooltip)}),e&&"mouseover"!==e.type||(s.mouseleave="close"),e&&"focusin"!==e.type||(s.focusout="close"),this._on(!0,i,s)},close:function(e){var i,s=this,n=t(e?e.currentTarget:this.element),o=this._find(n);return o?(i=o.tooltip,o.closing||(clearInterval(this.delayedShow),n.data("ui-tooltip-title")&&!n.attr("title")&&n.attr("title",n.data("ui-tooltip-title")),this._removeDescribedBy(n),o.hiding=!0,i.stop(!0),this._hide(i,this.options.hide,function(){s._removeTooltip(t(this))}),n.removeData("ui-tooltip-open"),this._off(n,"mouseleave focusout keyup"),n[0]!==this.element[0]&&this._off(n,"remove"),this._off(this.document,"mousemove"),e&&"mouseleave"===e.type&&t.each(this.parents,function(e,i){t(i.element).attr("title",i.title),delete s.parents[e]}),o.closing=!0,this._trigger("close",e,{tooltip:i}),o.hiding||(o.closing=!1)),void 0):(n.removeData("ui-tooltip-open"),void 0)},_tooltip:function(e){var i=t("
      ").attr("role","tooltip"),s=t("
      ").appendTo(i),n=i.uniqueId().attr("id");return this._addClass(s,"ui-tooltip-content"),this._addClass(i,"ui-tooltip","ui-widget ui-widget-content"),i.appendTo(this._appendTo(e)),this.tooltips[n]={element:e,tooltip:i}},_find:function(t){var e=t.data("ui-tooltip-id");return e?this.tooltips[e]:null},_removeTooltip:function(t){t.remove(),delete this.tooltips[t.attr("id")]},_appendTo:function(t){var e=t.closest(".ui-front, dialog");return e.length||(e=this.document[0].body),e},_destroy:function(){var e=this;t.each(this.tooltips,function(i,s){var n=t.Event("blur"),o=s.element;n.target=n.currentTarget=o[0],e.close(n,!0),t("#"+i).remove(),o.data("ui-tooltip-title")&&(o.attr("title")||o.attr("title",o.data("ui-tooltip-title")),o.removeData("ui-tooltip-title"))}),this.liveRegion.remove()}}),t.uiBackCompat!==!1&&t.widget("ui.tooltip",t.ui.tooltip,{options:{tooltipClass:null},_tooltip:function(){var t=this._superApply(arguments);return this.options.tooltipClass&&t.tooltip.addClass(this.options.tooltipClass),t}}),t.ui.tooltip}); \ No newline at end of file +!function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)}(function(V){"use strict";V.ui=V.ui||{};V.ui.version="1.13.1";var n,i=0,a=Array.prototype.hasOwnProperty,r=Array.prototype.slice;V.cleanData=(n=V.cleanData,function(t){for(var e,i,s=0;null!=(i=t[s]);s++)(e=V._data(i,"events"))&&e.remove&&V(i).triggerHandler("remove");n(t)}),V.widget=function(t,i,e){var s,n,o,a={},r=t.split(".")[0],l=r+"-"+(t=t.split(".")[1]);return e||(e=i,i=V.Widget),Array.isArray(e)&&(e=V.extend.apply(null,[{}].concat(e))),V.expr.pseudos[l.toLowerCase()]=function(t){return!!V.data(t,l)},V[r]=V[r]||{},s=V[r][t],n=V[r][t]=function(t,e){if(!this||!this._createWidget)return new n(t,e);arguments.length&&this._createWidget(t,e)},V.extend(n,s,{version:e.version,_proto:V.extend({},e),_childConstructors:[]}),(o=new i).options=V.widget.extend({},o.options),V.each(e,function(e,s){function n(){return i.prototype[e].apply(this,arguments)}function o(t){return i.prototype[e].apply(this,t)}a[e]="function"==typeof s?function(){var t,e=this._super,i=this._superApply;return this._super=n,this._superApply=o,t=s.apply(this,arguments),this._super=e,this._superApply=i,t}:s}),n.prototype=V.widget.extend(o,{widgetEventPrefix:s&&o.widgetEventPrefix||t},a,{constructor:n,namespace:r,widgetName:t,widgetFullName:l}),s?(V.each(s._childConstructors,function(t,e){var i=e.prototype;V.widget(i.namespace+"."+i.widgetName,n,e._proto)}),delete s._childConstructors):i._childConstructors.push(n),V.widget.bridge(t,n),n},V.widget.extend=function(t){for(var e,i,s=r.call(arguments,1),n=0,o=s.length;n",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=V(e||this.defaultElement||this)[0],this.element=V(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=V(),this.hoverable=V(),this.focusable=V(),this.classesElementLookup={},e!==this&&(V.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=V(e.style?e.ownerDocument:e.document||e),this.window=V(this.document[0].defaultView||this.document[0].parentWindow)),this.options=V.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:V.noop,_create:V.noop,_init:V.noop,destroy:function(){var i=this;this._destroy(),V.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:V.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return V.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=V.widget.extend({},this.options[t]),n=0;n
      "),i=e.children()[0];return V("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(k(s),k(n))?o.important="horizontal":o.important="vertical",u.using.call(this,t,o)}),a.offset(V.extend(h,{using:t}))})},V.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,a=s-o,r=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0")[0],w=d.each;function P(t){return null==t?t+"":"object"==typeof t?p[e.call(t)]||"object":typeof t}function M(t,e,i){var s=v[e.type]||{};return null==t?i||!e.def?null:e.def:(t=s.floor?~~t:parseFloat(t),isNaN(t)?e.def:s.mod?(t+s.mod)%s.mod:Math.min(s.max,Math.max(0,t)))}function S(s){var n=m(),o=n._rgba=[];return s=s.toLowerCase(),w(g,function(t,e){var i=e.re.exec(s),i=i&&e.parse(i),e=e.space||"rgba";if(i)return i=n[e](i),n[_[e].cache]=i[_[e].cache],o=n._rgba=i._rgba,!1}),o.length?("0,0,0,0"===o.join()&&d.extend(o,B.transparent),n):B[s]}function H(t,e,i){return 6*(i=(i+1)%1)<1?t+(e-t)*i*6:2*i<1?e:3*i<2?t+(e-t)*(2/3-i)*6:t}y.style.cssText="background-color:rgba(1,1,1,.5)",b.rgba=-1o.mod/2?s+=o.mod:s-n>o.mod/2&&(s-=o.mod)),l[i]=M((n-s)*a+s,e)))}),this[e](l)},blend:function(t){if(1===this._rgba[3])return this;var e=this._rgba.slice(),i=e.pop(),s=m(t)._rgba;return m(d.map(e,function(t,e){return(1-i)*s[e]+i*t}))},toRgbaString:function(){var t="rgba(",e=d.map(this._rgba,function(t,e){return null!=t?t:2
      ").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),e={width:i.width(),height:i.height()},n=document.activeElement;try{n.id}catch(t){n=document.body}return i.wrap(t),i[0]!==n&&!V.contains(i[0],n)||V(n).trigger("focus"),t=i.parent(),"static"===i.css("position")?(t.css({position:"relative"}),i.css({position:"relative"})):(V.extend(s,{position:i.css("position"),zIndex:i.css("z-index")}),V.each(["top","left","bottom","right"],function(t,e){s[e]=i.css(e),isNaN(parseInt(s[e],10))&&(s[e]="auto")}),i.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),i.css(e),t.css(s).show()},removeWrapper:function(t){var e=document.activeElement;return t.parent().is(".ui-effects-wrapper")&&(t.parent().replaceWith(t),t[0]!==e&&!V.contains(t[0],e)||V(e).trigger("focus")),t}}),V.extend(V.effects,{version:"1.13.1",define:function(t,e,i){return i||(i=e,e="effect"),V.effects.effect[t]=i,V.effects.effect[t].mode=e,i},scaledDimensions:function(t,e,i){if(0===e)return{height:0,width:0,outerHeight:0,outerWidth:0};var s="horizontal"!==i?(e||100)/100:1,e="vertical"!==i?(e||100)/100:1;return{height:t.height()*e,width:t.width()*s,outerHeight:t.outerHeight()*e,outerWidth:t.outerWidth()*s}},clipToBox:function(t){return{width:t.clip.right-t.clip.left,height:t.clip.bottom-t.clip.top,left:t.clip.left,top:t.clip.top}},unshift:function(t,e,i){var s=t.queue();1").insertAfter(t).css({display:/^(inline|ruby)/.test(t.css("display"))?"inline-block":"block",visibility:"hidden",marginTop:t.css("marginTop"),marginBottom:t.css("marginBottom"),marginLeft:t.css("marginLeft"),marginRight:t.css("marginRight"),float:t.css("float")}).outerWidth(t.outerWidth()).outerHeight(t.outerHeight()).addClass("ui-effects-placeholder"),t.data(j+"placeholder",e)),t.css({position:i,left:s.left,top:s.top}),e},removePlaceholder:function(t){var e=j+"placeholder",i=t.data(e);i&&(i.remove(),t.removeData(e))},cleanUp:function(t){V.effects.restoreStyle(t),V.effects.removePlaceholder(t)},setTransition:function(s,t,n,o){return o=o||{},V.each(t,function(t,e){var i=s.cssUnit(e);0
      ");l.appendTo("body").addClass(t.className).css({top:s.top-a,left:s.left-r,height:i.innerHeight(),width:i.innerWidth(),position:n?"fixed":"absolute"}).animate(o,t.duration,t.easing,function(){l.remove(),"function"==typeof e&&e()})}}),V.fx.step.clip=function(t){t.clipInit||(t.start=V(t.elem).cssClip(),"string"==typeof t.end&&(t.end=G(t.end,t.elem)),t.clipInit=!0),V(t.elem).cssClip({top:t.pos*(t.end.top-t.start.top)+t.start.top,right:t.pos*(t.end.right-t.start.right)+t.start.right,bottom:t.pos*(t.end.bottom-t.start.bottom)+t.start.bottom,left:t.pos*(t.end.left-t.start.left)+t.start.left})},Y={},V.each(["Quad","Cubic","Quart","Quint","Expo"],function(e,t){Y[t]=function(t){return Math.pow(t,e+2)}}),V.extend(Y,{Sine:function(t){return 1-Math.cos(t*Math.PI/2)},Circ:function(t){return 1-Math.sqrt(1-t*t)},Elastic:function(t){return 0===t||1===t?t:-Math.pow(2,8*(t-1))*Math.sin((80*(t-1)-7.5)*Math.PI/15)},Back:function(t){return t*t*(3*t-2)},Bounce:function(t){for(var e,i=4;t<((e=Math.pow(2,--i))-1)/11;);return 1/Math.pow(4,3-i)-7.5625*Math.pow((3*e-2)/22-t,2)}}),V.each(Y,function(t,e){V.easing["easeIn"+t]=e,V.easing["easeOut"+t]=function(t){return 1-e(1-t)},V.easing["easeInOut"+t]=function(t){return t<.5?e(2*t)/2:1-e(-2*t+2)/2}});y=V.effects,V.effects.define("blind","hide",function(t,e){var i={up:["bottom","top"],vertical:["bottom","top"],down:["top","bottom"],left:["right","left"],horizontal:["right","left"],right:["left","right"]},s=V(this),n=t.direction||"up",o=s.cssClip(),a={clip:V.extend({},o)},r=V.effects.createPlaceholder(s);a.clip[i[n][0]]=a.clip[i[n][1]],"show"===t.mode&&(s.cssClip(a.clip),r&&r.css(V.effects.clipToBox(a)),a.clip=o),r&&r.animate(V.effects.clipToBox(a),t.duration,t.easing),s.animate(a,{queue:!1,duration:t.duration,easing:t.easing,complete:e})}),V.effects.define("bounce",function(t,e){var i,s,n=V(this),o=t.mode,a="hide"===o,r="show"===o,l=t.direction||"up",h=t.distance,c=t.times||5,o=2*c+(r||a?1:0),u=t.duration/o,d=t.easing,p="up"===l||"down"===l?"top":"left",f="up"===l||"left"===l,g=0,t=n.queue().length;for(V.effects.createPlaceholder(n),l=n.css(p),h=h||n["top"==p?"outerHeight":"outerWidth"]()/3,r&&((s={opacity:1})[p]=l,n.css("opacity",0).css(p,f?2*-h:2*h).animate(s,u,d)),a&&(h/=Math.pow(2,c-1)),(s={})[p]=l;g
      ").css({position:"absolute",visibility:"visible",left:-s*p,top:-i*f}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:p,height:f,left:n+(u?a*p:0),top:o+(u?r*f:0),opacity:u?0:1}).animate({left:n+(u?0:a*p),top:o+(u?0:r*f),opacity:u?1:0},t.duration||500,t.easing,m)}),V.effects.define("fade","toggle",function(t,e){var i="show"===t.mode;V(this).css("opacity",i?0:1).animate({opacity:i?1:0},{queue:!1,duration:t.duration,easing:t.easing,complete:e})}),V.effects.define("fold","hide",function(e,t){var i=V(this),s=e.mode,n="show"===s,o="hide"===s,a=e.size||15,r=/([0-9]+)%/.exec(a),l=!!e.horizFirst?["right","bottom"]:["bottom","right"],h=e.duration/2,c=V.effects.createPlaceholder(i),u=i.cssClip(),d={clip:V.extend({},u)},p={clip:V.extend({},u)},f=[u[l[0]],u[l[1]]],s=i.queue().length;r&&(a=parseInt(r[1],10)/100*f[o?0:1]),d.clip[l[0]]=a,p.clip[l[0]]=a,p.clip[l[1]]=0,n&&(i.cssClip(p.clip),c&&c.css(V.effects.clipToBox(p)),p.clip=u),i.queue(function(t){c&&c.animate(V.effects.clipToBox(d),h,e.easing).animate(V.effects.clipToBox(p),h,e.easing),t()}).animate(d,h,e.easing).animate(p,h,e.easing).queue(t),V.effects.unshift(i,s,4)}),V.effects.define("highlight","show",function(t,e){var i=V(this),s={backgroundColor:i.css("backgroundColor")};"hide"===t.mode&&(s.opacity=0),V.effects.saveStyle(i),i.css({backgroundImage:"none",backgroundColor:t.color||"#ffff99"}).animate(s,{queue:!1,duration:t.duration,easing:t.easing,complete:e})}),V.effects.define("size",function(s,e){var n,i=V(this),t=["fontSize"],o=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],a=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],r=s.mode,l="effect"!==r,h=s.scale||"both",c=s.origin||["middle","center"],u=i.css("position"),d=i.position(),p=V.effects.scaledDimensions(i),f=s.from||p,g=s.to||V.effects.scaledDimensions(i,0);V.effects.createPlaceholder(i),"show"===r&&(r=f,f=g,g=r),n={from:{y:f.height/p.height,x:f.width/p.width},to:{y:g.height/p.height,x:g.width/p.width}},"box"!==h&&"both"!==h||(n.from.y!==n.to.y&&(f=V.effects.setTransition(i,o,n.from.y,f),g=V.effects.setTransition(i,o,n.to.y,g)),n.from.x!==n.to.x&&(f=V.effects.setTransition(i,a,n.from.x,f),g=V.effects.setTransition(i,a,n.to.x,g))),"content"!==h&&"both"!==h||n.from.y!==n.to.y&&(f=V.effects.setTransition(i,t,n.from.y,f),g=V.effects.setTransition(i,t,n.to.y,g)),c&&(c=V.effects.getBaseline(c,p),f.top=(p.outerHeight-f.outerHeight)*c.y+d.top,f.left=(p.outerWidth-f.outerWidth)*c.x+d.left,g.top=(p.outerHeight-g.outerHeight)*c.y+d.top,g.left=(p.outerWidth-g.outerWidth)*c.x+d.left),delete f.outerHeight,delete f.outerWidth,i.css(f),"content"!==h&&"both"!==h||(o=o.concat(["marginTop","marginBottom"]).concat(t),a=a.concat(["marginLeft","marginRight"]),i.find("*[width]").each(function(){var t=V(this),e=V.effects.scaledDimensions(t),i={height:e.height*n.from.y,width:e.width*n.from.x,outerHeight:e.outerHeight*n.from.y,outerWidth:e.outerWidth*n.from.x},e={height:e.height*n.to.y,width:e.width*n.to.x,outerHeight:e.height*n.to.y,outerWidth:e.width*n.to.x};n.from.y!==n.to.y&&(i=V.effects.setTransition(t,o,n.from.y,i),e=V.effects.setTransition(t,o,n.to.y,e)),n.from.x!==n.to.x&&(i=V.effects.setTransition(t,a,n.from.x,i),e=V.effects.setTransition(t,a,n.to.x,e)),l&&V.effects.saveStyle(t),t.css(i),t.animate(e,s.duration,s.easing,function(){l&&V.effects.restoreStyle(t)})})),i.animate(g,{queue:!1,duration:s.duration,easing:s.easing,complete:function(){var t=i.offset();0===g.opacity&&i.css("opacity",f.opacity),l||(i.css("position","static"===u?"relative":u).offset(t),V.effects.saveStyle(i)),e()}})}),V.effects.define("scale",function(t,e){var i=V(this),s=t.mode,s=parseInt(t.percent,10)||(0===parseInt(t.percent,10)||"effect"!==s?0:100),s=V.extend(!0,{from:V.effects.scaledDimensions(i),to:V.effects.scaledDimensions(i,s,t.direction||"both"),origin:t.origin||["middle","center"]},t);t.fade&&(s.from.opacity=1,s.to.opacity=0),V.effects.effect.size.call(this,s,e)}),V.effects.define("puff","hide",function(t,e){t=V.extend(!0,{},t,{fade:!0,percent:parseInt(t.percent,10)||150});V.effects.effect.scale.call(this,t,e)}),V.effects.define("pulsate","show",function(t,e){var i=V(this),s=t.mode,n="show"===s,o=2*(t.times||5)+(n||"hide"===s?1:0),a=t.duration/o,r=0,l=1,s=i.queue().length;for(!n&&i.is(":visible")||(i.css("opacity",0).show(),r=1);l li > :first-child").add(t.find("> :not(li)").even())},heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},hideProps:{borderTopWidth:"hide",borderBottomWidth:"hide",paddingTop:"hide",paddingBottom:"hide",height:"hide"},showProps:{borderTopWidth:"show",borderBottomWidth:"show",paddingTop:"show",paddingBottom:"show",height:"show"},_create:function(){var t=this.options;this.prevShow=this.prevHide=V(),this._addClass("ui-accordion","ui-widget ui-helper-reset"),this.element.attr("role","tablist"),t.collapsible||!1!==t.active&&null!=t.active||(t.active=0),this._processPanels(),t.active<0&&(t.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():V()}},_createIcons:function(){var t,e=this.options.icons;e&&(t=V(""),this._addClass(t,"ui-accordion-header-icon","ui-icon "+e.header),t.prependTo(this.headers),t=this.active.children(".ui-accordion-header-icon"),this._removeClass(t,e.header)._addClass(t,null,e.activeHeader)._addClass(this.headers,"ui-accordion-icons"))},_destroyIcons:function(){this._removeClass(this.headers,"ui-accordion-icons"),this.headers.children(".ui-accordion-header-icon").remove()},_destroy:function(){var t;this.element.removeAttr("role"),this.headers.removeAttr("role aria-expanded aria-selected aria-controls tabIndex").removeUniqueId(),this._destroyIcons(),t=this.headers.next().css("display","").removeAttr("role aria-hidden aria-labelledby").removeUniqueId(),"content"!==this.options.heightStyle&&t.css("height","")},_setOption:function(t,e){"active"!==t?("event"===t&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(e)),this._super(t,e),"collapsible"!==t||e||!1!==this.options.active||this._activate(0),"icons"===t&&(this._destroyIcons(),e&&this._createIcons())):this._activate(e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t),this._toggleClass(null,"ui-state-disabled",!!t),this._toggleClass(this.headers.add(this.headers.next()),null,"ui-state-disabled",!!t)},_keydown:function(t){if(!t.altKey&&!t.ctrlKey){var e=V.ui.keyCode,i=this.headers.length,s=this.headers.index(t.target),n=!1;switch(t.keyCode){case e.RIGHT:case e.DOWN:n=this.headers[(s+1)%i];break;case e.LEFT:case e.UP:n=this.headers[(s-1+i)%i];break;case e.SPACE:case e.ENTER:this._eventHandler(t);break;case e.HOME:n=this.headers[0];break;case e.END:n=this.headers[i-1]}n&&(V(t.target).attr("tabIndex",-1),V(n).attr("tabIndex",0),V(n).trigger("focus"),t.preventDefault())}},_panelKeyDown:function(t){t.keyCode===V.ui.keyCode.UP&&t.ctrlKey&&V(t.currentTarget).prev().trigger("focus")},refresh:function(){var t=this.options;this._processPanels(),!1===t.active&&!0===t.collapsible||!this.headers.length?(t.active=!1,this.active=V()):!1===t.active?this._activate(0):this.active.length&&!V.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(t.active=!1,this.active=V()):this._activate(Math.max(0,t.active-1)):t.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){var t=this.headers,e=this.panels;"function"==typeof this.options.header?this.headers=this.options.header(this.element):this.headers=this.element.find(this.options.header),this._addClass(this.headers,"ui-accordion-header ui-accordion-header-collapsed","ui-state-default"),this.panels=this.headers.next().filter(":not(.ui-accordion-content-active)").hide(),this._addClass(this.panels,"ui-accordion-content","ui-helper-reset ui-widget-content"),e&&(this._off(t.not(this.headers)),this._off(e.not(this.panels)))},_refresh:function(){var i,t=this.options,e=t.heightStyle,s=this.element.parent();this.active=this._findActive(t.active),this._addClass(this.active,"ui-accordion-header-active","ui-state-active")._removeClass(this.active,"ui-accordion-header-collapsed"),this._addClass(this.active.next(),"ui-accordion-content-active"),this.active.next().show(),this.headers.attr("role","tab").each(function(){var t=V(this),e=t.uniqueId().attr("id"),i=t.next(),s=i.uniqueId().attr("id");t.attr("aria-controls",s),i.attr("aria-labelledby",e)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}).next().attr({"aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}).next().attr({"aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._createIcons(),this._setupEvents(t.event),"fill"===e?(i=s.height(),this.element.siblings(":visible").each(function(){var t=V(this),e=t.css("position");"absolute"!==e&&"fixed"!==e&&(i-=t.outerHeight(!0))}),this.headers.each(function(){i-=V(this).outerHeight(!0)}),this.headers.next().each(function(){V(this).height(Math.max(0,i-V(this).innerHeight()+V(this).height()))}).css("overflow","auto")):"auto"===e&&(i=0,this.headers.next().each(function(){var t=V(this).is(":visible");t||V(this).show(),i=Math.max(i,V(this).css("height","").height()),t||V(this).hide()}).height(i))},_activate:function(t){t=this._findActive(t)[0];t!==this.active[0]&&(t=t||this.active[0],this._eventHandler({target:t,currentTarget:t,preventDefault:V.noop}))},_findActive:function(t){return"number"==typeof t?this.headers.eq(t):V()},_setupEvents:function(t){var i={keydown:"_keydown"};t&&V.each(t.split(" "),function(t,e){i[e]="_eventHandler"}),this._off(this.headers.add(this.headers.next())),this._on(this.headers,i),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(t){var e=this.options,i=this.active,s=V(t.currentTarget),n=s[0]===i[0],o=n&&e.collapsible,a=o?V():s.next(),r=i.next(),a={oldHeader:i,oldPanel:r,newHeader:o?V():s,newPanel:a};t.preventDefault(),n&&!e.collapsible||!1===this._trigger("beforeActivate",t,a)||(e.active=!o&&this.headers.index(s),this.active=n?V():s,this._toggle(a),this._removeClass(i,"ui-accordion-header-active","ui-state-active"),e.icons&&(i=i.children(".ui-accordion-header-icon"),this._removeClass(i,null,e.icons.activeHeader)._addClass(i,null,e.icons.header)),n||(this._removeClass(s,"ui-accordion-header-collapsed")._addClass(s,"ui-accordion-header-active","ui-state-active"),e.icons&&(n=s.children(".ui-accordion-header-icon"),this._removeClass(n,null,e.icons.header)._addClass(n,null,e.icons.activeHeader)),this._addClass(s.next(),"ui-accordion-content-active")))},_toggle:function(t){var e=t.newPanel,i=this.prevShow.length?this.prevShow:t.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=e,this.prevHide=i,this.options.animate?this._animate(e,i,t):(i.hide(),e.show(),this._toggleComplete(t)),i.attr({"aria-hidden":"true"}),i.prev().attr({"aria-selected":"false","aria-expanded":"false"}),e.length&&i.length?i.prev().attr({tabIndex:-1,"aria-expanded":"false"}):e.length&&this.headers.filter(function(){return 0===parseInt(V(this).attr("tabIndex"),10)}).attr("tabIndex",-1),e.attr("aria-hidden","false").prev().attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_animate:function(t,i,e){var s,n,o,a=this,r=0,l=t.css("box-sizing"),h=t.length&&(!i.length||t.index()",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.lastMousePosition={x:null,y:null},this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault(),this._activateItem(t)},"click .ui-menu-item":function(t){var e=V(t.target),i=V(V.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&e.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),e.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&i.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":"_activateItem","mousemove .ui-menu-item":"_activateItem",mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this._menuItems().first();e||this.focus(t,i)},blur:function(t){this._delay(function(){V.contains(this.element[0],V.ui.safeActiveElement(this.document[0]))||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t,!0),this.mouseHandled=!1}})},_activateItem:function(t){var e,i;this.previousFilter||t.clientX===this.lastMousePosition.x&&t.clientY===this.lastMousePosition.y||(this.lastMousePosition={x:t.clientX,y:t.clientY},e=V(t.target).closest(".ui-menu-item"),i=V(t.currentTarget),e[0]===i[0]&&(i.is(".ui-state-active")||(this._removeClass(i.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(t,i))))},_destroy:function(){var t=this.element.find(".ui-menu-item").removeAttr("role aria-disabled").children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),t.children().each(function(){var t=V(this);t.data("ui-menu-submenu-caret")&&t.remove()})},_keydown:function(t){var e,i,s,n=!0;switch(t.keyCode){case V.ui.keyCode.PAGE_UP:this.previousPage(t);break;case V.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case V.ui.keyCode.HOME:this._move("first","first",t);break;case V.ui.keyCode.END:this._move("last","last",t);break;case V.ui.keyCode.UP:this.previous(t);break;case V.ui.keyCode.DOWN:this.next(t);break;case V.ui.keyCode.LEFT:this.collapse(t);break;case V.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case V.ui.keyCode.ENTER:case V.ui.keyCode.SPACE:this._activate(t);break;case V.ui.keyCode.ESCAPE:this.collapse(t);break;default:e=this.previousFilter||"",s=n=!1,i=96<=t.keyCode&&t.keyCode<=105?(t.keyCode-96).toString():String.fromCharCode(t.keyCode),clearTimeout(this.filterTimer),i===e?s=!0:i=e+i,e=this._filterMenuItems(i),(e=s&&-1!==e.index(this.active.next())?this.active.nextAll(".ui-menu-item"):e).length||(i=String.fromCharCode(t.keyCode),e=this._filterMenuItems(i)),e.length?(this.focus(t,e),this.previousFilter=i,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}n&&t.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var t,e,s=this,n=this.options.icons.submenu,i=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),e=i.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=V(this),e=t.prev(),i=V("").data("ui-menu-submenu-caret",!0);s._addClass(i,"ui-menu-icon","ui-icon "+n),e.attr("aria-haspopup","true").prepend(i),t.attr("aria-labelledby",e.attr("id"))}),this._addClass(e,"ui-menu","ui-widget ui-widget-content ui-front"),(t=i.add(this.element).find(this.options.items)).not(".ui-menu-item").each(function(){var t=V(this);s._isDivider(t)&&s._addClass(t,"ui-menu-divider","ui-widget-content")}),i=(e=t.not(".ui-menu-item, .ui-menu-divider")).children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(e,"ui-menu-item")._addClass(i,"ui-menu-item-wrapper"),t.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!V.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){var i;"icons"===t&&(i=this.element.find(".ui-menu-icon"),this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",String(t)),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),i=this.active.children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",i.attr("id")),i=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),(i=e.children(".ui-menu")).length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(t){var e,i,s;this._hasScroll()&&(i=parseFloat(V.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(V.css(this.activeMenu[0],"paddingTop"))||0,e=t.offset().top-this.activeMenu.offset().top-i-s,i=this.activeMenu.scrollTop(),s=this.activeMenu.height(),t=t.outerHeight(),e<0?this.activeMenu.scrollTop(i+e):s",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,liveRegionTimer:null,_create:function(){var i,s,n,t=this.element[0].nodeName.toLowerCase(),e="textarea"===t,t="input"===t;this.isMultiLine=e||!t&&this._isContentEditable(this.element),this.valueMethod=this.element[e||t?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(t){if(this.element.prop("readOnly"))s=n=i=!0;else{s=n=i=!1;var e=V.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:i=!0,this._move("previousPage",t);break;case e.PAGE_DOWN:i=!0,this._move("nextPage",t);break;case e.UP:i=!0,this._keyEvent("previous",t);break;case e.DOWN:i=!0,this._keyEvent("next",t);break;case e.ENTER:this.menu.active&&(i=!0,t.preventDefault(),this.menu.select(t));break;case e.TAB:this.menu.active&&this.menu.select(t);break;case e.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(t),t.preventDefault());break;default:s=!0,this._searchTimeout(t)}}},keypress:function(t){if(i)return i=!1,void(this.isMultiLine&&!this.menu.element.is(":visible")||t.preventDefault());if(!s){var e=V.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:this._move("previousPage",t);break;case e.PAGE_DOWN:this._move("nextPage",t);break;case e.UP:this._keyEvent("previous",t);break;case e.DOWN:this._keyEvent("next",t)}}},input:function(t){if(n)return n=!1,void t.preventDefault();this._searchTimeout(t)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){clearTimeout(this.searching),this.close(t),this._change(t)}}),this._initSource(),this.menu=V("
        ").appendTo(this._appendTo()).menu({role:null}).hide().attr({unselectable:"on"}).menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(t){t.preventDefault()},menufocus:function(t,e){var i,s;if(this.isNewMenu&&(this.isNewMenu=!1,t.originalEvent&&/^mouse/.test(t.originalEvent.type)))return this.menu.blur(),void this.document.one("mousemove",function(){V(t.target).trigger(t.originalEvent)});s=e.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",t,{item:s})&&t.originalEvent&&/^key/.test(t.originalEvent.type)&&this._value(s.value),(i=e.item.attr("aria-label")||s.value)&&String.prototype.trim.call(i).length&&(clearTimeout(this.liveRegionTimer),this.liveRegionTimer=this._delay(function(){this.liveRegion.html(V("
        ").text(i))},100))},menuselect:function(t,e){var i=e.item.data("ui-autocomplete-item"),s=this.previous;this.element[0]!==V.ui.safeActiveElement(this.document[0])&&(this.element.trigger("focus"),this.previous=s,this._delay(function(){this.previous=s,this.selectedItem=i})),!1!==this._trigger("select",t,{item:i})&&this._value(i.value),this.term=this._value(),this.close(t),this.selectedItem=i}}),this.liveRegion=V("
        ",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(t){var e=this.menu.element[0];return t.target===this.element[0]||t.target===e||V.contains(e,t.target)},_closeOnClickOutside:function(t){this._isEventTargetInWidget(t)||this.close()},_appendTo:function(){var t=this.options.appendTo;return t=!(t=!(t=t&&(t.jquery||t.nodeType?V(t):this.document.find(t).eq(0)))||!t[0]?this.element.closest(".ui-front, dialog"):t).length?this.document[0].body:t},_initSource:function(){var i,s,n=this;Array.isArray(this.options.source)?(i=this.options.source,this.source=function(t,e){e(V.ui.autocomplete.filter(i,t.term))}):"string"==typeof this.options.source?(s=this.options.source,this.source=function(t,e){n.xhr&&n.xhr.abort(),n.xhr=V.ajax({url:s,data:t,dataType:"json",success:function(t){e(t)},error:function(){e([])}})}):this.source=this.options.source},_searchTimeout:function(s){clearTimeout(this.searching),this.searching=this._delay(function(){var t=this.term===this._value(),e=this.menu.element.is(":visible"),i=s.altKey||s.ctrlKey||s.metaKey||s.shiftKey;t&&(e||i)||(this.selectedItem=null,this.search(null,s))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length").append(V("
        ").text(e.label)).appendTo(t)},_move:function(t,e){if(this.menu.element.is(":visible"))return this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),void this.menu.blur()):void this.menu[t](e);this.search(null,e)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){this.isMultiLine&&!this.menu.element.is(":visible")||(this._move(t,e),e.preventDefault())},_isContentEditable:function(t){if(!t.length)return!1;var e=t.prop("contentEditable");return"inherit"===e?this._isContentEditable(t.parent()):"true"===e}}),V.extend(V.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(t,e){var i=new RegExp(V.ui.autocomplete.escapeRegex(e),"i");return V.grep(t,function(t){return i.test(t.label||t.value||t)})}}),V.widget("ui.autocomplete",V.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(1").text(e))},100))}});V.ui.autocomplete;var tt=/ui-corner-([a-z]){2,6}/g;V.widget("ui.controlgroup",{version:"1.13.1",defaultElement:"
        ",options:{direction:"horizontal",disabled:null,onlyVisible:!0,items:{button:"input[type=button], input[type=submit], input[type=reset], button, a",controlgroupLabel:".ui-controlgroup-label",checkboxradio:"input[type='checkbox'], input[type='radio']",selectmenu:"select",spinner:".ui-spinner-input"}},_create:function(){this._enhance()},_enhance:function(){this.element.attr("role","toolbar"),this.refresh()},_destroy:function(){this._callChildMethod("destroy"),this.childWidgets.removeData("ui-controlgroup-data"),this.element.removeAttr("role"),this.options.items.controlgroupLabel&&this.element.find(this.options.items.controlgroupLabel).find(".ui-controlgroup-label-contents").contents().unwrap()},_initWidgets:function(){var o=this,a=[];V.each(this.options.items,function(s,t){var e,n={};if(t)return"controlgroupLabel"===s?((e=o.element.find(t)).each(function(){var t=V(this);t.children(".ui-controlgroup-label-contents").length||t.contents().wrapAll("")}),o._addClass(e,null,"ui-widget ui-widget-content ui-state-default"),void(a=a.concat(e.get()))):void(V.fn[s]&&(n=o["_"+s+"Options"]?o["_"+s+"Options"]("middle"):{classes:{}},o.element.find(t).each(function(){var t=V(this),e=t[s]("instance"),i=V.widget.extend({},n);"button"===s&&t.parent(".ui-spinner").length||((e=e||t[s]()[s]("instance"))&&(i.classes=o._resolveClassesValues(i.classes,e)),t[s](i),i=t[s]("widget"),V.data(i[0],"ui-controlgroup-data",e||t[s]("instance")),a.push(i[0]))})))}),this.childWidgets=V(V.uniqueSort(a)),this._addClass(this.childWidgets,"ui-controlgroup-item")},_callChildMethod:function(e){this.childWidgets.each(function(){var t=V(this).data("ui-controlgroup-data");t&&t[e]&&t[e]()})},_updateCornerClass:function(t,e){e=this._buildSimpleOptions(e,"label").classes.label;this._removeClass(t,null,"ui-corner-top ui-corner-bottom ui-corner-left ui-corner-right ui-corner-all"),this._addClass(t,null,e)},_buildSimpleOptions:function(t,e){var i="vertical"===this.options.direction,s={classes:{}};return s.classes[e]={middle:"",first:"ui-corner-"+(i?"top":"left"),last:"ui-corner-"+(i?"bottom":"right"),only:"ui-corner-all"}[t],s},_spinnerOptions:function(t){t=this._buildSimpleOptions(t,"ui-spinner");return t.classes["ui-spinner-up"]="",t.classes["ui-spinner-down"]="",t},_buttonOptions:function(t){return this._buildSimpleOptions(t,"ui-button")},_checkboxradioOptions:function(t){return this._buildSimpleOptions(t,"ui-checkboxradio-label")},_selectmenuOptions:function(t){var e="vertical"===this.options.direction;return{width:e&&"auto",classes:{middle:{"ui-selectmenu-button-open":"","ui-selectmenu-button-closed":""},first:{"ui-selectmenu-button-open":"ui-corner-"+(e?"top":"tl"),"ui-selectmenu-button-closed":"ui-corner-"+(e?"top":"left")},last:{"ui-selectmenu-button-open":e?"":"ui-corner-tr","ui-selectmenu-button-closed":"ui-corner-"+(e?"bottom":"right")},only:{"ui-selectmenu-button-open":"ui-corner-top","ui-selectmenu-button-closed":"ui-corner-all"}}[t]}},_resolveClassesValues:function(i,s){var n={};return V.each(i,function(t){var e=s.options.classes[t]||"",e=String.prototype.trim.call(e.replace(tt,""));n[t]=(e+" "+i[t]).replace(/\s+/g," ")}),n},_setOption:function(t,e){"direction"===t&&this._removeClass("ui-controlgroup-"+this.options.direction),this._super(t,e),"disabled"!==t?this.refresh():this._callChildMethod(e?"disable":"enable")},refresh:function(){var n,o=this;this._addClass("ui-controlgroup ui-controlgroup-"+this.options.direction),"horizontal"===this.options.direction&&this._addClass(null,"ui-helper-clearfix"),this._initWidgets(),n=this.childWidgets,(n=this.options.onlyVisible?n.filter(":visible"):n).length&&(V.each(["first","last"],function(t,e){var i,s=n[e]().data("ui-controlgroup-data");s&&o["_"+s.widgetName+"Options"]?((i=o["_"+s.widgetName+"Options"](1===n.length?"only":e)).classes=o._resolveClassesValues(i.classes,s),s.element[s.widgetName](i)):o._updateCornerClass(n[e](),e)}),this._callChildMethod("refresh"))}});V.widget("ui.checkboxradio",[V.ui.formResetMixin,{version:"1.13.1",options:{disabled:null,label:null,icon:!0,classes:{"ui-checkboxradio-label":"ui-corner-all","ui-checkboxradio-icon":"ui-corner-all"}},_getCreateOptions:function(){var t,e=this,i=this._super()||{};return this._readType(),t=this.element.labels(),this.label=V(t[t.length-1]),this.label.length||V.error("No label found for checkboxradio widget"),this.originalLabel="",this.label.contents().not(this.element[0]).each(function(){e.originalLabel+=3===this.nodeType?V(this).text():this.outerHTML}),this.originalLabel&&(i.label=this.originalLabel),null!=(t=this.element[0].disabled)&&(i.disabled=t),i},_create:function(){var t=this.element[0].checked;this._bindFormResetHandler(),null==this.options.disabled&&(this.options.disabled=this.element[0].disabled),this._setOption("disabled",this.options.disabled),this._addClass("ui-checkboxradio","ui-helper-hidden-accessible"),this._addClass(this.label,"ui-checkboxradio-label","ui-button ui-widget"),"radio"===this.type&&this._addClass(this.label,"ui-checkboxradio-radio-label"),this.options.label&&this.options.label!==this.originalLabel?this._updateLabel():this.originalLabel&&(this.options.label=this.originalLabel),this._enhance(),t&&this._addClass(this.label,"ui-checkboxradio-checked","ui-state-active"),this._on({change:"_toggleClasses",focus:function(){this._addClass(this.label,null,"ui-state-focus ui-visual-focus")},blur:function(){this._removeClass(this.label,null,"ui-state-focus ui-visual-focus")}})},_readType:function(){var t=this.element[0].nodeName.toLowerCase();this.type=this.element[0].type,"input"===t&&/radio|checkbox/.test(this.type)||V.error("Can't create checkboxradio on element.nodeName="+t+" and element.type="+this.type)},_enhance:function(){this._updateIcon(this.element[0].checked)},widget:function(){return this.label},_getRadioGroup:function(){var t=this.element[0].name,e="input[name='"+V.escapeSelector(t)+"']";return t?(this.form.length?V(this.form[0].elements).filter(e):V(e).filter(function(){return 0===V(this)._form().length})).not(this.element):V([])},_toggleClasses:function(){var t=this.element[0].checked;this._toggleClass(this.label,"ui-checkboxradio-checked","ui-state-active",t),this.options.icon&&"checkbox"===this.type&&this._toggleClass(this.icon,null,"ui-icon-check ui-state-checked",t)._toggleClass(this.icon,null,"ui-icon-blank",!t),"radio"===this.type&&this._getRadioGroup().each(function(){var t=V(this).checkboxradio("instance");t&&t._removeClass(t.label,"ui-checkboxradio-checked","ui-state-active")})},_destroy:function(){this._unbindFormResetHandler(),this.icon&&(this.icon.remove(),this.iconSpace.remove())},_setOption:function(t,e){if("label"!==t||e){if(this._super(t,e),"disabled"===t)return this._toggleClass(this.label,null,"ui-state-disabled",e),void(this.element[0].disabled=e);this.refresh()}},_updateIcon:function(t){var e="ui-icon ui-icon-background ";this.options.icon?(this.icon||(this.icon=V(""),this.iconSpace=V(" "),this._addClass(this.iconSpace,"ui-checkboxradio-icon-space")),"checkbox"===this.type?(e+=t?"ui-icon-check ui-state-checked":"ui-icon-blank",this._removeClass(this.icon,null,t?"ui-icon-blank":"ui-icon-check")):e+="ui-icon-blank",this._addClass(this.icon,"ui-checkboxradio-icon",e),t||this._removeClass(this.icon,null,"ui-icon-check ui-state-checked"),this.icon.prependTo(this.label).after(this.iconSpace)):void 0!==this.icon&&(this.icon.remove(),this.iconSpace.remove(),delete this.icon)},_updateLabel:function(){var t=this.label.contents().not(this.element[0]);this.icon&&(t=t.not(this.icon[0])),(t=this.iconSpace?t.not(this.iconSpace[0]):t).remove(),this.label.append(this.options.label)},refresh:function(){var t=this.element[0].checked,e=this.element[0].disabled;this._updateIcon(t),this._toggleClass(this.label,"ui-checkboxradio-checked","ui-state-active",t),null!==this.options.label&&this._updateLabel(),e!==this.options.disabled&&this._setOptions({disabled:e})}}]);var et;V.ui.checkboxradio;V.widget("ui.button",{version:"1.13.1",defaultElement:"
        "+(0
        ":""):"")}f+=_}return f+=F,t._keyEvent=!1,f},_generateMonthYearHeader:function(t,e,i,s,n,o,a,r){var l,h,c,u,d,p,f=this._get(t,"changeMonth"),g=this._get(t,"changeYear"),m=this._get(t,"showMonthAfterYear"),_=this._get(t,"selectMonthLabel"),v=this._get(t,"selectYearLabel"),b="
        ",y="";if(o||!f)y+=""+a[e]+"";else{for(l=s&&s.getFullYear()===i,h=n&&n.getFullYear()===i,y+=""}if(m||(b+=y+(!o&&f&&g?"":" ")),!t.yearshtml)if(t.yearshtml="",o||!g)b+=""+i+"";else{for(a=this._get(t,"yearRange").split(":"),u=(new Date).getFullYear(),d=(_=function(t){t=t.match(/c[+\-].*/)?i+parseInt(t.substring(1),10):t.match(/[+\-].*/)?u+parseInt(t,10):parseInt(t,10);return isNaN(t)?u:t})(a[0]),p=Math.max(d,_(a[1]||"")),d=s?Math.max(d,s.getFullYear()):d,p=n?Math.min(p,n.getFullYear()):p,t.yearshtml+="",b+=t.yearshtml,t.yearshtml=null}return b+=this._get(t,"yearSuffix"),m&&(b+=(!o&&f&&g?"":" ")+y),b+="
        "},_adjustInstDate:function(t,e,i){var s=t.selectedYear+("Y"===i?e:0),n=t.selectedMonth+("M"===i?e:0),e=Math.min(t.selectedDay,this._getDaysInMonth(s,n))+("D"===i?e:0),e=this._restrictMinMax(t,this._daylightSavingAdjust(new Date(s,n,e)));t.selectedDay=e.getDate(),t.drawMonth=t.selectedMonth=e.getMonth(),t.drawYear=t.selectedYear=e.getFullYear(),"M"!==i&&"Y"!==i||this._notifyChange(t)},_restrictMinMax:function(t,e){var i=this._getMinMaxDate(t,"min"),t=this._getMinMaxDate(t,"max"),e=i&&e=i.getTime())&&(!s||e.getTime()<=s.getTime())&&(!n||e.getFullYear()>=n)&&(!o||e.getFullYear()<=o)},_getFormatConfig:function(t){var e=this._get(t,"shortYearCutoff");return{shortYearCutoff:e="string"!=typeof e?e:(new Date).getFullYear()%100+parseInt(e,10),dayNamesShort:this._get(t,"dayNamesShort"),dayNames:this._get(t,"dayNames"),monthNamesShort:this._get(t,"monthNamesShort"),monthNames:this._get(t,"monthNames")}},_formatDate:function(t,e,i,s){e||(t.currentDay=t.selectedDay,t.currentMonth=t.selectedMonth,t.currentYear=t.selectedYear);e=e?"object"==typeof e?e:this._daylightSavingAdjust(new Date(s,i,e)):this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));return this.formatDate(this._get(t,"dateFormat"),e,this._getFormatConfig(t))}}),V.fn.datepicker=function(t){if(!this.length)return this;V.datepicker.initialized||(V(document).on("mousedown",V.datepicker._checkExternalClick),V.datepicker.initialized=!0),0===V("#"+V.datepicker._mainDivId).length&&V("body").append(V.datepicker.dpDiv);var e=Array.prototype.slice.call(arguments,1);return"string"==typeof t&&("isDisabled"===t||"getDate"===t||"widget"===t)||"option"===t&&2===arguments.length&&"string"==typeof arguments[1]?V.datepicker["_"+t+"Datepicker"].apply(V.datepicker,[this[0]].concat(e)):this.each(function(){"string"==typeof t?V.datepicker["_"+t+"Datepicker"].apply(V.datepicker,[this].concat(e)):V.datepicker._attachDatepicker(this,t)})},V.datepicker=new st,V.datepicker.initialized=!1,V.datepicker.uuid=(new Date).getTime(),V.datepicker.version="1.13.1";V.datepicker,V.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var rt=!1;V(document).on("mouseup",function(){rt=!1});V.widget("ui.mouse",{version:"1.13.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(t){if(!0===V.data(t.target,e.widgetName+".preventClickEvent"))return V.removeData(t.target,e.widgetName+".preventClickEvent"),t.stopImmediatePropagation(),!1}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(t){if(!rt){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(t),this._mouseDownEvent=t;var e=this,i=1===t.which,s=!("string"!=typeof this.options.cancel||!t.target.nodeName)&&V(t.target).closest(this.options.cancel).length;return i&&!s&&this._mouseCapture(t)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=!1!==this._mouseStart(t),!this._mouseStarted)?(t.preventDefault(),!0):(!0===V.data(t.target,this.widgetName+".preventClickEvent")&&V.removeData(t.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return e._mouseMove(t)},this._mouseUpDelegate=function(t){return e._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),t.preventDefault(),rt=!0)):!0}},_mouseMove:function(t){if(this._mouseMoved){if(V.ui.ie&&(!document.documentMode||document.documentMode<9)&&!t.button)return this._mouseUp(t);if(!t.which)if(t.originalEvent.altKey||t.originalEvent.ctrlKey||t.originalEvent.metaKey||t.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(t)}return(t.which||t.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(t),t.preventDefault()):(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=!1!==this._mouseStart(this._mouseDownEvent,t),this._mouseStarted?this._mouseDrag(t):this._mouseUp(t)),!this._mouseStarted)},_mouseUp:function(t){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,t.target===this._mouseDownEvent.target&&V.data(t.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(t)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,rt=!1,t.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),V.ui.plugin={add:function(t,e,i){var s,n=V.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("position","absolute").appendTo(t.parent()).outerWidth(t.outerWidth()).outerHeight(t.outerHeight()).offset(t.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(t){var e=V.ui.safeActiveElement(this.document[0]);V(t.target).closest(e).length||V.ui.safeBlur(e)},_mouseStart:function(t){var e=this.options;return this.helper=this._createHelper(t),this._addClass(this.helper,"ui-draggable-dragging"),this._cacheHelperProportions(),V.ui.ddmanager&&(V.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=0i[2]&&(o=i[2]+this.offset.click.left),t.pageY-this.offset.click.top>i[3]&&(a=i[3]+this.offset.click.top)),s.grid&&(t=s.grid[1]?this.originalPageY+Math.round((a-this.originalPageY)/s.grid[1])*s.grid[1]:this.originalPageY,a=!i||t-this.offset.click.top>=i[1]||t-this.offset.click.top>i[3]?t:t-this.offset.click.top>=i[1]?t-s.grid[1]:t+s.grid[1],t=s.grid[0]?this.originalPageX+Math.round((o-this.originalPageX)/s.grid[0])*s.grid[0]:this.originalPageX,o=!i||t-this.offset.click.left>=i[0]||t-this.offset.click.left>i[2]?t:t-this.offset.click.left>=i[0]?t-s.grid[0]:t+s.grid[0]),"y"===s.axis&&(o=this.originalPageX),"x"===s.axis&&(a=this.originalPageY)),{top:a-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:n?0:this.offset.scroll.top),left:o-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:n?0:this.offset.scroll.left)}},_clear:function(){this._removeClass(this.helper,"ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_trigger:function(t,e,i){return i=i||this._uiHash(),V.ui.plugin.call(this,t,[e,i,this],!0),/^(drag|start|stop)/.test(t)&&(this.positionAbs=this._convertPositionTo("absolute"),i.offset=this.positionAbs),V.Widget.prototype._trigger.call(this,t,e,i)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),V.ui.plugin.add("draggable","connectToSortable",{start:function(e,t,i){var s=V.extend({},t,{item:i.element});i.sortables=[],V(i.options.connectToSortable).each(function(){var t=V(this).sortable("instance");t&&!t.options.disabled&&(i.sortables.push(t),t.refreshPositions(),t._trigger("activate",e,s))})},stop:function(e,t,i){var s=V.extend({},t,{item:i.element});i.cancelHelperRemoval=!1,V.each(i.sortables,function(){var t=this;t.isOver?(t.isOver=0,i.cancelHelperRemoval=!0,t.cancelHelperRemoval=!1,t._storedCSS={position:t.placeholder.css("position"),top:t.placeholder.css("top"),left:t.placeholder.css("left")},t._mouseStop(e),t.options.helper=t.options._helper):(t.cancelHelperRemoval=!0,t._trigger("deactivate",e,s))})},drag:function(i,s,n){V.each(n.sortables,function(){var t=!1,e=this;e.positionAbs=n.positionAbs,e.helperProportions=n.helperProportions,e.offset.click=n.offset.click,e._intersectsWith(e.containerCache)&&(t=!0,V.each(n.sortables,function(){return this.positionAbs=n.positionAbs,this.helperProportions=n.helperProportions,this.offset.click=n.offset.click,t=this!==e&&this._intersectsWith(this.containerCache)&&V.contains(e.element[0],this.element[0])?!1:t})),t?(e.isOver||(e.isOver=1,n._parent=s.helper.parent(),e.currentItem=s.helper.appendTo(e.element).data("ui-sortable-item",!0),e.options._helper=e.options.helper,e.options.helper=function(){return s.helper[0]},i.target=e.currentItem[0],e._mouseCapture(i,!0),e._mouseStart(i,!0,!0),e.offset.click.top=n.offset.click.top,e.offset.click.left=n.offset.click.left,e.offset.parent.left-=n.offset.parent.left-e.offset.parent.left,e.offset.parent.top-=n.offset.parent.top-e.offset.parent.top,n._trigger("toSortable",i),n.dropped=e.element,V.each(n.sortables,function(){this.refreshPositions()}),n.currentItem=n.element,e.fromOutside=n),e.currentItem&&(e._mouseDrag(i),s.position=e.position)):e.isOver&&(e.isOver=0,e.cancelHelperRemoval=!0,e.options._revert=e.options.revert,e.options.revert=!1,e._trigger("out",i,e._uiHash(e)),e._mouseStop(i,!0),e.options.revert=e.options._revert,e.options.helper=e.options._helper,e.placeholder&&e.placeholder.remove(),s.helper.appendTo(n._parent),n._refreshOffsets(i),s.position=n._generatePosition(i,!0),n._trigger("fromSortable",i),n.dropped=!1,V.each(n.sortables,function(){this.refreshPositions()}))})}}),V.ui.plugin.add("draggable","cursor",{start:function(t,e,i){var s=V("body"),i=i.options;s.css("cursor")&&(i._cursor=s.css("cursor")),s.css("cursor",i.cursor)},stop:function(t,e,i){i=i.options;i._cursor&&V("body").css("cursor",i._cursor)}}),V.ui.plugin.add("draggable","opacity",{start:function(t,e,i){e=V(e.helper),i=i.options;e.css("opacity")&&(i._opacity=e.css("opacity")),e.css("opacity",i.opacity)},stop:function(t,e,i){i=i.options;i._opacity&&V(e.helper).css("opacity",i._opacity)}}),V.ui.plugin.add("draggable","scroll",{start:function(t,e,i){i.scrollParentNotHidden||(i.scrollParentNotHidden=i.helper.scrollParent(!1)),i.scrollParentNotHidden[0]!==i.document[0]&&"HTML"!==i.scrollParentNotHidden[0].tagName&&(i.overflowOffset=i.scrollParentNotHidden.offset())},drag:function(t,e,i){var s=i.options,n=!1,o=i.scrollParentNotHidden[0],a=i.document[0];o!==a&&"HTML"!==o.tagName?(s.axis&&"x"===s.axis||(i.overflowOffset.top+o.offsetHeight-t.pageY
        ").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&&V(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){V(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,a=this;if(this.handles=o.handles||(V(".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=V(),this._addedHandles=V(),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]=V(this.handles[e]),this._on(this.handles[e],{mousedown:a._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=V(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(){a.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),a.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=V(this.handles[e])[0])!==t.target&&!V.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+=V(s.containment).scrollLeft()||0,i+=V(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=V(".ui-resizable-"+this.axis).css("cursor"),V("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(),V.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(V.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),V("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,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,l=this.originalPosition.top+this.originalSize.height,h=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&h&&(t.left=r-e.minWidth),s&&h&&(t.left=r-e.maxWidth),a&&i&&(t.top=l-e.minHeight),n&&i&&(t.top=l-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 V.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e,i){return V.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return V.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return V.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){V.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}}}),V.ui.plugin.add("resizable","animate",{stop:function(e){var i=V(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,a=n?0:i.sizeDiff.width,n={width:i.size.width-a,height:i.size.height-o},a=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(V.extend(n,o&&a?{top:o,left:a}:{}),{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&&V(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),V.ui.plugin.add("resizable","containment",{start:function(){var i,s,n=V(this).resizable("instance"),t=n.options,e=n.element,o=t.containment,a=o instanceof V?o.get(0):/parent/.test(o)?e.parent().get(0):o;a&&(n.containerElement=V(a),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:V(document),left:0,top:0,width:V(document).width(),height:V(document).height()||document.body.parentNode.scrollHeight}):(i=V(a),s=[],V(["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(a,"left")?a.scrollWidth:o,e=n._hasScroll(a)?a.scrollHeight:e,n.parentData={element:a,left:t.left,top:t.top,width:o,height:e}))},resize:function(t){var e=V(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.position,o=e._aspectRatio||t.shiftKey,a={top:0,left:0},r=e.containerElement,t=!0;r[0]!==document&&/static/.test(r.css("position"))&&(a=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-a.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-a.left:e.offset.left-s.left)),s=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-a.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=V(this).resizable("instance"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=V(t.helper),a=o.offset(),r=o.outerWidth()-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css("position"))&&V(this).css({left:a.left-s.left-i.left,width:r,height:o}),t._helper&&!e.animate&&/static/.test(n.css("position"))&&V(this).css({left:a.left-s.left-i.left,width:r,height:o})}}),V.ui.plugin.add("resizable","alsoResize",{start:function(){var t=V(this).resizable("instance").options;V(t.alsoResize).each(function(){var t=V(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=V(this).resizable("instance"),s=e.options,n=e.originalSize,o=e.originalPosition,a={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};V(s.alsoResize).each(function(){var t=V(this),s=V(this).data("ui-resizable-alsoresize"),n={},e=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];V.each(e,function(t,e){var i=(s[e]||0)+(a[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){V(this).removeData("ui-resizable-alsoresize")}}),V.ui.plugin.add("resizable","ghost",{start:function(){var t=V(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!==V.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=V(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=V(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),V.ui.plugin.add("resizable","grid",{resize:function(){var t,e=V(this).resizable("instance"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,a=e.axis,r="number"==typeof i.grid?[i.grid,i.grid]:i.grid,l=r[0]||1,h=r[1]||1,c=Math.round((s.width-n.width)/l)*l,u=Math.round((s.height-n.height)/h)*h,d=n.width+c,p=n.height+u,f=i.maxWidth&&i.maxWidthd,s=i.minHeight&&i.minHeight>p;i.grid=r,m&&(d+=l),s&&(p+=h),f&&(d-=l),g&&(p-=h),/^(se|s|e)$/.test(a)?(e.size.width=d,e.size.height=p):/^(ne)$/.test(a)?(e.size.width=d,e.size.height=p,e.position.top=o.top-u):/^(sw)$/.test(a)?(e.size.width=d,e.size.height=p,e.position.left=o.left-c):((p-h<=0||d-l<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0=+this.uiDialog.css("z-index")&&(this.uiDialog.css("z-index",s+1),i=!0),i&&!e&&this._trigger("focus",t),i},open:function(){var t=this;this._isOpen?this._moveToTop()&&this._focusTabbable():(this._isOpen=!0,this.opener=V(V.ui.safeActiveElement(this.document[0])),this._size(),this._position(),this._createOverlay(),this._moveToTop(null,!0),this.overlay&&this.overlay.css("z-index",this.uiDialog.css("z-index")-1),this._show(this.uiDialog,this.options.show,function(){t._focusTabbable(),t._trigger("focus")}),this._makeFocusTarget(),this._trigger("open"))},_focusTabbable:function(){var t=this._focusedElement;(t=!(t=!(t=!(t=!(t=t||this.element.find("[autofocus]")).length?this.element.find(":tabbable"):t).length?this.uiDialogButtonPane.find(":tabbable"):t).length?this.uiDialogTitlebarClose.filter(":tabbable"):t).length?this.uiDialog:t).eq(0).trigger("focus")},_restoreTabbableFocus:function(){var t=V.ui.safeActiveElement(this.document[0]);this.uiDialog[0]===t||V.contains(this.uiDialog[0],t)||this._focusTabbable()},_keepFocus:function(t){t.preventDefault(),this._restoreTabbableFocus(),this._delay(this._restoreTabbableFocus)},_createWrapper:function(){this.uiDialog=V("
        ").hide().attr({tabIndex:-1,role:"dialog"}).appendTo(this._appendTo()),this._addClass(this.uiDialog,"ui-dialog","ui-widget ui-widget-content ui-front"),this._on(this.uiDialog,{keydown:function(t){if(this.options.closeOnEscape&&!t.isDefaultPrevented()&&t.keyCode&&t.keyCode===V.ui.keyCode.ESCAPE)return t.preventDefault(),void this.close(t);var e,i,s;t.keyCode!==V.ui.keyCode.TAB||t.isDefaultPrevented()||(e=this.uiDialog.find(":tabbable"),i=e.first(),s=e.last(),t.target!==s[0]&&t.target!==this.uiDialog[0]||t.shiftKey?t.target!==i[0]&&t.target!==this.uiDialog[0]||!t.shiftKey||(this._delay(function(){s.trigger("focus")}),t.preventDefault()):(this._delay(function(){i.trigger("focus")}),t.preventDefault()))},mousedown:function(t){this._moveToTop(t)&&this._focusTabbable()}}),this.element.find("[aria-describedby]").length||this.uiDialog.attr({"aria-describedby":this.element.uniqueId().attr("id")})},_createTitlebar:function(){var t;this.uiDialogTitlebar=V("
        "),this._addClass(this.uiDialogTitlebar,"ui-dialog-titlebar","ui-widget-header ui-helper-clearfix"),this._on(this.uiDialogTitlebar,{mousedown:function(t){V(t.target).closest(".ui-dialog-titlebar-close")||this.uiDialog.trigger("focus")}}),this.uiDialogTitlebarClose=V("").button({label:V("").text(this.options.closeText).html(),icon:"ui-icon-closethick",showLabel:!1}).appendTo(this.uiDialogTitlebar),this._addClass(this.uiDialogTitlebarClose,"ui-dialog-titlebar-close"),this._on(this.uiDialogTitlebarClose,{click:function(t){t.preventDefault(),this.close(t)}}),t=V("").uniqueId().prependTo(this.uiDialogTitlebar),this._addClass(t,"ui-dialog-title"),this._title(t),this.uiDialogTitlebar.prependTo(this.uiDialog),this.uiDialog.attr({"aria-labelledby":t.attr("id")})},_title:function(t){this.options.title?t.text(this.options.title):t.html(" ")},_createButtonPane:function(){this.uiDialogButtonPane=V("
        "),this._addClass(this.uiDialogButtonPane,"ui-dialog-buttonpane","ui-widget-content ui-helper-clearfix"),this.uiButtonSet=V("
        ").appendTo(this.uiDialogButtonPane),this._addClass(this.uiButtonSet,"ui-dialog-buttonset"),this._createButtons()},_createButtons:function(){var s=this,t=this.options.buttons;this.uiDialogButtonPane.remove(),this.uiButtonSet.empty(),V.isEmptyObject(t)||Array.isArray(t)&&!t.length?this._removeClass(this.uiDialog,"ui-dialog-buttons"):(V.each(t,function(t,e){var i;e=V.extend({type:"button"},e="function"==typeof e?{click:e,text:t}:e),i=e.click,t={icon:e.icon,iconPosition:e.iconPosition,showLabel:e.showLabel,icons:e.icons,text:e.text},delete e.click,delete e.icon,delete e.iconPosition,delete e.showLabel,delete e.icons,"boolean"==typeof e.text&&delete e.text,V("",e).button(t).appendTo(s.uiButtonSet).on("click",function(){i.apply(s.element[0],arguments)})}),this._addClass(this.uiDialog,"ui-dialog-buttons"),this.uiDialogButtonPane.appendTo(this.uiDialog))},_makeDraggable:function(){var n=this,o=this.options;function a(t){return{position:t.position,offset:t.offset}}this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(t,e){n._addClass(V(this),"ui-dialog-dragging"),n._blockFrames(),n._trigger("dragStart",t,a(e))},drag:function(t,e){n._trigger("drag",t,a(e))},stop:function(t,e){var i=e.offset.left-n.document.scrollLeft(),s=e.offset.top-n.document.scrollTop();o.position={my:"left top",at:"left"+(0<=i?"+":"")+i+" top"+(0<=s?"+":"")+s,of:n.window},n._removeClass(V(this),"ui-dialog-dragging"),n._unblockFrames(),n._trigger("dragStop",t,a(e))}})},_makeResizable:function(){var n=this,o=this.options,t=o.resizable,e=this.uiDialog.css("position"),t="string"==typeof t?t:"n,e,s,w,se,sw,ne,nw";function a(t){return{originalPosition:t.originalPosition,originalSize:t.originalSize,position:t.position,size:t.size}}this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:o.maxWidth,maxHeight:o.maxHeight,minWidth:o.minWidth,minHeight:this._minHeight(),handles:t,start:function(t,e){n._addClass(V(this),"ui-dialog-resizing"),n._blockFrames(),n._trigger("resizeStart",t,a(e))},resize:function(t,e){n._trigger("resize",t,a(e))},stop:function(t,e){var i=n.uiDialog.offset(),s=i.left-n.document.scrollLeft(),i=i.top-n.document.scrollTop();o.height=n.uiDialog.height(),o.width=n.uiDialog.width(),o.position={my:"left top",at:"left"+(0<=s?"+":"")+s+" top"+(0<=i?"+":"")+i,of:n.window},n._removeClass(V(this),"ui-dialog-resizing"),n._unblockFrames(),n._trigger("resizeStop",t,a(e))}}).css("position",e)},_trackFocus:function(){this._on(this.widget(),{focusin:function(t){this._makeFocusTarget(),this._focusedElement=V(t.target)}})},_makeFocusTarget:function(){this._untrackInstance(),this._trackingInstances().unshift(this)},_untrackInstance:function(){var t=this._trackingInstances(),e=V.inArray(this,t);-1!==e&&t.splice(e,1)},_trackingInstances:function(){var t=this.document.data("ui-dialog-instances");return t||this.document.data("ui-dialog-instances",t=[]),t},_minHeight:function(){var t=this.options;return"auto"===t.height?t.minHeight:Math.min(t.minHeight,t.height)},_position:function(){var t=this.uiDialog.is(":visible");t||this.uiDialog.show(),this.uiDialog.position(this.options.position),t||this.uiDialog.hide()},_setOptions:function(t){var i=this,s=!1,n={};V.each(t,function(t,e){i._setOption(t,e),t in i.sizeRelatedOptions&&(s=!0),t in i.resizableRelatedOptions&&(n[t]=e)}),s&&(this._size(),this._position()),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option",n)},_setOption:function(t,e){var i,s=this.uiDialog;"disabled"!==t&&(this._super(t,e),"appendTo"===t&&this.uiDialog.appendTo(this._appendTo()),"buttons"===t&&this._createButtons(),"closeText"===t&&this.uiDialogTitlebarClose.button({label:V("").text(""+this.options.closeText).html()}),"draggable"===t&&((i=s.is(":data(ui-draggable)"))&&!e&&s.draggable("destroy"),!i&&e&&this._makeDraggable()),"position"===t&&this._position(),"resizable"===t&&((i=s.is(":data(ui-resizable)"))&&!e&&s.resizable("destroy"),i&&"string"==typeof e&&s.resizable("option","handles",e),i||!1===e||this._makeResizable()),"title"===t&&this._title(this.uiDialogTitlebar.find(".ui-dialog-title")))},_size:function(){var t,e,i,s=this.options;this.element.show().css({width:"auto",minHeight:0,maxHeight:"none",height:0}),s.minWidth>s.width&&(s.width=s.minWidth),t=this.uiDialog.css({height:"auto",width:s.width}).outerHeight(),e=Math.max(0,s.minHeight-t),i="number"==typeof s.maxHeight?Math.max(0,s.maxHeight-t):"none","auto"===s.height?this.element.css({minHeight:e,maxHeight:i,height:"auto"}):this.element.height(Math.max(0,s.height-t)),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())},_blockFrames:function(){this.iframeBlocks=this.document.find("iframe").map(function(){var t=V(this);return V("
        ").css({position:"absolute",width:t.outerWidth(),height:t.outerHeight()}).appendTo(t.parent()).offset(t.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_allowInteraction:function(t){return!!V(t.target).closest(".ui-dialog").length||!!V(t.target).closest(".ui-datepicker").length},_createOverlay:function(){var i,s;this.options.modal&&(i=V.fn.jquery.substring(0,4),s=!0,this._delay(function(){s=!1}),this.document.data("ui-dialog-overlays")||this.document.on("focusin.ui-dialog",function(t){var e;s||((e=this._trackingInstances()[0])._allowInteraction(t)||(t.preventDefault(),e._focusTabbable(),"3.4."!==i&&"3.5."!==i||e._delay(e._restoreTabbableFocus)))}.bind(this)),this.overlay=V("
        ").appendTo(this._appendTo()),this._addClass(this.overlay,null,"ui-widget-overlay ui-front"),this._on(this.overlay,{mousedown:"_keepFocus"}),this.document.data("ui-dialog-overlays",(this.document.data("ui-dialog-overlays")||0)+1))},_destroyOverlay:function(){var t;this.options.modal&&this.overlay&&((t=this.document.data("ui-dialog-overlays")-1)?this.document.data("ui-dialog-overlays",t):(this.document.off("focusin.ui-dialog"),this.document.removeData("ui-dialog-overlays")),this.overlay.remove(),this.overlay=null)}}),!1!==V.uiBackCompat&&V.widget("ui.dialog",V.ui.dialog,{options:{dialogClass:""},_createWrapper:function(){this._super(),this.uiDialog.addClass(this.options.dialogClass)},_setOption:function(t,e){"dialogClass"===t&&this.uiDialog.removeClass(this.options.dialogClass).addClass(e),this._superApply(arguments)}});V.ui.dialog;function lt(t,e,i){return e<=t&&t").appendTo(this.element),this._addClass(this.valueDiv,"ui-progressbar-value","ui-widget-header"),this._refreshValue()},_destroy:function(){this.element.removeAttr("role aria-valuemin aria-valuemax aria-valuenow"),this.valueDiv.remove()},value:function(t){if(void 0===t)return this.options.value;this.options.value=this._constrainedValue(t),this._refreshValue()},_constrainedValue:function(t){return void 0===t&&(t=this.options.value),this.indeterminate=!1===t,"number"!=typeof t&&(t=0),!this.indeterminate&&Math.min(this.options.max,Math.max(this.min,t))},_setOptions:function(t){var e=t.value;delete t.value,this._super(t),this.options.value=this._constrainedValue(e),this._refreshValue()},_setOption:function(t,e){"max"===t&&(e=Math.max(this.min,e)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t),this._toggleClass(null,"ui-state-disabled",!!t)},_percentage:function(){return this.indeterminate?100:100*(this.options.value-this.min)/(this.options.max-this.min)},_refreshValue:function(){var t=this.options.value,e=this._percentage();this.valueDiv.toggle(this.indeterminate||t>this.min).width(e.toFixed(0)+"%"),this._toggleClass(this.valueDiv,"ui-progressbar-complete",null,t===this.options.max)._toggleClass("ui-progressbar-indeterminate",null,this.indeterminate),this.indeterminate?(this.element.removeAttr("aria-valuenow"),this.overlayDiv||(this.overlayDiv=V("
        ").appendTo(this.valueDiv),this._addClass(this.overlayDiv,"ui-progressbar-overlay"))):(this.element.attr({"aria-valuemax":this.options.max,"aria-valuenow":t}),this.overlayDiv&&(this.overlayDiv.remove(),this.overlayDiv=null)),this.oldValue!==t&&(this.oldValue=t,this._trigger("change")),t===this.options.max&&this._trigger("complete")}}),V.widget("ui.selectable",V.ui.mouse,{version:"1.13.1",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch",selected:null,selecting:null,start:null,stop:null,unselected:null,unselecting:null},_create:function(){var i=this;this._addClass("ui-selectable"),this.dragged=!1,this.refresh=function(){i.elementPos=V(i.element[0]).offset(),i.selectees=V(i.options.filter,i.element[0]),i._addClass(i.selectees,"ui-selectee"),i.selectees.each(function(){var t=V(this),e=t.offset(),e={left:e.left-i.elementPos.left,top:e.top-i.elementPos.top};V.data(this,"selectable-item",{element:this,$element:t,left:e.left,top:e.top,right:e.left+t.outerWidth(),bottom:e.top+t.outerHeight(),startselected:!1,selected:t.hasClass("ui-selected"),selecting:t.hasClass("ui-selecting"),unselecting:t.hasClass("ui-unselecting")})})},this.refresh(),this._mouseInit(),this.helper=V("
        "),this._addClass(this.helper,"ui-selectable-helper")},_destroy:function(){this.selectees.removeData("selectable-item"),this._mouseDestroy()},_mouseStart:function(i){var s=this,t=this.options;this.opos=[i.pageX,i.pageY],this.elementPos=V(this.element[0]).offset(),this.options.disabled||(this.selectees=V(t.filter,this.element[0]),this._trigger("start",i),V(t.appendTo).append(this.helper),this.helper.css({left:i.pageX,top:i.pageY,width:0,height:0}),t.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var t=V.data(this,"selectable-item");t.startselected=!0,i.metaKey||i.ctrlKey||(s._removeClass(t.$element,"ui-selected"),t.selected=!1,s._addClass(t.$element,"ui-unselecting"),t.unselecting=!0,s._trigger("unselecting",i,{unselecting:t.element}))}),V(i.target).parents().addBack().each(function(){var t,e=V.data(this,"selectable-item");if(e)return t=!i.metaKey&&!i.ctrlKey||!e.$element.hasClass("ui-selected"),s._removeClass(e.$element,t?"ui-unselecting":"ui-selected")._addClass(e.$element,t?"ui-selecting":"ui-unselecting"),e.unselecting=!t,e.selecting=t,(e.selected=t)?s._trigger("selecting",i,{selecting:e.element}):s._trigger("unselecting",i,{unselecting:e.element}),!1}))},_mouseDrag:function(s){if(this.dragged=!0,!this.options.disabled){var t,n=this,o=this.options,a=this.opos[0],r=this.opos[1],l=s.pageX,h=s.pageY;return ll||i.righth||i.bottoma&&i.rightr&&i.bottom",options:{appendTo:null,classes:{"ui-selectmenu-button-open":"ui-corner-top","ui-selectmenu-button-closed":"ui-corner-all"},disabled:null,icons:{button:"ui-icon-triangle-1-s"},position:{my:"left top",at:"left bottom",collision:"none"},width:!1,change:null,close:null,focus:null,open:null,select:null},_create:function(){var t=this.element.uniqueId().attr("id");this.ids={element:t,button:t+"-button",menu:t+"-menu"},this._drawButton(),this._drawMenu(),this._bindFormResetHandler(),this._rendered=!1,this.menuItems=V()},_drawButton:function(){var t,e=this,i=this._parseOption(this.element.find("option:selected"),this.element[0].selectedIndex);this.labels=this.element.labels().attr("for",this.ids.button),this._on(this.labels,{click:function(t){this.button.trigger("focus"),t.preventDefault()}}),this.element.hide(),this.button=V("",{tabindex:this.options.disabled?-1:0,id:this.ids.button,role:"combobox","aria-expanded":"false","aria-autocomplete":"list","aria-owns":this.ids.menu,"aria-haspopup":"true",title:this.element.attr("title")}).insertAfter(this.element),this._addClass(this.button,"ui-selectmenu-button ui-selectmenu-button-closed","ui-button ui-widget"),t=V("").appendTo(this.button),this._addClass(t,"ui-selectmenu-icon","ui-icon "+this.options.icons.button),this.buttonItem=this._renderButtonItem(i).appendTo(this.button),!1!==this.options.width&&this._resizeButton(),this._on(this.button,this._buttonEvents),this.button.one("focusin",function(){e._rendered||e._refreshMenu()})},_drawMenu:function(){var i=this;this.menu=V("
          ",{"aria-hidden":"true","aria-labelledby":this.ids.button,id:this.ids.menu}),this.menuWrap=V("
          ").append(this.menu),this._addClass(this.menuWrap,"ui-selectmenu-menu","ui-front"),this.menuWrap.appendTo(this._appendTo()),this.menuInstance=this.menu.menu({classes:{"ui-menu":"ui-corner-bottom"},role:"listbox",select:function(t,e){t.preventDefault(),i._setSelection(),i._select(e.item.data("ui-selectmenu-item"),t)},focus:function(t,e){e=e.item.data("ui-selectmenu-item");null!=i.focusIndex&&e.index!==i.focusIndex&&(i._trigger("focus",t,{item:e}),i.isOpen||i._select(e,t)),i.focusIndex=e.index,i.button.attr("aria-activedescendant",i.menuItems.eq(e.index).attr("id"))}}).menu("instance"),this.menuInstance._off(this.menu,"mouseleave"),this.menuInstance._closeOnDocumentClick=function(){return!1},this.menuInstance._isDivider=function(){return!1}},refresh:function(){this._refreshMenu(),this.buttonItem.replaceWith(this.buttonItem=this._renderButtonItem(this._getSelectedItem().data("ui-selectmenu-item")||{})),null===this.options.width&&this._resizeButton()},_refreshMenu:function(){var t=this.element.find("option");this.menu.empty(),this._parseOptions(t),this._renderMenu(this.menu,this.items),this.menuInstance.refresh(),this.menuItems=this.menu.find("li").not(".ui-selectmenu-optgroup").find(".ui-menu-item-wrapper"),this._rendered=!0,t.length&&(t=this._getSelectedItem(),this.menuInstance.focus(null,t),this._setAria(t.data("ui-selectmenu-item")),this._setOption("disabled",this.element.prop("disabled")))},open:function(t){this.options.disabled||(this._rendered?(this._removeClass(this.menu.find(".ui-state-active"),null,"ui-state-active"),this.menuInstance.focus(null,this._getSelectedItem())):this._refreshMenu(),this.menuItems.length&&(this.isOpen=!0,this._toggleAttr(),this._resizeMenu(),this._position(),this._on(this.document,this._documentClick),this._trigger("open",t)))},_position:function(){this.menuWrap.position(V.extend({of:this.button},this.options.position))},close:function(t){this.isOpen&&(this.isOpen=!1,this._toggleAttr(),this.range=null,this._off(this.document),this._trigger("close",t))},widget:function(){return this.button},menuWidget:function(){return this.menu},_renderButtonItem:function(t){var e=V("");return this._setText(e,t.label),this._addClass(e,"ui-selectmenu-text"),e},_renderMenu:function(s,t){var n=this,o="";V.each(t,function(t,e){var i;e.optgroup!==o&&(i=V("
        • ",{text:e.optgroup}),n._addClass(i,"ui-selectmenu-optgroup","ui-menu-divider"+(e.element.parent("optgroup").prop("disabled")?" ui-state-disabled":"")),i.appendTo(s),o=e.optgroup),n._renderItemData(s,e)})},_renderItemData:function(t,e){return this._renderItem(t,e).data("ui-selectmenu-item",e)},_renderItem:function(t,e){var i=V("
        • "),s=V("
          ",{title:e.element.attr("title")});return e.disabled&&this._addClass(i,null,"ui-state-disabled"),this._setText(s,e.label),i.append(s).appendTo(t)},_setText:function(t,e){e?t.text(e):t.html(" ")},_move:function(t,e){var i,s=".ui-menu-item";this.isOpen?i=this.menuItems.eq(this.focusIndex).parent("li"):(i=this.menuItems.eq(this.element[0].selectedIndex).parent("li"),s+=":not(.ui-state-disabled)"),(s="first"===t||"last"===t?i["first"===t?"prevAll":"nextAll"](s).eq(-1):i[t+"All"](s).eq(0)).length&&this.menuInstance.focus(e,s)},_getSelectedItem:function(){return this.menuItems.eq(this.element[0].selectedIndex).parent("li")},_toggle:function(t){this[this.isOpen?"close":"open"](t)},_setSelection:function(){var t;this.range&&(window.getSelection?((t=window.getSelection()).removeAllRanges(),t.addRange(this.range)):this.range.select(),this.button.focus())},_documentClick:{mousedown:function(t){this.isOpen&&(V(t.target).closest(".ui-selectmenu-menu, #"+V.escapeSelector(this.ids.button)).length||this.close(t))}},_buttonEvents:{mousedown:function(){var t;window.getSelection?(t=window.getSelection()).rangeCount&&(this.range=t.getRangeAt(0)):this.range=document.selection.createRange()},click:function(t){this._setSelection(),this._toggle(t)},keydown:function(t){var e=!0;switch(t.keyCode){case V.ui.keyCode.TAB:case V.ui.keyCode.ESCAPE:this.close(t),e=!1;break;case V.ui.keyCode.ENTER:this.isOpen&&this._selectFocusedItem(t);break;case V.ui.keyCode.UP:t.altKey?this._toggle(t):this._move("prev",t);break;case V.ui.keyCode.DOWN:t.altKey?this._toggle(t):this._move("next",t);break;case V.ui.keyCode.SPACE:this.isOpen?this._selectFocusedItem(t):this._toggle(t);break;case V.ui.keyCode.LEFT:this._move("prev",t);break;case V.ui.keyCode.RIGHT:this._move("next",t);break;case V.ui.keyCode.HOME:case V.ui.keyCode.PAGE_UP:this._move("first",t);break;case V.ui.keyCode.END:case V.ui.keyCode.PAGE_DOWN:this._move("last",t);break;default:this.menu.trigger(t),e=!1}e&&t.preventDefault()}},_selectFocusedItem:function(t){var e=this.menuItems.eq(this.focusIndex).parent("li");e.hasClass("ui-state-disabled")||this._select(e.data("ui-selectmenu-item"),t)},_select:function(t,e){var i=this.element[0].selectedIndex;this.element[0].selectedIndex=t.index,this.buttonItem.replaceWith(this.buttonItem=this._renderButtonItem(t)),this._setAria(t),this._trigger("select",e,{item:t}),t.index!==i&&this._trigger("change",e,{item:t}),this.close(e)},_setAria:function(t){t=this.menuItems.eq(t.index).attr("id");this.button.attr({"aria-labelledby":t,"aria-activedescendant":t}),this.menu.attr("aria-activedescendant",t)},_setOption:function(t,e){var i;"icons"===t&&(i=this.button.find("span.ui-icon"),this._removeClass(i,null,this.options.icons.button)._addClass(i,null,e.button)),this._super(t,e),"appendTo"===t&&this.menuWrap.appendTo(this._appendTo()),"width"===t&&this._resizeButton()},_setOptionDisabled:function(t){this._super(t),this.menuInstance.option("disabled",t),this.button.attr("aria-disabled",t),this._toggleClass(this.button,null,"ui-state-disabled",t),this.element.prop("disabled",t),t?(this.button.attr("tabindex",-1),this.close()):this.button.attr("tabindex",0)},_appendTo:function(){var t=this.options.appendTo;return t=!(t=!(t=t&&(t.jquery||t.nodeType?V(t):this.document.find(t).eq(0)))||!t[0]?this.element.closest(".ui-front, dialog"):t).length?this.document[0].body:t},_toggleAttr:function(){this.button.attr("aria-expanded",this.isOpen),this._removeClass(this.button,"ui-selectmenu-button-"+(this.isOpen?"closed":"open"))._addClass(this.button,"ui-selectmenu-button-"+(this.isOpen?"open":"closed"))._toggleClass(this.menuWrap,"ui-selectmenu-open",null,this.isOpen),this.menu.attr("aria-hidden",!this.isOpen)},_resizeButton:function(){var t=this.options.width;!1!==t?(null===t&&(t=this.element.show().outerWidth(),this.element.hide()),this.button.outerWidth(t)):this.button.css("width","")},_resizeMenu:function(){this.menu.outerWidth(Math.max(this.button.outerWidth(),this.menu.width("").outerWidth()+1))},_getCreateOptions:function(){var t=this._super();return t.disabled=this.element.prop("disabled"),t},_parseOptions:function(t){var i=this,s=[];t.each(function(t,e){e.hidden||s.push(i._parseOption(V(e),t))}),this.items=s},_parseOption:function(t,e){var i=t.parent("optgroup");return{element:t,index:e,value:t.val(),label:t.text(),optgroup:i.attr("label")||"",disabled:i.prop("disabled")||t.prop("disabled")}},_destroy:function(){this._unbindFormResetHandler(),this.menuWrap.remove(),this.button.remove(),this.element.show(),this.element.removeUniqueId(),this.labels.attr("for",this.ids.element)}}]),V.widget("ui.slider",V.ui.mouse,{version:"1.13.1",widgetEventPrefix:"slide",options:{animate:!1,classes:{"ui-slider":"ui-corner-all","ui-slider-handle":"ui-corner-all","ui-slider-range":"ui-corner-all ui-widget-header"},distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null,change:null,slide:null,start:null,stop:null},numPages:5,_create:function(){this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this._calculateNewMax(),this._addClass("ui-slider ui-slider-"+this.orientation,"ui-widget ui-widget-content"),this._refresh(),this._animateOff=!1},_refresh:function(){this._createRange(),this._createHandles(),this._setupEvents(),this._refreshValue()},_createHandles:function(){var t,e=this.options,i=this.element.find(".ui-slider-handle"),s=[],n=e.values&&e.values.length||1;for(i.length>n&&(i.slice(n).remove(),i=i.slice(0,n)),t=i.length;t");this.handles=i.add(V(s.join("")).appendTo(this.element)),this._addClass(this.handles,"ui-slider-handle","ui-state-default"),this.handle=this.handles.eq(0),this.handles.each(function(t){V(this).data("ui-slider-handle-index",t).attr("tabIndex",0)})},_createRange:function(){var t=this.options;t.range?(!0===t.range&&(t.values?t.values.length&&2!==t.values.length?t.values=[t.values[0],t.values[0]]:Array.isArray(t.values)&&(t.values=t.values.slice(0)):t.values=[this._valueMin(),this._valueMin()]),this.range&&this.range.length?(this._removeClass(this.range,"ui-slider-range-min ui-slider-range-max"),this.range.css({left:"",bottom:""})):(this.range=V("
          ").appendTo(this.element),this._addClass(this.range,"ui-slider-range")),"min"!==t.range&&"max"!==t.range||this._addClass(this.range,"ui-slider-range-"+t.range)):(this.range&&this.range.remove(),this.range=null)},_setupEvents:function(){this._off(this.handles),this._on(this.handles,this._handleEvents),this._hoverable(this.handles),this._focusable(this.handles)},_destroy:function(){this.handles.remove(),this.range&&this.range.remove(),this._mouseDestroy()},_mouseCapture:function(t){var i,s,n,o,e,a,r=this,l=this.options;return!l.disabled&&(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),a={x:t.pageX,y:t.pageY},i=this._normValueFromMouse(a),s=this._valueMax()-this._valueMin()+1,this.handles.each(function(t){var e=Math.abs(i-r.values(t));(e=this._valueMax())return this._valueMax();var e=0=e&&(t+=0this.options.max&&(t-=i),this.max=parseFloat(t.toFixed(this._precision()))},_precision:function(){var t=this._precisionOf(this.options.step);return t=null!==this.options.min?Math.max(t,this._precisionOf(this.options.min)):t},_precisionOf:function(t){var e=t.toString(),t=e.indexOf(".");return-1===t?0:e.length-t-1},_valueMin:function(){return this.options.min},_valueMax:function(){return this.max},_refreshRange:function(t){"vertical"===t&&this.range.css({width:"",left:""}),"horizontal"===t&&this.range.css({height:"",bottom:""})},_refreshValue:function(){var e,i,t,s,n,o=this.options.range,a=this.options,r=this,l=!this._animateOff&&a.animate,h={};this._hasMultipleValues()?this.handles.each(function(t){i=(r.values(t)-r._valueMin())/(r._valueMax()-r._valueMin())*100,h["horizontal"===r.orientation?"left":"bottom"]=i+"%",V(this).stop(1,1)[l?"animate":"css"](h,a.animate),!0===r.options.range&&("horizontal"===r.orientation?(0===t&&r.range.stop(1,1)[l?"animate":"css"]({left:i+"%"},a.animate),1===t&&r.range[l?"animate":"css"]({width:i-e+"%"},{queue:!1,duration:a.animate})):(0===t&&r.range.stop(1,1)[l?"animate":"css"]({bottom:i+"%"},a.animate),1===t&&r.range[l?"animate":"css"]({height:i-e+"%"},{queue:!1,duration:a.animate}))),e=i}):(t=this.value(),s=this._valueMin(),n=this._valueMax(),i=n!==s?(t-s)/(n-s)*100:0,h["horizontal"===this.orientation?"left":"bottom"]=i+"%",this.handle.stop(1,1)[l?"animate":"css"](h,a.animate),"min"===o&&"horizontal"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({width:i+"%"},a.animate),"max"===o&&"horizontal"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({width:100-i+"%"},a.animate),"min"===o&&"vertical"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({height:i+"%"},a.animate),"max"===o&&"vertical"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({height:100-i+"%"},a.animate))},_handleEvents:{keydown:function(t){var e,i,s,n=V(t.target).data("ui-slider-handle-index");switch(t.keyCode){case V.ui.keyCode.HOME:case V.ui.keyCode.END:case V.ui.keyCode.PAGE_UP:case V.ui.keyCode.PAGE_DOWN:case V.ui.keyCode.UP:case V.ui.keyCode.RIGHT:case V.ui.keyCode.DOWN:case V.ui.keyCode.LEFT:if(t.preventDefault(),!this._keySliding&&(this._keySliding=!0,this._addClass(V(t.target),null,"ui-state-active"),!1===this._start(t,n)))return}switch(s=this.options.step,e=i=this._hasMultipleValues()?this.values(n):this.value(),t.keyCode){case V.ui.keyCode.HOME:i=this._valueMin();break;case V.ui.keyCode.END:i=this._valueMax();break;case V.ui.keyCode.PAGE_UP:i=this._trimAlignValue(e+(this._valueMax()-this._valueMin())/this.numPages);break;case V.ui.keyCode.PAGE_DOWN:i=this._trimAlignValue(e-(this._valueMax()-this._valueMin())/this.numPages);break;case V.ui.keyCode.UP:case V.ui.keyCode.RIGHT:if(e===this._valueMax())return;i=this._trimAlignValue(e+s);break;case V.ui.keyCode.DOWN:case V.ui.keyCode.LEFT:if(e===this._valueMin())return;i=this._trimAlignValue(e-s)}this._slide(t,n,i)},keyup:function(t){var e=V(t.target).data("ui-slider-handle-index");this._keySliding&&(this._keySliding=!1,this._stop(t,e),this._change(t,e),this._removeClass(V(t.target),null,"ui-state-active"))}}}),V.widget("ui.sortable",V.ui.mouse,{version:"1.13.1",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_isOverAxis:function(t,e,i){return e<=t&&t*{ cursor: "+o.cursor+" !important; }").appendTo(n)),o.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",o.zIndex)),o.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",o.opacity)),this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",t,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!i)for(s=this.containers.length-1;0<=s;s--)this.containers[s]._trigger("activate",t,this._uiHash(this));return V.ui.ddmanager&&(V.ui.ddmanager.current=this),V.ui.ddmanager&&!o.dropBehaviour&&V.ui.ddmanager.prepareOffsets(this,t),this.dragging=!0,this._addClass(this.helper,"ui-sortable-helper"),this.helper.parent().is(this.appendTo)||(this.helper.detach().appendTo(this.appendTo),this.offset.parent=this._getParentOffset()),this.position=this.originalPosition=this._generatePosition(t),this.originalPageX=t.pageX,this.originalPageY=t.pageY,this.lastPositionAbs=this.positionAbs=this._convertPositionTo("absolute"),this._mouseDrag(t),!0},_scroll:function(t){var e=this.options,i=!1;return this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-t.pageYt[this.floating?"width":"height"]?h&&c:o",i.document[0]);return i._addClass(t,"ui-sortable-placeholder",s||i.currentItem[0].className)._removeClass(t,"ui-sortable-helper"),"tbody"===n?i._createTrPlaceholder(i.currentItem.find("tr").eq(0),V("",i.document[0]).appendTo(t)):"tr"===n?i._createTrPlaceholder(i.currentItem,t):"img"===n&&t.attr("src",i.currentItem.attr("src")),s||t.css("visibility","hidden"),t},update:function(t,e){s&&!o.forcePlaceholderSize||(e.height()&&(!o.forcePlaceholderSize||"tbody"!==n&&"tr"!==n)||e.height(i.currentItem.innerHeight()-parseInt(i.currentItem.css("paddingTop")||0,10)-parseInt(i.currentItem.css("paddingBottom")||0,10)),e.width()||e.width(i.currentItem.innerWidth()-parseInt(i.currentItem.css("paddingLeft")||0,10)-parseInt(i.currentItem.css("paddingRight")||0,10)))}}),i.placeholder=V(o.placeholder.element.call(i.element,i.currentItem)),i.currentItem.after(i.placeholder),o.placeholder.update(i,i.placeholder)},_createTrPlaceholder:function(t,e){var i=this;t.children().each(function(){V(" ",i.document[0]).attr("colspan",V(this).attr("colspan")||1).appendTo(e)})},_contactContainers:function(t){for(var e,i,s,n,o,a,r,l,h,c=null,u=null,d=this.containers.length-1;0<=d;d--)V.contains(this.currentItem[0],this.containers[d].element[0])||(this._intersectsWith(this.containers[d].containerCache)?c&&V.contains(this.containers[d].element[0],c.element[0])||(c=this.containers[d],u=d):this.containers[d].containerCache.over&&(this.containers[d]._trigger("out",t,this._uiHash(this)),this.containers[d].containerCache.over=0));if(c)if(1===this.containers.length)this.containers[u].containerCache.over||(this.containers[u]._trigger("over",t,this._uiHash(this)),this.containers[u].containerCache.over=1);else{for(i=1e4,s=null,n=(l=c.floating||this._isFloating(this.currentItem))?"left":"top",o=l?"width":"height",h=l?"pageX":"pageY",e=this.items.length-1;0<=e;e--)V.contains(this.containers[u].element[0],this.items[e].item[0])&&this.items[e].item[0]!==this.currentItem[0]&&(a=this.items[e].item.offset()[n],r=!1,t[h]-a>this.items[e][o]/2&&(r=!0),Math.abs(t[h]-a)this.containment[2]&&(i=this.containment[2]+this.offset.click.left),t.pageY-this.offset.click.top>this.containment[3]&&(s=this.containment[3]+this.offset.click.top)),e.grid&&(t=this.originalPageY+Math.round((s-this.originalPageY)/e.grid[1])*e.grid[1],s=!this.containment||t-this.offset.click.top>=this.containment[1]&&t-this.offset.click.top<=this.containment[3]?t:t-this.offset.click.top>=this.containment[1]?t-e.grid[1]:t+e.grid[1],t=this.originalPageX+Math.round((i-this.originalPageX)/e.grid[0])*e.grid[0],i=!this.containment||t-this.offset.click.left>=this.containment[0]&&t-this.offset.click.left<=this.containment[2]?t:t-this.offset.click.left>=this.containment[0]?t-e.grid[0]:t+e.grid[0])),{top:s-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():o?0:n.scrollTop()),left:i-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():o?0:n.scrollLeft())}},_rearrange:function(t,e,i,s){i?i[0].appendChild(this.placeholder[0]):e.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?e.item[0]:e.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var n=this.counter;this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:function(t,e){this.reverting=!1;var i,s=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(i in this._storedCSS)"auto"!==this._storedCSS[i]&&"static"!==this._storedCSS[i]||(this._storedCSS[i]="");this.currentItem.css(this._storedCSS),this._removeClass(this.currentItem,"ui-sortable-helper")}else this.currentItem.show();function n(e,i,s){return function(t){s._trigger(e,t,i._uiHash(i))}}for(this.fromOutside&&!e&&s.push(function(t){this._trigger("receive",t,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||e||s.push(function(t){this._trigger("update",t,this._uiHash())}),this!==this.currentContainer&&(e||(s.push(function(t){this._trigger("remove",t,this._uiHash())}),s.push(function(e){return function(t){e._trigger("receive",t,this._uiHash(this))}}.call(this,this.currentContainer)),s.push(function(e){return function(t){e._trigger("update",t,this._uiHash(this))}}.call(this,this.currentContainer)))),i=this.containers.length-1;0<=i;i--)e||s.push(n("deactivate",this,this.containers[i])),this.containers[i].containerCache.over&&(s.push(n("out",this,this.containers[i])),this.containers[i].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,e||this._trigger("beforeStop",t,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.cancelHelperRemoval||(this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null),!e){for(i=0;i",widgetEventPrefix:"spin",options:{classes:{"ui-spinner":"ui-corner-all","ui-spinner-down":"ui-corner-br","ui-spinner-up":"ui-corner-tr"},culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:!0,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._setOption("max",this.options.max),this._setOption("min",this.options.min),this._setOption("step",this.options.step),""!==this.value()&&this._value(this.element.val(),!0),this._draw(),this._on(this._events),this._refresh(),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_getCreateOptions:function(){var s=this._super(),n=this.element;return V.each(["min","max","step"],function(t,e){var i=n.attr(e);null!=i&&i.length&&(s[e]=i)}),s},_events:{keydown:function(t){this._start(t)&&this._keydown(t)&&t.preventDefault()},keyup:"_stop",focus:function(){this.previous=this.element.val()},blur:function(t){this.cancelBlur?delete this.cancelBlur:(this._stop(),this._refresh(),this.previous!==this.element.val()&&this._trigger("change",t))},mousewheel:function(t,e){var i=V.ui.safeActiveElement(this.document[0]);if(this.element[0]===i&&e){if(!this.spinning&&!this._start(t))return!1;this._spin((0").parent().append("")},_draw:function(){this._enhance(),this._addClass(this.uiSpinner,"ui-spinner","ui-widget ui-widget-content"),this._addClass("ui-spinner-input"),this.element.attr("role","spinbutton"),this.buttons=this.uiSpinner.children("a").attr("tabIndex",-1).attr("aria-hidden",!0).button({classes:{"ui-button":""}}),this._removeClass(this.buttons,"ui-corner-all"),this._addClass(this.buttons.first(),"ui-spinner-button ui-spinner-up"),this._addClass(this.buttons.last(),"ui-spinner-button ui-spinner-down"),this.buttons.first().button({icon:this.options.icons.up,showLabel:!1}),this.buttons.last().button({icon:this.options.icons.down,showLabel:!1}),this.buttons.height()>Math.ceil(.5*this.uiSpinner.height())&&0e.max?e.max:null!==e.min&&t"},_buttonHtml:function(){return""}});var ct;V.ui.spinner;V.widget("ui.tabs",{version:"1.13.1",delay:300,options:{active:null,classes:{"ui-tabs":"ui-corner-all","ui-tabs-nav":"ui-corner-all","ui-tabs-panel":"ui-corner-bottom","ui-tabs-tab":"ui-corner-top"},collapsible:!1,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_isLocal:(ct=/#.*$/,function(t){var e=t.href.replace(ct,""),i=location.href.replace(ct,"");try{e=decodeURIComponent(e)}catch(t){}try{i=decodeURIComponent(i)}catch(t){}return 1?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var t=this.options,e=this.tablist.children(":has(a[href])");t.disabled=V.map(e.filter(".ui-state-disabled"),function(t){return e.index(t)}),this._processTabs(),!1!==t.active&&this.anchors.length?this.active.length&&!V.contains(this.tablist[0],this.active[0])?this.tabs.length===t.disabled.length?(t.active=!1,this.active=V()):this._activate(this._findNextTab(Math.max(0,t.active-1),!1)):t.active=this.tabs.index(this.active):(t.active=!1,this.active=V()),this._refresh()},_refresh:function(){this._setOptionDisabled(this.options.disabled),this._setupEvents(this.options.event),this._setupHeightStyle(this.options.heightStyle),this.tabs.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}),this.panels.not(this._getPanelForTab(this.active)).hide().attr({"aria-hidden":"true"}),this.active.length?(this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}),this._addClass(this.active,"ui-tabs-active","ui-state-active"),this._getPanelForTab(this.active).show().attr({"aria-hidden":"false"})):this.tabs.eq(0).attr("tabIndex",0)},_processTabs:function(){var l=this,t=this.tabs,e=this.anchors,i=this.panels;this.tablist=this._getList().attr("role","tablist"),this._addClass(this.tablist,"ui-tabs-nav","ui-helper-reset ui-helper-clearfix ui-widget-header"),this.tablist.on("mousedown"+this.eventNamespace,"> li",function(t){V(this).is(".ui-state-disabled")&&t.preventDefault()}).on("focus"+this.eventNamespace,".ui-tabs-anchor",function(){V(this).closest("li").is(".ui-state-disabled")&&this.blur()}),this.tabs=this.tablist.find("> li:has(a[href])").attr({role:"tab",tabIndex:-1}),this._addClass(this.tabs,"ui-tabs-tab","ui-state-default"),this.anchors=this.tabs.map(function(){return V("a",this)[0]}).attr({tabIndex:-1}),this._addClass(this.anchors,"ui-tabs-anchor"),this.panels=V(),this.anchors.each(function(t,e){var i,s,n,o=V(e).uniqueId().attr("id"),a=V(e).closest("li"),r=a.attr("aria-controls");l._isLocal(e)?(n=(i=e.hash).substring(1),s=l.element.find(l._sanitizeSelector(i))):(n=a.attr("aria-controls")||V({}).uniqueId()[0].id,(s=l.element.find(i="#"+n)).length||(s=l._createPanel(n)).insertAfter(l.panels[t-1]||l.tablist),s.attr("aria-live","polite")),s.length&&(l.panels=l.panels.add(s)),r&&a.data("ui-tabs-aria-controls",r),a.attr({"aria-controls":n,"aria-labelledby":o}),s.attr("aria-labelledby",o)}),this.panels.attr("role","tabpanel"),this._addClass(this.panels,"ui-tabs-panel","ui-widget-content"),t&&(this._off(t.not(this.tabs)),this._off(e.not(this.anchors)),this._off(i.not(this.panels)))},_getList:function(){return this.tablist||this.element.find("ol, ul").eq(0)},_createPanel:function(t){return V("
          ").attr("id",t).data("ui-tabs-destroy",!0)},_setOptionDisabled:function(t){var e,i;for(Array.isArray(t)&&(t.length?t.length===this.anchors.length&&(t=!0):t=!1),i=0;e=this.tabs[i];i++)e=V(e),!0===t||-1!==V.inArray(i,t)?(e.attr("aria-disabled","true"),this._addClass(e,null,"ui-state-disabled")):(e.removeAttr("aria-disabled"),this._removeClass(e,null,"ui-state-disabled"));this.options.disabled=t,this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!0===t)},_setupEvents:function(t){var i={};t&&V.each(t.split(" "),function(t,e){i[e]="_eventHandler"}),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(!0,this.anchors,{click:function(t){t.preventDefault()}}),this._on(this.anchors,i),this._on(this.tabs,{keydown:"_tabKeydown"}),this._on(this.panels,{keydown:"_panelKeydown"}),this._focusable(this.tabs),this._hoverable(this.tabs)},_setupHeightStyle:function(t){var i,e=this.element.parent();"fill"===t?(i=e.height(),i-=this.element.outerHeight()-this.element.height(),this.element.siblings(":visible").each(function(){var t=V(this),e=t.css("position");"absolute"!==e&&"fixed"!==e&&(i-=t.outerHeight(!0))}),this.element.children().not(this.panels).each(function(){i-=V(this).outerHeight(!0)}),this.panels.each(function(){V(this).height(Math.max(0,i-V(this).innerHeight()+V(this).height()))}).css("overflow","auto")):"auto"===t&&(i=0,this.panels.each(function(){i=Math.max(i,V(this).height("").height())}).height(i))},_eventHandler:function(t){var e=this.options,i=this.active,s=V(t.currentTarget).closest("li"),n=s[0]===i[0],o=n&&e.collapsible,a=o?V():this._getPanelForTab(s),r=i.length?this._getPanelForTab(i):V(),i={oldTab:i,oldPanel:r,newTab:o?V():s,newPanel:a};t.preventDefault(),s.hasClass("ui-state-disabled")||s.hasClass("ui-tabs-loading")||this.running||n&&!e.collapsible||!1===this._trigger("beforeActivate",t,i)||(e.active=!o&&this.tabs.index(s),this.active=n?V():s,this.xhr&&this.xhr.abort(),r.length||a.length||V.error("jQuery UI Tabs: Mismatching fragment identifier."),a.length&&this.load(this.tabs.index(s),t),this._toggle(t,i))},_toggle:function(t,e){var i=this,s=e.newPanel,n=e.oldPanel;function o(){i.running=!1,i._trigger("activate",t,e)}function a(){i._addClass(e.newTab.closest("li"),"ui-tabs-active","ui-state-active"),s.length&&i.options.show?i._show(s,i.options.show,o):(s.show(),o())}this.running=!0,n.length&&this.options.hide?this._hide(n,this.options.hide,function(){i._removeClass(e.oldTab.closest("li"),"ui-tabs-active","ui-state-active"),a()}):(this._removeClass(e.oldTab.closest("li"),"ui-tabs-active","ui-state-active"),n.hide(),a()),n.attr("aria-hidden","true"),e.oldTab.attr({"aria-selected":"false","aria-expanded":"false"}),s.length&&n.length?e.oldTab.attr("tabIndex",-1):s.length&&this.tabs.filter(function(){return 0===V(this).attr("tabIndex")}).attr("tabIndex",-1),s.attr("aria-hidden","false"),e.newTab.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_activate:function(t){var t=this._findActive(t);t[0]!==this.active[0]&&(t=(t=!t.length?this.active:t).find(".ui-tabs-anchor")[0],this._eventHandler({target:t,currentTarget:t,preventDefault:V.noop}))},_findActive:function(t){return!1===t?V():this.tabs.eq(t)},_getIndex:function(t){return t="string"==typeof t?this.anchors.index(this.anchors.filter("[href$='"+V.escapeSelector(t)+"']")):t},_destroy:function(){this.xhr&&this.xhr.abort(),this.tablist.removeAttr("role").off(this.eventNamespace),this.anchors.removeAttr("role tabIndex").removeUniqueId(),this.tabs.add(this.panels).each(function(){V.data(this,"ui-tabs-destroy")?V(this).remove():V(this).removeAttr("role tabIndex aria-live aria-busy aria-selected aria-labelledby aria-hidden aria-expanded")}),this.tabs.each(function(){var t=V(this),e=t.data("ui-tabs-aria-controls");e?t.attr("aria-controls",e).removeData("ui-tabs-aria-controls"):t.removeAttr("aria-controls")}),this.panels.show(),"content"!==this.options.heightStyle&&this.panels.css("height","")},enable:function(i){var t=this.options.disabled;!1!==t&&(t=void 0!==i&&(i=this._getIndex(i),Array.isArray(t)?V.map(t,function(t){return t!==i?t:null}):V.map(this.tabs,function(t,e){return e!==i?e:null})),this._setOptionDisabled(t))},disable:function(t){var e=this.options.disabled;if(!0!==e){if(void 0===t)e=!0;else{if(t=this._getIndex(t),-1!==V.inArray(t,e))return;e=Array.isArray(e)?V.merge([t],e).sort():[t]}this._setOptionDisabled(e)}},load:function(t,s){t=this._getIndex(t);function n(t,e){"abort"===e&&o.panels.stop(!1,!0),o._removeClass(i,"ui-tabs-loading"),a.removeAttr("aria-busy"),t===o.xhr&&delete o.xhr}var o=this,i=this.tabs.eq(t),t=i.find(".ui-tabs-anchor"),a=this._getPanelForTab(i),r={tab:i,panel:a};this._isLocal(t[0])||(this.xhr=V.ajax(this._ajaxSettings(t,s,r)),this.xhr&&"canceled"!==this.xhr.statusText&&(this._addClass(i,"ui-tabs-loading"),a.attr("aria-busy","true"),this.xhr.done(function(t,e,i){setTimeout(function(){a.html(t),o._trigger("load",s,r),n(i,e)},1)}).fail(function(t,e){setTimeout(function(){n(t,e)},1)})))},_ajaxSettings:function(t,i,s){var n=this;return{url:t.attr("href").replace(/#.*$/,""),beforeSend:function(t,e){return n._trigger("beforeLoad",i,V.extend({jqXHR:t,ajaxSettings:e},s))}}},_getPanelForTab:function(t){t=V(t).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+t))}}),!1!==V.uiBackCompat&&V.widget("ui.tabs",V.ui.tabs,{_processTabs:function(){this._superApply(arguments),this._addClass(this.tabs,"ui-tab")}});V.ui.tabs;V.widget("ui.tooltip",{version:"1.13.1",options:{classes:{"ui-tooltip":"ui-corner-all ui-widget-shadow"},content:function(){var t=V(this).attr("title");return V("").text(t).html()},hide:!0,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:!0,track:!1,close:null,open:null},_addDescribedBy:function(t,e){var i=(t.attr("aria-describedby")||"").split(/\s+/);i.push(e),t.data("ui-tooltip-id",e).attr("aria-describedby",String.prototype.trim.call(i.join(" ")))},_removeDescribedBy:function(t){var e=t.data("ui-tooltip-id"),i=(t.attr("aria-describedby")||"").split(/\s+/),e=V.inArray(e,i);-1!==e&&i.splice(e,1),t.removeData("ui-tooltip-id"),(i=String.prototype.trim.call(i.join(" ")))?t.attr("aria-describedby",i):t.removeAttr("aria-describedby")},_create:function(){this._on({mouseover:"open",focusin:"open"}),this.tooltips={},this.parents={},this.liveRegion=V("
          ").attr({role:"log","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this.disabledTitles=V([])},_setOption:function(t,e){var i=this;this._super(t,e),"content"===t&&V.each(this.tooltips,function(t,e){i._updateContent(e.element)})},_setOptionDisabled:function(t){this[t?"_disable":"_enable"]()},_disable:function(){var s=this;V.each(this.tooltips,function(t,e){var i=V.Event("blur");i.target=i.currentTarget=e.element[0],s.close(i,!0)}),this.disabledTitles=this.disabledTitles.add(this.element.find(this.options.items).addBack().filter(function(){var t=V(this);if(t.is("[title]"))return t.data("ui-tooltip-title",t.attr("title")).removeAttr("title")}))},_enable:function(){this.disabledTitles.each(function(){var t=V(this);t.data("ui-tooltip-title")&&t.attr("title",t.data("ui-tooltip-title"))}),this.disabledTitles=V([])},open:function(t){var i=this,e=V(t?t.target:this.element).closest(this.options.items);e.length&&!e.data("ui-tooltip-id")&&(e.attr("title")&&e.data("ui-tooltip-title",e.attr("title")),e.data("ui-tooltip-open",!0),t&&"mouseover"===t.type&&e.parents().each(function(){var t,e=V(this);e.data("ui-tooltip-open")&&((t=V.Event("blur")).target=t.currentTarget=this,i.close(t,!0)),e.attr("title")&&(e.uniqueId(),i.parents[this.id]={element:this,title:e.attr("title")},e.attr("title",""))}),this._registerCloseHandlers(t,e),this._updateContent(e,t))},_updateContent:function(e,i){var t=this.options.content,s=this,n=i?i.type:null;if("string"==typeof t||t.nodeType||t.jquery)return this._open(i,e,t);(t=t.call(e[0],function(t){s._delay(function(){e.data("ui-tooltip-open")&&(i&&(i.type=n),this._open(i,e,t))})}))&&this._open(i,e,t)},_open:function(t,e,i){var s,n,o,a=V.extend({},this.options.position);function r(t){a.of=t,n.is(":hidden")||n.position(a)}i&&((s=this._find(e))?s.tooltip.find(".ui-tooltip-content").html(i):(e.is("[title]")&&(t&&"mouseover"===t.type?e.attr("title",""):e.removeAttr("title")),s=this._tooltip(e),n=s.tooltip,this._addDescribedBy(e,n.attr("id")),n.find(".ui-tooltip-content").html(i),this.liveRegion.children().hide(),(i=V("
          ").html(n.find(".ui-tooltip-content").html())).removeAttr("name").find("[name]").removeAttr("name"),i.removeAttr("id").find("[id]").removeAttr("id"),i.appendTo(this.liveRegion),this.options.track&&t&&/^mouse/.test(t.type)?(this._on(this.document,{mousemove:r}),r(t)):n.position(V.extend({of:e},this.options.position)),n.hide(),this._show(n,this.options.show),this.options.track&&this.options.show&&this.options.show.delay&&(o=this.delayedShow=setInterval(function(){n.is(":visible")&&(r(a.of),clearInterval(o))},13)),this._trigger("open",t,{tooltip:n})))},_registerCloseHandlers:function(t,e){var i={keyup:function(t){t.keyCode===V.ui.keyCode.ESCAPE&&((t=V.Event(t)).currentTarget=e[0],this.close(t,!0))}};e[0]!==this.element[0]&&(i.remove=function(){var t=this._find(e);t&&this._removeTooltip(t.tooltip)}),t&&"mouseover"!==t.type||(i.mouseleave="close"),t&&"focusin"!==t.type||(i.focusout="close"),this._on(!0,e,i)},close:function(t){var e,i=this,s=V(t?t.currentTarget:this.element),n=this._find(s);n?(e=n.tooltip,n.closing||(clearInterval(this.delayedShow),s.data("ui-tooltip-title")&&!s.attr("title")&&s.attr("title",s.data("ui-tooltip-title")),this._removeDescribedBy(s),n.hiding=!0,e.stop(!0),this._hide(e,this.options.hide,function(){i._removeTooltip(V(this))}),s.removeData("ui-tooltip-open"),this._off(s,"mouseleave focusout keyup"),s[0]!==this.element[0]&&this._off(s,"remove"),this._off(this.document,"mousemove"),t&&"mouseleave"===t.type&&V.each(this.parents,function(t,e){V(e.element).attr("title",e.title),delete i.parents[t]}),n.closing=!0,this._trigger("close",t,{tooltip:e}),n.hiding||(n.closing=!1))):s.removeData("ui-tooltip-open")},_tooltip:function(t){var e=V("
          ").attr("role","tooltip"),i=V("
          ").appendTo(e),s=e.uniqueId().attr("id");return this._addClass(i,"ui-tooltip-content"),this._addClass(e,"ui-tooltip","ui-widget ui-widget-content"),e.appendTo(this._appendTo(t)),this.tooltips[s]={element:t,tooltip:e}},_find:function(t){t=t.data("ui-tooltip-id");return t?this.tooltips[t]:null},_removeTooltip:function(t){clearInterval(this.delayedShow),t.remove(),delete this.tooltips[t.attr("id")]},_appendTo:function(t){t=t.closest(".ui-front, dialog");return t=!t.length?this.document[0].body:t},_destroy:function(){var s=this;V.each(this.tooltips,function(t,e){var i=V.Event("blur"),e=e.element;i.target=i.currentTarget=e[0],s.close(i,!0),V("#"+t).remove(),e.data("ui-tooltip-title")&&(e.attr("title")||e.attr("title",e.data("ui-tooltip-title")),e.removeData("ui-tooltip-title"))}),this.liveRegion.remove()}}),!1!==V.uiBackCompat&&V.widget("ui.tooltip",V.ui.tooltip,{options:{tooltipClass:null},_tooltip:function(){var t=this._superApply(arguments);return this.options.tooltipClass&&t.tooltip.addClass(this.options.tooltipClass),t}});V.ui.tooltip}); \ No newline at end of file diff -Nru phpmyadmin-5.1.3+dfsg1/js/vendor/openlayers/OpenLayers.js phpmyadmin-5.1.4+dfsg1/js/vendor/openlayers/OpenLayers.js --- phpmyadmin-5.1.3+dfsg1/js/vendor/openlayers/OpenLayers.js 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/vendor/openlayers/OpenLayers.js 2022-05-11 03:26:09.000000000 +0000 @@ -1,9 +1,9 @@ /*! - * OpenLayers v6.9.0 (https://openlayers.org/) + * OpenLayers v6.14.1 (https://openlayers.org/) * Copyright 2005-present, OpenLayers Contributors All rights reserved. * Licensed under BSD 2-Clause License (https://github.com/openlayers/openlayers/blob/main/LICENSE.md) * * @license BSD-2-Clause */ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ol=e():t.ol=e()}(self,(function(){return function(){var t={582:function(t){t.exports=function(){"use strict";function t(t,i,o,r,s){!function t(n,i,o,r,s){for(;r>o;){if(r-o>600){var a=r-o+1,l=i-o+1,h=Math.log(a),u=.5*Math.exp(2*h/3),c=.5*Math.sqrt(h*u*(a-u)/a)*(l-a/2<0?-1:1);t(n,i,Math.max(o,Math.floor(i-l*u/a+c)),Math.min(r,Math.floor(i+(a-l)*u/a+c)),s)}var p=n[i],f=o,d=r;for(e(n,o,i),s(n[r],p)>0&&e(n,o,r);f0;)d--}0===s(n[o],p)?e(n,o,d):e(n,++d,r),d<=i&&(o=d+1),i<=d&&(r=d-1)}}(t,i,o||0,r||t.length-1,s||n)}function e(t,e,n){var i=t[e];t[e]=t[n],t[n]=i}function n(t,e){return te?1:0}var i=function(t){void 0===t&&(t=9),this._maxEntries=Math.max(4,t),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()};function o(t,e,n){if(!n)return e.indexOf(t);for(var i=0;i=t.minX&&e.maxY>=t.minY}function d(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function _(e,n,i,o,r){for(var s=[n,i];s.length;)if(!((i=s.pop())-(n=s.pop())<=o)){var a=n+Math.ceil((i-n)/o/2)*o;t(e,a,n,i,r),s.push(n,a,a,i)}}return i.prototype.all=function(){return this._all(this.data,[])},i.prototype.search=function(t){var e=this.data,n=[];if(!f(t,e))return n;for(var i=this.toBBox,o=[];e;){for(var r=0;r=0&&o[e].children.length>this._maxEntries;)this._split(o,e),e--;this._adjustParentBBoxes(i,o,e)},i.prototype._split=function(t,e){var n=t[e],i=n.children.length,o=this._minEntries;this._chooseSplitAxis(n,o,i);var s=this._chooseSplitIndex(n,o,i),a=d(n.children.splice(s,n.children.length-s));a.height=n.height,a.leaf=n.leaf,r(n,this.toBBox),r(a,this.toBBox),e?t[e-1].children.push(a):this._splitRoot(n,a)},i.prototype._splitRoot=function(t,e){this.data=d([t,e]),this.data.height=t.height+1,this.data.leaf=!1,r(this.data,this.toBBox)},i.prototype._chooseSplitIndex=function(t,e,n){for(var i,o,r,a,l,h,c,p=1/0,f=1/0,d=e;d<=n-e;d++){var _=s(t,0,d,this.toBBox),g=s(t,d,n,this.toBBox),y=(o=_,r=g,void 0,void 0,void 0,void 0,a=Math.max(o.minX,r.minX),l=Math.max(o.minY,r.minY),h=Math.min(o.maxX,r.maxX),c=Math.min(o.maxY,r.maxY),Math.max(0,h-a)*Math.max(0,c-l)),v=u(_)+u(g);y=e;f--){var d=t.children[f];a(l,t.leaf?o(d):d),h+=c(l)}return h},i.prototype._adjustParentBBoxes=function(t,e,n){for(var i=n;i>=0;i--)a(e[i],t)},i.prototype._condense=function(t){for(var e=t.length-1,n=void 0;e>=0;e--)0===t[e].children.length?e>0?(n=t[e-1].children).splice(n.indexOf(t[e]),1):this.clear():r(t[e],this.toBBox)},i}()}},e={};function n(i){var o=e[i];if(void 0!==o)return o.exports;var r=e[i]={exports:{}};return t[i].call(r.exports,r,r.exports,n),r.exports}n.d=function(t,e){for(var i in e)n.o(e,i)&&!n.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)};var i={};return function(){"use strict";n.d(i,{default:function(){return ch}});var t=function(){function t(t){this.propagationStopped,this.defaultPrevented,this.type=t,this.target=null}return t.prototype.preventDefault=function(){this.defaultPrevented=!0},t.prototype.stopPropagation=function(){this.propagationStopped=!0},t}(),e="propertychange",o=function(){function t(){this.disposed=!1}return t.prototype.dispose=function(){this.disposed||(this.disposed=!0,this.disposeInternal())},t.prototype.disposeInternal=function(){},t}();function r(t,e){return t>e?1:t0){for(o=1;o0?o-1:o:t[o-1]-e0)},n.prototype.removeEventListener=function(t,e){var n=this.listeners_&&this.listeners_[t];if(n){var i=n.indexOf(e);-1!==i&&(this.pendingRemovals_&&t in this.pendingRemovals_?(n[i]=p,++this.pendingRemovals_[t]):(n.splice(i,1),0===n.length&&delete this.listeners_[t]))}},n}(o),x="change",C="contextmenu",w="click",S="keydown",E="keypress",T="resize",b="touchmove",O="wheel";function R(t,e,n,i,o){if(i&&i!==t&&(n=n.bind(i)),o){var r=n;n=function(){t.removeEventListener(e,n),r.apply(this,arguments)}}var s={target:t,type:e,listener:n};return t.addEventListener(e,n),s}function P(t,e,n,i){return R(t,e,n,i,!0)}function I(t){t&&t.target&&(t.target.removeEventListener(t.type,t.listener),d(t))}var M=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),F=function(t){function e(){var e=t.call(this)||this;return e.on=e.onInternal,e.once=e.onceInternal,e.un=e.unInternal,e.revision_=0,e}return M(e,t),e.prototype.changed=function(){++this.revision_,this.dispatchEvent(x)},e.prototype.getRevision=function(){return this.revision_},e.prototype.onInternal=function(t,e){if(Array.isArray(t)){for(var n=t.length,i=new Array(n),o=0;o1?(n=o,i=r):l>0&&(n+=s*l,i+=a*l)}return wt(t,e,n,i)}function wt(t,e,n,i){var o=n-t,r=i-e;return o*o+r*r}function St(t){return t*Math.PI/180}function Et(t,e){var n=t%e;return n*e<0?n+e:n}function Tt(t,e,n){return t+n*(e-t)}var bt=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),Ot=function(t){function e(e){var n=t.call(this)||this;n.on,n.once,n.un;var i=f({},e);return"object"==typeof e.properties&&(delete i.properties,f(i,e.properties)),i.opacity=void 0!==e.opacity?e.opacity:1,yt("number"==typeof i.opacity,64),i.visible=void 0===e.visible||e.visible,i.zIndex=e.zIndex,i.maxResolution=void 0!==e.maxResolution?e.maxResolution:1/0,i.minResolution=void 0!==e.minResolution?e.minResolution:0,i.minZoom=void 0!==e.minZoom?e.minZoom:-1/0,i.maxZoom=void 0!==e.maxZoom?e.maxZoom:1/0,n.className_=void 0!==i.className?e.className:"ol-layer",delete i.className,n.setProperties(i),n.state_=null,n}return bt(e,t),e.prototype.getClassName=function(){return this.className_},e.prototype.getLayerState=function(t){var e=this.state_||{layer:this,managed:void 0===t||t},n=this.getZIndex();return e.opacity=vt(Math.round(100*this.getOpacity())/100,0,1),e.sourceState=this.getSourceState(),e.visible=this.getVisible(),e.extent=this.getExtent(),e.zIndex=void 0!==n||e.managed?n:1/0,e.maxResolution=this.getMaxResolution(),e.minResolution=Math.max(this.getMinResolution(),0),e.minZoom=this.getMinZoom(),e.maxZoom=this.getMaxZoom(),this.state_=e,e},e.prototype.getLayersArray=function(t){return A()},e.prototype.getLayerStatesArray=function(t){return A()},e.prototype.getExtent=function(){return this.get(lt)},e.prototype.getMaxResolution=function(){return this.get(ut)},e.prototype.getMinResolution=function(){return this.get(ct)},e.prototype.getMinZoom=function(){return this.get(ft)},e.prototype.getMaxZoom=function(){return this.get(pt)},e.prototype.getOpacity=function(){return this.get(st)},e.prototype.getSourceState=function(){return A()},e.prototype.getVisible=function(){return this.get(at)},e.prototype.getZIndex=function(){return this.get(ht)},e.prototype.setExtent=function(t){this.set(lt,t)},e.prototype.setMaxResolution=function(t){this.set(ut,t)},e.prototype.setMinResolution=function(t){this.set(ct,t)},e.prototype.setMaxZoom=function(t){this.set(pt,t)},e.prototype.setMinZoom=function(t){this.set(ft,t)},e.prototype.setOpacity=function(t){yt("number"==typeof t,64),this.set(st,t)},e.prototype.setVisible=function(t){this.set(at,t)},e.prototype.setZIndex=function(t){this.set(ht,t)},e.prototype.disposeInternal=function(){this.state_&&(this.state_.layer=null,this.state_=null),t.prototype.disposeInternal.call(this)},e}(z),Rt="precompose",Pt="rendercomplete",It="undefined",Mt="ready",Ft=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}();function Lt(t,e){if(!t.visible)return!1;var n=e.resolution;if(n=t.maxResolution)return!1;var i=e.zoom;return i>t.minZoom&&i<=t.maxZoom}var At=function(t){function e(e){var n=this,i=f({},e);delete i.source,(n=t.call(this,i)||this).on,n.once,n.un,n.mapPrecomposeKey_=null,n.mapRenderKey_=null,n.sourceChangeKey_=null,n.renderer_=null,e.render&&(n.render=e.render),e.map&&n.setMap(e.map),n.addChangeListener(dt,n.handleSourcePropertyChange_);var o=e.source?e.source:null;return n.setSource(o),n}return Ft(e,t),e.prototype.getLayersArray=function(t){var e=t||[];return e.push(this),e},e.prototype.getLayerStatesArray=function(t){var e=t||[];return e.push(this.getLayerState()),e},e.prototype.getSource=function(){return this.get(dt)||null},e.prototype.getSourceState=function(){var t=this.getSource();return t?t.getState():It},e.prototype.handleSourceChange_=function(){this.changed()},e.prototype.handleSourcePropertyChange_=function(){this.sourceChangeKey_&&(I(this.sourceChangeKey_),this.sourceChangeKey_=null);var t=this.getSource();t&&(this.sourceChangeKey_=R(t,x,this.handleSourceChange_,this)),this.changed()},e.prototype.getFeatures=function(t){return this.renderer_?this.renderer_.getFeatures(t):new Promise((function(t){return t([])}))},e.prototype.render=function(t,e){var n=this.getRenderer();if(n.prepareFrame(t))return n.renderFrame(t,e)},e.prototype.setMap=function(t){this.mapPrecomposeKey_&&(I(this.mapPrecomposeKey_),this.mapPrecomposeKey_=null),t||this.changed(),this.mapRenderKey_&&(I(this.mapRenderKey_),this.mapRenderKey_=null),t&&(this.mapPrecomposeKey_=R(t,Rt,(function(t){var e=t.frameState.layerStatesArray,n=this.getLayerState(!1);yt(!e.some((function(t){return t.layer===n.layer})),67),e.push(n)}),this),this.mapRenderKey_=R(this,x,t.render,t),this.changed())},e.prototype.setSource=function(t){this.set(dt,t)},e.prototype.getRenderer=function(){return this.renderer_||(this.renderer_=this.createRenderer()),this.renderer_},e.prototype.hasRenderer=function(){return!!this.renderer_},e.prototype.createRenderer=function(){return null},e.prototype.disposeInternal=function(){this.renderer_&&(this.renderer_.dispose(),delete this.renderer_),this.setSource(null),t.prototype.disposeInternal.call(this)},e}(Ot),Dt=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),kt=function(t){function e(e){var n=this,i=e||{};(n=t.call(this,{element:document.createElement("div"),render:i.render,target:i.target})||this).ulElement_=document.createElement("ul"),n.collapsed_=void 0===i.collapsed||i.collapsed,n.userCollapsed_=n.collapsed_,n.overrideCollapsible_=void 0!==i.collapsible,n.collapsible_=void 0===i.collapsible||i.collapsible,n.collapsible_||(n.collapsed_=!1);var o=void 0!==i.className?i.className:"ol-attribution",r=void 0!==i.tipLabel?i.tipLabel:"Attributions",s=void 0!==i.expandClassName?i.expandClassName:o+"-expand",a=void 0!==i.collapseLabel?i.collapseLabel:"›",l=void 0!==i.collapseClassName?i.collapseClassName:o+"-collpase";"string"==typeof a?(n.collapseLabel_=document.createElement("span"),n.collapseLabel_.textContent=a,n.collapseLabel_.className=l):n.collapseLabel_=a;var h=void 0!==i.label?i.label:"i";"string"==typeof h?(n.label_=document.createElement("span"),n.label_.textContent=h,n.label_.className=s):n.label_=h;var u=n.collapsible_&&!n.collapsed_?n.collapseLabel_:n.label_;n.toggleButton_=document.createElement("button"),n.toggleButton_.setAttribute("type","button"),n.toggleButton_.setAttribute("aria-expanded",String(!n.collapsed_)),n.toggleButton_.title=r,n.toggleButton_.appendChild(u),n.toggleButton_.addEventListener(w,n.handleClick_.bind(n),!1);var c=o+" ol-unselectable "+et+(n.collapsed_&&n.collapsible_?" ol-collapsed":"")+(n.collapsible_?"":" ol-uncollapsible"),p=n.element;return p.className=c,p.appendChild(n.toggleButton_),p.appendChild(n.ulElement_),n.renderedAttributions_=[],n.renderedVisible_=!0,n}return Dt(e,t),e.prototype.collectSourceAttributions_=function(t){for(var e={},n=[],i=!0,o=t.layerStatesArray,r=0,s=o.length;r0;if(this.renderedVisible_!=n&&(this.element.style.display=n?"":"none",this.renderedVisible_=n),!h(e,this.renderedAttributions_)){!function(t){for(;t.lastChild;)t.removeChild(t.lastChild)}(this.ulElement_);for(var i=0,o=e.length;io&&(l|=4),ar&&(l|=2),0===l&&(l=1),l}function de(t,e,n,i,o){return o?(o[0]=t,o[1]=e,o[2]=n,o[3]=i,o):[t,e,n,i]}function _e(t){return de(1/0,1/0,-1/0,-1/0,t)}function ge(t,e,n,i,o){return me(_e(o),t,e,n,i)}function ye(t,e){return t[0]==e[0]&&t[2]==e[2]&&t[1]==e[1]&&t[3]==e[3]}function ve(t,e){e[0]t[2]&&(t[2]=e[0]),e[1]t[3]&&(t[3]=e[1])}function me(t,e,n,i,o){for(;ne[0]?i[0]=t[0]:i[0]=e[0],t[1]>e[1]?i[1]=t[1]:i[1]=e[1],t[2]=e[0]&&t[1]<=e[3]&&t[3]>=e[1]}function Ae(t){return t[2]1)for(var r=t[2]-t[0],s=t[3]-t[1],a=0;a1?n:2,r=e;void 0===r&&(r=o>2?t.slice():new Array(i));for(var s=0;sUt?a=Ut:a<-Ut&&(a=-Ut),r[s+1]=a}return r},qe=function(t,e,n){var i=t.length,o=n>1?n:2,r=e;void 0===r&&(r=o>2?t.slice():new Array(i));for(var s=0;s0?(e.getAnimating()&&e.cancelAnimations(),e.animate({zoom:i,duration:this.duration_,easing:cn})):e.setZoom(i)}}},e}($);function gn(t,e){for(var n=!0,i=t.length-1;i>=0;--i)if(t[i]!=e[i]){n=!1;break}return n}function yn(t,e){var n=Math.cos(e),i=Math.sin(e),o=t[0]*n-t[1]*i,r=t[1]*n+t[0]*i;return t[0]=o,t[1]=r,t}function vn(t,e){if(e.canWrapX()){var n=Fe(e.getExtent()),i=function(t,e,n){var i=e.getExtent(),o=0;if(e.canWrapX()&&(t[0]i[2])){var r=n||Fe(i);o=Math.floor((t[0]-i[0])/r)}return o}(t,e,n);i&&(t[0]-=i*n)}return t}var mn,xn="XY",Cn="XYM",wn="XYZM",Sn="Point",En="LineString",Tn="Polygon",bn="MultiPoint",On="MultiLineString",Rn="MultiPolygon",Pn="GeometryCollection",In="Circle";function Mn(t,e){var n=e[0],i=e[1];return e[0]=t[0]*n+t[2]*i+t[4],e[1]=t[1]*n+t[3]*i+t[5],e}function Fn(t,e,n,i,o,r,s,a){var l=Math.sin(r),h=Math.cos(r);return t[0]=i*h,t[1]=o*l,t[2]=-i*l,t[3]=o*h,t[4]=s*i*h-a*i*l+e,t[5]=s*o*l+a*o*h+n,t}function Ln(t,e){var n,i=(n=e)[0]*n[3]-n[1]*n[2];yt(0!==i,32);var o=e[0],r=e[1],s=e[2],a=e[3],l=e[4],h=e[5];return t[0]=a/i,t[1]=-r/i,t[2]=-s/i,t[3]=o/i,t[4]=(s*h-a*l)/i,t[5]=-(o*h-r*l)/i,t}function An(t){var e="matrix("+t.join(", ")+")";if(Z)return e;var n=mn||(mn=document.createElement("div"));return n.style.transform=e,n.style.transform}function Dn(t,e,n,i,o,r){for(var s=r||[],a=0,l=e;l1)a=n;else{if(p>0){for(var f=0;fo&&(o=h),r=a,s=l}return o}function Vn(t,e,n,i,o){for(var r=0,s=n.length;r0;){for(var c=h.pop(),p=h.pop(),f=0,d=t[p],_=t[p+1],g=t[c],y=t[c+1],v=p+i;vf&&(u=v,f=m)}f>o&&(l[(u-e)/i]=1,p+i0&&_>f)&&(d<0&&g0&&g>d)?(a=c,l=p):(r[s++]=a,r[s++]=l,h=a,u=l,a=c,l=p)}}return r[s++]=a,r[s++]=l,s}function ei(t,e,n,i,o,r,s,a){for(var l=0,h=n.length;l>1)],e))<0?a=i+1:(l=i,h=!o);return h?a:~a}(d,v);m<0?(h=(v-d[-m-2])/(d[-m-1]-d[-m-2]),l=e+(-m-2)*i):l=e+m*i}var x=a>1?a:2,C=s||new Array(x);for(_=0;_>1;or&&(h-a)*(r-l)-(o-a)*(u-l)>0&&s++:u<=r&&(h-a)*(r-l)-(o-a)*(u-l)<0&&s--,a=h,l=u}return 0!==s}function ui(t,e,n,i,o,r){if(0===n.length)return!1;if(!hi(t,e,n[0],i,o,r))return!1;for(var s=1,a=n.length;s=o[0]&&r[2]<=o[2]||r[1]>=o[1]&&r[3]<=o[3]||ni(t,e,n,i,(function(t,e){return function(t,e,n){var i=!1,o=fe(t,e),r=fe(t,n);if(1===o||1===r)i=!0;else{var s=t[0],a=t[1],l=t[2],h=t[3],u=e[0],c=e[1],p=n[0],f=n[1],d=(f-c)/(p-u),_=void 0,g=void 0;2&r&&!(2&o)&&(i=(_=p-(f-h)/d)>=s&&_<=l),i||!(4&r)||4&o||(i=(g=f-(p-l)*d)>=a&&g<=h),i||!(8&r)||8&o||(i=(_=p-(f-a)/d)>=s&&_<=l),i||!(16&r)||16&o||(i=(g=f-(p-s)*d)>=a&&g<=h)}return i}(o,t,e)})))}function pi(t,e,n,i,o){if(!function(t,e,n,i,o){return!!(ci(t,e,n,i,o)||hi(t,e,n,i,o[0],o[1])||hi(t,e,n,i,o[0],o[3])||hi(t,e,n,i,o[2],o[1])||hi(t,e,n,i,o[2],o[3]))}(t,e,n[0],i,o))return!1;if(1===n.length)return!0;for(var r=1,s=n.length;rC&&ui(t,e,n,i,u=(c+p)/2,_)&&(x=u,C=w),c=p}return isNaN(x)&&(x=o[s]),a?(a.push(x,_,C),a):[x,_,C]}function Fi(t,e,n,i){for(;e0}function Ai(t,e,n,i,o){for(var r=void 0!==o&&o,s=0,a=n.length;sthis.maxX&&(this.maxX=t.maxX),t.minYthis.maxY&&(this.maxY=t.maxY)},t.prototype.getHeight=function(){return this.maxY-this.minY+1},t.prototype.getSize=function(){return[this.getWidth(),this.getHeight()]},t.prototype.getWidth=function(){return this.maxX-this.minX+1},t.prototype.intersects=function(t){return this.minX<=t.maxX&&this.maxX>=t.minX&&this.minY<=t.maxY&&this.maxY>=t.minY},t}();function no(t,e,n,i,o){return void 0!==o?(o.minX=t,o.maxX=e,o.minY=n,o.maxY=i,o):new eo(t,e,n,i)}var io=eo,oo=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),ro=function(t){function e(e){var n=t.call(this,e)||this;return n.extentChanged=!0,n.renderedExtent_=null,n.renderedPixelRatio,n.renderedProjection=null,n.renderedRevision,n.renderedTiles=[],n.newTiles_=!1,n.tmpExtent=[1/0,1/0,-1/0,-1/0],n.tmpTileRange_=new io(0,0,0,0),n}return oo(e,t),e.prototype.isDrawableTile=function(t){var e=this.getLayer(),n=t.getState(),i=e.getUseInterimTilesOnError();return 2==n||4==n||3==n&&!i},e.prototype.getTile=function(t,e,n,i){var o=i.pixelRatio,r=i.viewState.projection,s=this.getLayer(),a=s.getSource().getTile(t,e,n,o,r);return 3==a.getState()&&(s.getUseInterimTilesOnError()?s.getPreload()>0&&(this.newTiles_=!0):a.setState(2)),this.isDrawableTile(a)||(a=a.getInterimTile()),a},e.prototype.loadedTileCallback=function(e,n,i){return!!this.isDrawableTile(i)&&t.prototype.loadedTileCallback.call(this,e,n,i)},e.prototype.prepareFrame=function(t){return!!this.getLayer().getSource()},e.prototype.renderFrame=function(t,e){var n=t.layerStatesArray[t.layerIndex],i=t.viewState,o=i.projection,s=i.resolution,a=i.center,l=i.rotation,h=t.pixelRatio,u=this.getLayer(),c=u.getSource(),p=c.getRevision(),d=c.getTileGridForProjection(o),_=d.getZForResolution(s,c.zDirection),g=d.getResolution(_),y=t.extent,v=n.extent&&nn(n.extent);v&&(y=Pe(y,nn(n.extent)));var m=c.getTilePixelRatio(h),x=Math.round(t.size[0]*m),C=Math.round(t.size[1]*m);if(l){var w=Math.round(Math.sqrt(x*x+C*C));x=w,C=w}var S=g*x/2/m,E=g*C/2/m,T=[a[0]-S,a[1]-E,a[0]+S,a[1]+E],b=d.getTileRangeForExtentAndZ(y,_),O={};O[_]={};var R=this.createLoadedTileFinder(c,o,O),P=this.tmpExtent,I=this.tmpTileRange_;this.newTiles_=!1;for(var M=b.minX;M<=b.maxX;++M)for(var F=b.minY;F<=b.maxY;++F){var L=this.getTile(_,M,F,t);if(this.isDrawableTile(L)){var A=k(this);if(2==L.getState()){O[_][L.tileCoord.toString()]=L;var D=L.inTransition(A);this.newTiles_||!D&&-1!==this.renderedTiles.indexOf(L)||(this.newTiles_=!0)}if(1===L.getAlpha(A,t.time))continue}var j=d.getTileCoordChildTileRange(L.tileCoord,I,P),G=!1;j&&(G=R(_+1,j)),G||d.forEachTileCoordParentTileRange(L.tileCoord,R,I,P)}var z=g/s;Fn(this.pixelTransform,t.size[0]/2,t.size[1]/2,1/m,1/m,l,-x/2,-C/2);var W=An(this.pixelTransform);this.useContainer(e,W,n.opacity);var X=this.context,N=X.canvas;Ln(this.inversePixelTransform,this.pixelTransform),Fn(this.tempTransform,x/2,C/2,z,z,0,-x/2,-C/2),N.width!=x||N.height!=C?(N.width=x,N.height=C):this.containerReused||X.clearRect(0,0,x,C),v&&this.clipUnrotated(X,t,v),f(X,c.getContextOptions()),this.preRender(X,t),this.renderedTiles.length=0;var Y,K,B,Z=Object.keys(O).map(Number);Z.sort(r),1!==n.opacity||this.containerReused&&!c.getOpaque(t.viewState.projection)?(Y=[],K=[]):Z=Z.reverse();for(var V=Z.length-1;V>=0;--V){var U=Z[V],H=c.getTilePixelSize(U,h,o),q=d.getResolution(U)/g,J=H[0]*q*z,Q=H[1]*q*z,$=d.getTileCoordForCoordAndZ(Ie(T),U),tt=d.getTileCoordExtent($),et=Mn(this.tempTransform,[m*(tt[0]-T[0])/g,m*(T[3]-tt[3])/g]),nt=m*c.getGutterForProjection(o),it=O[U];for(var ot in it){var st=(L=it[ot]).tileCoord,at=$[1]-st[1],lt=Math.round(et[0]-(at-1)*J),ht=$[2]-st[2],ut=Math.round(et[1]-(ht-1)*Q),ct=lt-(M=Math.round(et[0]-at*J)),pt=ut-(F=Math.round(et[1]-ht*Q)),ft=_===U;if(!(D=ft&&1!==L.getAlpha(k(this),t.time)))if(Y){X.save(),B=[M,F,M+ct,F,M+ct,F+pt,M,F+pt];for(var dt=0,_t=Y.length;dt<_t;++dt)if(_!==U&&U0&&t[1]>0}function co(t,e){return Array.isArray(t)?t:(void 0===e?e=[t,t]:(e[0]=t,e[1]=t),e)}var po=function(){function t(t){this.opacity_=t.opacity,this.rotateWithView_=t.rotateWithView,this.rotation_=t.rotation,this.scale_=t.scale,this.scaleArray_=co(t.scale),this.displacement_=t.displacement}return t.prototype.clone=function(){var e=this.getScale();return new t({opacity:this.getOpacity(),scale:Array.isArray(e)?e.slice():e,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),displacement:this.getDisplacement().slice()})},t.prototype.getOpacity=function(){return this.opacity_},t.prototype.getRotateWithView=function(){return this.rotateWithView_},t.prototype.getRotation=function(){return this.rotation_},t.prototype.getScale=function(){return this.scale_},t.prototype.getScaleArray=function(){return this.scaleArray_},t.prototype.getDisplacement=function(){return this.displacement_},t.prototype.getAnchor=function(){return A()},t.prototype.getImage=function(t){return A()},t.prototype.getHitDetectionImage=function(){return A()},t.prototype.getPixelRatio=function(t){return 1},t.prototype.getImageState=function(){return A()},t.prototype.getImageSize=function(){return A()},t.prototype.getOrigin=function(){return A()},t.prototype.getSize=function(){return A()},t.prototype.setOpacity=function(t){this.opacity_=t},t.prototype.setRotateWithView=function(t){this.rotateWithView_=t},t.prototype.setRotation=function(t){this.rotation_=t},t.prototype.setScale=function(t){this.scale_=t,this.scaleArray_=co(t)},t.prototype.listenImageChange=function(t){A()},t.prototype.load=function(){A()},t.prototype.unlistenImageChange=function(t){A()},t}(),fo=/^#([a-f0-9]{3}|[a-f0-9]{4}(?:[a-f0-9]{2}){0,2})$/i,_o=/^([a-z]*)$|^hsla?\(.*\)$/i;function go(t){return"string"==typeof t?t:xo(t)}var yo=function(){var t={},e=0;return function(n){var i;if(t.hasOwnProperty(n))i=t[n];else{if(e>=1024){var o=0;for(var r in t)0==(3&o++)&&(delete t[r],--e)}i=function(t){var e,n,i,o,r;if(_o.exec(t)&&(t=function(t){var e=document.createElement("div");if(e.style.color=t,""!==e.style.color){document.body.appendChild(e);var n=getComputedStyle(e).color;return document.body.removeChild(e),n}return""}(t)),fo.exec(t)){var s,a=t.length-1;s=a<=4?1:2;var l=4===a||8===a;e=parseInt(t.substr(1+0*s,s),16),n=parseInt(t.substr(1+1*s,s),16),i=parseInt(t.substr(1+2*s,s),16),o=l?parseInt(t.substr(1+3*s,s),16):255,1==s&&(e=(e<<4)+e,n=(n<<4)+n,i=(i<<4)+i,l&&(o=(o<<4)+o)),r=[e,n,i,o/255]}else 0==t.indexOf("rgba(")?mo(r=t.slice(5,-1).split(",").map(Number)):0==t.indexOf("rgb(")?((r=t.slice(4,-1).split(",").map(Number)).push(1),mo(r)):yt(!1,14);return r}(n),t[n]=i,++e}return i}}();function vo(t){return Array.isArray(t)?t:yo(t)}function mo(t){return t[0]=vt(t[0]+.5|0,0,255),t[1]=vt(t[1]+.5|0,0,255),t[2]=vt(t[2]+.5|0,0,255),t[3]=vt(t[3],0,1),t}function xo(t){var e=t[0];e!=(0|e)&&(e=e+.5|0);var n=t[1];n!=(0|n)&&(n=n+.5|0);var i=t[2];return i!=(0|i)&&(i=i+.5|0),"rgba("+e+","+n+","+i+","+(void 0===t[3]?1:t[3])+")"}function Co(t){return Array.isArray(t)?xo(t):t}var wo="10px sans-serif",So="#000",Eo="round",To=[],bo="round",Oo="#000",Ro="center",Po="middle",Io=[0,0,0,0],Mo=new z;(new m).setSize=function(){console.warn("labelCache is deprecated.")};var Fo,Lo,Ao=null,Do={},ko=function(){var t,e,n="32px ",i=["monospace","serif"],o=i.length,r="wmytzilWMYTZIL@#/&?$%10";function s(t,s,a){for(var l=!0,h=0;hc&&(this.instructions.push([rr.CUSTOM,c,r,t,n,ii]),this.hitDetectionInstructions.push([rr.CUSTOM,c,r,t,i||n,ii]));break;case Sn:o=t.getFlatCoordinates(),this.coordinates.push(o[0],o[1]),r=this.coordinates.length,this.instructions.push([rr.CUSTOM,c,r,t,n]),this.hitDetectionInstructions.push([rr.CUSTOM,c,r,t,i||n])}this.endGeometry(e)},e.prototype.beginGeometry=function(t,e){this.beginGeometryInstruction1_=[rr.BEGIN_GEOMETRY,e,0,t],this.instructions.push(this.beginGeometryInstruction1_),this.beginGeometryInstruction2_=[rr.BEGIN_GEOMETRY,e,0,t],this.hitDetectionInstructions.push(this.beginGeometryInstruction2_)},e.prototype.finish=function(){return{instructions:this.instructions,hitDetectionInstructions:this.hitDetectionInstructions,coordinates:this.coordinates}},e.prototype.reverseHitDetectionInstructions=function(){var t,e=this.hitDetectionInstructions;e.reverse();var n,i,o=e.length,r=-1;for(t=0;tthis.maxLineWidth&&(this.maxLineWidth=n.lineWidth,this.bufferedMaxExtent_=null)}else n.strokeStyle=void 0,n.lineCap=void 0,n.lineDash=null,n.lineDashOffset=void 0,n.lineJoin=void 0,n.lineWidth=void 0,n.miterLimit=void 0},e.prototype.createFill=function(t){var e=t.fillStyle,n=[rr.SET_FILL_STYLE,e];return"string"!=typeof e&&n.push(!0),n},e.prototype.applyStroke=function(t){this.instructions.push(this.createStroke(t))},e.prototype.createStroke=function(t){return[rr.SET_STROKE_STYLE,t.strokeStyle,t.lineWidth*this.pixelRatio,t.lineCap,t.lineJoin,t.miterLimit,this.applyPixelRatio(t.lineDash),t.lineDashOffset*this.pixelRatio]},e.prototype.updateFillStyle=function(t,e){var n=t.fillStyle;"string"==typeof n&&t.currentFillStyle==n||(void 0!==n&&this.instructions.push(e.call(this,t)),t.currentFillStyle=n)},e.prototype.updateStrokeStyle=function(t,e){var n=t.strokeStyle,i=t.lineCap,o=t.lineDash,r=t.lineDashOffset,s=t.lineJoin,a=t.lineWidth,l=t.miterLimit;(t.currentStrokeStyle!=n||t.currentLineCap!=i||o!=t.currentLineDash&&!h(t.currentLineDash,o)||t.currentLineDashOffset!=r||t.currentLineJoin!=s||t.currentLineWidth!=a||t.currentMiterLimit!=l)&&(void 0!==n&&e.call(this,t),t.currentStrokeStyle=n,t.currentLineCap=i,t.currentLineDash=o,t.currentLineDashOffset=r,t.currentLineJoin=s,t.currentLineWidth=a,t.currentMiterLimit=l)},e.prototype.endGeometry=function(t){this.beginGeometryInstruction1_[2]=this.instructions.length,this.beginGeometryInstruction1_=null,this.beginGeometryInstruction2_[2]=this.hitDetectionInstructions.length,this.beginGeometryInstruction2_=null;var e=[rr.END_GEOMETRY,t];this.instructions.push(e),this.hitDetectionInstructions.push(e)},e.prototype.getBufferedMaxExtent=function(){if(!this.bufferedMaxExtent_&&(this.bufferedMaxExtent_=le(this.maxExtent),this.maxLineWidth>0)){var t=this.resolution*(this.maxLineWidth+1)/2;ae(this.bufferedMaxExtent_,t,this.bufferedMaxExtent_)}return this.bufferedMaxExtent_},e}(sr),hr=lr,ur=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),cr=function(t){function e(e,n,i,o){var r=t.call(this,e,n,i,o)||this;return r.hitDetectionImage_=null,r.image_=null,r.imagePixelRatio_=void 0,r.anchorX_=void 0,r.anchorY_=void 0,r.height_=void 0,r.opacity_=void 0,r.originX_=void 0,r.originY_=void 0,r.rotateWithView_=void 0,r.rotation_=void 0,r.scale_=void 0,r.width_=void 0,r.declutterImageWithText_=void 0,r}return ur(e,t),e.prototype.drawPoint=function(t,e){if(this.image_){this.beginGeometry(t,e);var n=t.getFlatCoordinates(),i=t.getStride(),o=this.coordinates.length,r=this.appendFlatPointCoordinates(n,i);this.instructions.push([rr.DRAW_IMAGE,o,r,this.image_,this.anchorX_*this.imagePixelRatio_,this.anchorY_*this.imagePixelRatio_,Math.ceil(this.height_*this.imagePixelRatio_),this.opacity_,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,[this.scale_[0]*this.pixelRatio/this.imagePixelRatio_,this.scale_[1]*this.pixelRatio/this.imagePixelRatio_],Math.ceil(this.width_*this.imagePixelRatio_),this.declutterImageWithText_]),this.hitDetectionInstructions.push([rr.DRAW_IMAGE,o,r,this.hitDetectionImage_,this.anchorX_,this.anchorY_,this.height_,this.opacity_,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_,this.width_,this.declutterImageWithText_]),this.endGeometry(e)}},e.prototype.drawMultiPoint=function(t,e){if(this.image_){this.beginGeometry(t,e);var n=t.getFlatCoordinates(),i=t.getStride(),o=this.coordinates.length,r=this.appendFlatPointCoordinates(n,i);this.instructions.push([rr.DRAW_IMAGE,o,r,this.image_,this.anchorX_*this.imagePixelRatio_,this.anchorY_*this.imagePixelRatio_,Math.ceil(this.height_*this.imagePixelRatio_),this.opacity_,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,[this.scale_[0]*this.pixelRatio/this.imagePixelRatio_,this.scale_[1]*this.pixelRatio/this.imagePixelRatio_],Math.ceil(this.width_*this.imagePixelRatio_),this.declutterImageWithText_]),this.hitDetectionInstructions.push([rr.DRAW_IMAGE,o,r,this.hitDetectionImage_,this.anchorX_,this.anchorY_,this.height_,this.opacity_,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_,this.width_,this.declutterImageWithText_]),this.endGeometry(e)}},e.prototype.finish=function(){return this.reverseHitDetectionInstructions(),this.anchorX_=void 0,this.anchorY_=void 0,this.hitDetectionImage_=null,this.image_=null,this.imagePixelRatio_=void 0,this.height_=void 0,this.scale_=void 0,this.opacity_=void 0,this.originX_=void 0,this.originY_=void 0,this.rotateWithView_=void 0,this.rotation_=void 0,this.width_=void 0,t.prototype.finish.call(this)},e.prototype.setImageStyle=function(t,e){var n=t.getAnchor(),i=t.getSize(),o=t.getHitDetectionImage(),r=t.getImage(this.pixelRatio),s=t.getOrigin();this.imagePixelRatio_=t.getPixelRatio(this.pixelRatio),this.anchorX_=n[0],this.anchorY_=n[1],this.hitDetectionImage_=o,this.image_=r,this.height_=i[1],this.opacity_=t.getOpacity(),this.originX_=s[0]*this.imagePixelRatio_,this.originY_=s[1]*this.imagePixelRatio_,this.rotateWithView_=t.getRotateWithView(),this.rotation_=t.getRotation(),this.scale_=t.getScaleArray(),this.width_=i[0],this.declutterImageWithText_=e},e}(hr),pr=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),fr=function(t){function e(e,n,i,o){return t.call(this,e,n,i,o)||this}return pr(e,t),e.prototype.drawFlatCoordinates_=function(t,e,n,i){var o=this.coordinates.length,r=this.appendFlatLineCoordinates(t,e,n,i,!1,!1),s=[rr.MOVE_TO_LINE_TO,o,r];return this.instructions.push(s),this.hitDetectionInstructions.push(s),n},e.prototype.drawLineString=function(t,e){var n=this.state,i=n.strokeStyle,o=n.lineWidth;if(void 0!==i&&void 0!==o){this.updateStrokeStyle(n,this.applyStroke),this.beginGeometry(t,e),this.hitDetectionInstructions.push([rr.SET_STROKE_STYLE,n.strokeStyle,n.lineWidth,n.lineCap,n.lineJoin,n.miterLimit,To,0],ir);var r=t.getFlatCoordinates(),s=t.getStride();this.drawFlatCoordinates_(r,0,r.length,s),this.hitDetectionInstructions.push(nr),this.endGeometry(e)}},e.prototype.drawMultiLineString=function(t,e){var n=this.state,i=n.strokeStyle,o=n.lineWidth;if(void 0!==i&&void 0!==o){this.updateStrokeStyle(n,this.applyStroke),this.beginGeometry(t,e),this.hitDetectionInstructions.push([rr.SET_STROKE_STYLE,n.strokeStyle,n.lineWidth,n.lineCap,n.lineJoin,n.miterLimit,n.lineDash,n.lineDashOffset],ir);for(var r=t.getEnds(),s=t.getFlatCoordinates(),a=t.getStride(),l=0,h=0,u=r.length;ht&&(y>g&&(g=y,d=v,_=r),y=0,v=r-o)),s=a,u=p,c=f),l=m,h=x}return(y+=a)>g?[v,r]:[d,_]}var vr=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),mr={left:0,end:0,center:.5,right:1,start:1,top:0,middle:.5,hanging:.2,alphabetic:.8,ideographic:.8,bottom:1},xr=function(t){function e(e,n,i,o){var r=t.call(this,e,n,i,o)||this;return r.labels_=null,r.text_="",r.textOffsetX_=0,r.textOffsetY_=0,r.textRotateWithView_=void 0,r.textRotation_=0,r.textFillState_=null,r.fillStates={},r.textStrokeState_=null,r.strokeStates={},r.textState_={},r.textStates={},r.textKey_="",r.fillKey_="",r.strokeKey_="",r.declutterImageWithText_=void 0,r}return vr(e,t),e.prototype.finish=function(){var e=t.prototype.finish.call(this);return e.textStates=this.textStates,e.fillStates=this.fillStates,e.strokeStates=this.strokeStates,e},e.prototype.drawText=function(t,e){var n=this.textFillState_,i=this.textStrokeState_,o=this.textState_;if(""!==this.text_&&o&&(n||i)){var r=this.coordinates,s=r.length,a=t.getType(),l=null,h=t.getStride();if("line"!==o.placement||a!=En&&a!=On&&a!=Tn&&a!=Rn){var u=o.overflow?null:[];switch(a){case Sn:case bn:l=t.getFlatCoordinates();break;case En:l=t.getFlatMidpoint();break;case In:l=t.getCenter();break;case On:l=t.getFlatMidpoints(),h=2;break;case Tn:l=t.getFlatInteriorPoint(),o.overflow||u.push(l[2]/this.resolution),h=3;break;case Rn:var c=t.getFlatInteriorPoints();for(l=[],w=0,S=c.length;wR[2]}else T=x>b;var P,I=Math.PI,M=[],F=w+i===e;if(g=0,y=S,p=t[e=w],f=t[e+1],F){v(),P=Math.atan2(f-_,p-d),T&&(P+=P>0?-I:I);var L=(b+x)/2,A=(O+C)/2;return M[0]=[L,A,(E-r)/2,P,o],M}for(var D=0,k=o.length;D0?-I:I),void 0!==P){var G=j-P;if(G+=G>I?-2*I:G<-I?2*I:0,Math.abs(G)>s)return null}P=j;for(var z=D,W=0;Dt?t-l:o,x=r+h>e?e-h:r,C=f[3]+m*c[0]+f[1],w=f[0]+x*c[1]+f[2],S=y-f[3],E=v-f[0];return(d||0!==u)&&(Mr[0]=S,Ar[0]=S,Mr[1]=E,Fr[1]=E,Fr[0]=S+C,Lr[0]=Fr[0],Lr[1]=E+w,Ar[1]=Lr[1]),0!==u?(Mn(g=Fn([1,0,0,1,0,0],n,i,1,1,u,-n,-i),Mr),Mn(g,Fr),Mn(g,Lr),Mn(g,Ar),de(Math.min(Mr[0],Fr[0],Lr[0],Ar[0]),Math.min(Mr[1],Fr[1],Lr[1],Ar[1]),Math.max(Mr[0],Fr[0],Lr[0],Ar[0]),Math.max(Mr[1],Fr[1],Lr[1],Ar[1]),Ir)):de(Math.min(S,S+C),Math.min(E,E+w),Math.max(S,S+C),Math.max(E,E+w),Ir),p&&(y=Math.round(y),v=Math.round(v)),{drawImageX:y,drawImageY:v,drawImageW:m,drawImageH:x,originX:l,originY:h,declutterBox:{minX:Ir[0],minY:Ir[1],maxX:Ir[2],maxY:Ir[3],value:_},canvasTransform:g,scale:c}},t.prototype.replayImageOrLabel_=function(t,e,n,i,o,r,s){var a=!(!r&&!s),l=i.declutterBox,h=t.canvas,u=s?s[2]*i.scale[0]/2:0;return l.minX-u<=h.width/e&&l.maxX+u>=0&&l.minY-u<=h.height/e&&l.maxY+u>=0&&(a&&this.replayTextBackground_(t,Mr,Fr,Lr,Ar,r,s),function(t,e,n,i,o,r,s,a,l,h,u){t.save(),1!==n&&(t.globalAlpha*=n),e&&t.setTransform.apply(t,e),i.contextInstructions?(t.translate(l,h),t.scale(u[0],u[1]),function(t,e){for(var n=t.contextInstructions,i=0,o=n.length;iz&&(this.fill_(t),M=0),F>z&&(t.stroke(),F=0),M||F||(t.beginPath(),_=NaN,g=NaN),++R;break;case rr.CIRCLE:var X=l[I=W[1]],N=l[I+1],Y=l[I+2]-X,K=l[I+3]-N,B=Math.sqrt(Y*Y+K*K);t.moveTo(X+B,N),t.arc(X,N,B,0,2*Math.PI,!0),++R;break;case rr.CLOSE_PATH:t.closePath(),++R;break;case rr.CUSTOM:I=W[1],p=W[2];var Z=W[3],V=W[4],U=6==W.length?W[5]:void 0;G.geometry=Z,G.feature=E,R in D||(D[R]=[]);var H=D[R];U?U(l,I,p,2,H):(H[0]=l[I],H[1]=l[I+1],H.length=2),V(H,G),++R;break;case rr.DRAW_IMAGE:I=W[1],p=W[2],m=W[3],f=W[4],d=W[5];var q=W[6],J=W[7],Q=W[8],$=W[9],tt=W[10],et=W[11],nt=W[12],it=W[13],ot=W[14];if(!m&&W.length>=19){x=W[18],C=W[19],w=W[20],S=W[21];var rt=this.drawLabelWithPointPlacement_(x,C,w,S);m=rt.label,W[3]=m;var st=W[22];f=(rt.anchorX-st)*this.pixelRatio,W[4]=f;var at=W[23];d=(rt.anchorY-at)*this.pixelRatio,W[5]=d,q=m.height,W[6]=q,it=m.width,W[13]=it}var lt=void 0;W.length>24&&(lt=W[24]);var ht=void 0,ut=void 0,ct=void 0;W.length>16?(ht=W[15],ut=W[16],ct=W[17]):(ht=Io,ut=!1,ct=!1),tt&&j?et+=k:tt||j||(et-=k);for(var pt=0;In)break;var a=i[s];a||(a=[],i[s]=a),a.push(4*((t+o)*e+(t+r))+3),o>0&&a.push(4*((t-o)*e+(t+r))+3),r>0&&(a.push(4*((t+o)*e+(t-r))+3),o>0&&a.push(4*((t-o)*e+(t-r))+3))}for(var l=[],h=(o=0,i.length);o0){if(!s||p!==Tr&&p!==Rr||-1!==s.indexOf(t)){var h=(f[r]-3)/4,u=i-h%a,d=i-(h/a|0),_=o(t,e,u*u+d*d);if(_)return _}c.clearRect(0,0,a,a);break}}var _,g,y,v,m,x=Object.keys(this.executorsByZIndex_).map(Number);for(x.sort(r),_=x.length-1;_>=0;--_){var C=x[_].toString();for(y=this.executorsByZIndex_[C],g=Wr.length-1;g>=0;--g)if(void 0!==(v=y[p=Wr[g]])&&(m=v.executeHitDetection(c,l,n,d,u)))return m}},t.prototype.getClipCoords=function(t){var e=this.maxExtent_;if(!e)return null;var n=e[0],i=e[1],o=e[2],r=e[3],s=[n,i,n,r,o,r,o,i];return Dn(s,0,8,2,t,s),s},t.prototype.isEmpty=function(){return g(this.executorsByZIndex_)},t.prototype.execute=function(t,e,n,i,o,s,a){var l=Object.keys(this.executorsByZIndex_).map(Number);l.sort(r),this.maxExtent_&&(t.save(),this.clip(t,n));var h,u,c,p,f,d,_=s||Wr;for(a&&l.reverse(),h=0,u=l.length;hthis.maxCacheSize_},t.prototype.expire=function(){if(this.canExpireCache()){var t=0;for(var e in this.cache_){var n=this.cache_[e];0!=(3&t++)||n.hasListener()||(delete this.cache_[e],--this.cacheSize_)}}},t.prototype.get=function(t,e,n){var i=$r(t,e,n);return i in this.cache_?this.cache_[i]:null},t.prototype.set=function(t,e,n,i){var o=$r(t,e,n);this.cache_[o]=i,++this.cacheSize_},t.prototype.setSize=function(t){this.maxCacheSize_=t,this.expire()},t}()),es=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),ns=function(t){function e(e,n,i,o){var r=t.call(this)||this;return r.extent=e,r.pixelRatio_=i,r.resolution=n,r.state=o,r}return es(e,t),e.prototype.changed=function(){this.dispatchEvent(x)},e.prototype.getExtent=function(){return this.extent},e.prototype.getImage=function(){return A()},e.prototype.getPixelRatio=function(){return this.pixelRatio_},e.prototype.getResolution=function(){return this.resolution},e.prototype.getState=function(){return this.state},e.prototype.load=function(){A()},e}(m),is=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}();function os(t,e,n){var i=t;if(i.src&&V){var o=i.decode(),r=!0;return o.then((function(){r&&e()})).catch((function(t){r&&("EncodingError"===t.name&&"Invalid image type."===t.message?e():n())})),function(){r=!1}}var s=[P(i,"load",e),P(i,"error",n)];return function(){s.forEach(I)}}!function(t){function e(e,n,i,o,r,s){var a=t.call(this,e,n,i,0)||this;return a.src_=o,a.image_=new Image,null!==r&&(a.image_.crossOrigin=r),a.unlisten_=null,a.state=0,a.imageLoadFunction_=s,a}is(e,t),e.prototype.getImage=function(){return this.image_},e.prototype.handleImageError_=function(){this.state=3,this.unlistenImage_(),this.changed()},e.prototype.handleImageLoad_=function(){void 0===this.resolution&&(this.resolution=Re(this.extent)/this.image_.height),this.state=2,this.unlistenImage_(),this.changed()},e.prototype.load=function(){0!=this.state&&3!=this.state||(this.state=1,this.changed(),this.imageLoadFunction_(this,this.src_),this.unlisten_=os(this.image_,this.handleImageLoad_.bind(this),this.handleImageError_.bind(this)))},e.prototype.setImage=function(t){this.image_=t,this.resolution=Re(this.extent)/this.image_.height},e.prototype.unlistenImage_=function(){this.unlisten_&&(this.unlisten_(),this.unlisten_=null)}}(ns);var rs=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),ss=null,as=function(t){function e(e,n,i,o,r,s){var a=t.call(this)||this;return a.hitDetectionImage_=null,a.image_=e||new Image,null!==o&&(a.image_.crossOrigin=o),a.canvas_={},a.color_=s,a.unlisten_=null,a.imageState_=r,a.size_=i,a.src_=n,a.tainted_,a}return rs(e,t),e.prototype.isTainted_=function(){if(void 0===this.tainted_&&2===this.imageState_){ss||(ss=H(1,1)),ss.drawImage(this.image_,0,0);try{ss.getImageData(0,0,1,1),this.tainted_=!1}catch(t){ss=null,this.tainted_=!0}}return!0===this.tainted_},e.prototype.dispatchChangeEvent_=function(){this.dispatchEvent(x)},e.prototype.handleImageError_=function(){this.imageState_=3,this.unlistenImage_(),this.dispatchChangeEvent_()},e.prototype.handleImageLoad_=function(){this.imageState_=2,this.size_?(this.image_.width=this.size_[0],this.image_.height=this.size_[1]):this.size_=[this.image_.width,this.image_.height],this.unlistenImage_(),this.dispatchChangeEvent_()},e.prototype.getImage=function(t){return this.replaceColor_(t),this.canvas_[t]?this.canvas_[t]:this.image_},e.prototype.getPixelRatio=function(t){return this.replaceColor_(t),this.canvas_[t]?t:1},e.prototype.getImageState=function(){return this.imageState_},e.prototype.getHitDetectionImage=function(){if(!this.hitDetectionImage_)if(this.isTainted_()){var t=this.size_[0],e=this.size_[1],n=H(t,e);n.fillRect(0,0,t,e),this.hitDetectionImage_=n.canvas}else this.hitDetectionImage_=this.image_;return this.hitDetectionImage_},e.prototype.getSize=function(){return this.size_},e.prototype.getSrc=function(){return this.src_},e.prototype.load=function(){if(0==this.imageState_){this.imageState_=1;try{this.image_.src=this.src_}catch(t){this.handleImageError_()}this.unlisten_=os(this.image_,this.handleImageLoad_.bind(this),this.handleImageError_.bind(this))}},e.prototype.replaceColor_=function(t){if(this.color_&&!this.canvas_[t]&&2===this.imageState_){var e=document.createElement("canvas");this.canvas_[t]=e,e.width=Math.ceil(this.image_.width*t),e.height=Math.ceil(this.image_.height*t);var n=e.getContext("2d");if(n.scale(t,t),n.drawImage(this.image_,0,0),n.globalCompositeOperation="multiply","multiply"===n.globalCompositeOperation||this.isTainted_())n.fillStyle=go(this.color_),n.fillRect(0,0,e.width/t,e.height/t),n.globalCompositeOperation="destination-in",n.drawImage(this.image_,0,0);else{for(var i=n.getImageData(0,0,e.width,e.height),o=i.data,r=this.color_[0]/255,s=this.color_[1]/255,a=this.color_[2]/255,l=this.color_[3],h=0,u=o.length;h0,6);var c=void 0!==i.src?0:2;return n.color_=void 0!==i.color?vo(i.color):null,n.iconImage_=function(t,e,n,i,o,r){var s=ts.get(e,i,r);return s||(s=new as(t,e,n,i,o,r),ts.set(e,i,r,s)),s}(l,u,h,n.crossOrigin_,c,n.color_),n.offset_=void 0!==i.offset?i.offset:[0,0],n.offsetOrigin_=void 0!==i.offsetOrigin?i.offsetOrigin:Jr,n.origin_=null,n.size_=void 0!==i.size?i.size:null,n}return ls(e,t),e.prototype.clone=function(){var t=this.getScale();return new e({anchor:this.anchor_.slice(),anchorOrigin:this.anchorOrigin_,anchorXUnits:this.anchorXUnits_,anchorYUnits:this.anchorYUnits_,crossOrigin:this.crossOrigin_,color:this.color_&&this.color_.slice?this.color_.slice():this.color_||void 0,src:this.getSrc(),offset:this.offset_.slice(),offsetOrigin:this.offsetOrigin_,size:null!==this.size_?this.size_.slice():void 0,opacity:this.getOpacity(),scale:Array.isArray(t)?t.slice():t,rotation:this.getRotation(),rotateWithView:this.getRotateWithView()})},e.prototype.getAnchor=function(){if(this.normalizedAnchor_)return this.normalizedAnchor_;var t=this.anchor_,e=this.getSize();if(this.anchorXUnits_==Vr||this.anchorYUnits_==Vr){if(!e)return null;t=this.anchor_.slice(),this.anchorXUnits_==Vr&&(t[0]*=e[0]),this.anchorYUnits_==Vr&&(t[1]*=e[1])}if(this.anchorOrigin_!=Jr){if(!e)return null;t===this.anchor_&&(t=this.anchor_.slice()),this.anchorOrigin_!=Qr&&this.anchorOrigin_!=qr||(t[0]=-t[0]+e[0]),this.anchorOrigin_!=Hr&&this.anchorOrigin_!=qr||(t[1]=-t[1]+e[1])}var n=this.getDisplacement();return t[0]-=n[0],t[1]+=n[1],this.normalizedAnchor_=t,this.normalizedAnchor_},e.prototype.setAnchor=function(t){this.anchor_=t,this.normalizedAnchor_=null},e.prototype.getColor=function(){return this.color_},e.prototype.getImage=function(t){return this.iconImage_.getImage(t)},e.prototype.getPixelRatio=function(t){return this.iconImage_.getPixelRatio(t)},e.prototype.getImageSize=function(){return this.iconImage_.getSize()},e.prototype.getImageState=function(){return this.iconImage_.getImageState()},e.prototype.getHitDetectionImage=function(){return this.iconImage_.getHitDetectionImage()},e.prototype.getOrigin=function(){if(this.origin_)return this.origin_;var t=this.offset_;if(this.offsetOrigin_!=Jr){var e=this.getSize(),n=this.iconImage_.getSize();if(!e||!n)return null;t=t.slice(),this.offsetOrigin_!=Qr&&this.offsetOrigin_!=qr||(t[0]=n[0]-e[0]-t[0]),this.offsetOrigin_!=Hr&&this.offsetOrigin_!=qr||(t[1]=n[1]-e[1]-t[1])}return this.origin_=t,this.origin_},e.prototype.getSrc=function(){return this.iconImage_.getSrc()},e.prototype.getSize=function(){return this.size_?this.size_:this.iconImage_.getSize()},e.prototype.listenImageChange=function(t){this.iconImage_.addEventListener(x,t)},e.prototype.load=function(){this.iconImage_.load()},e.prototype.unlistenImageChange=function(t){this.iconImage_.removeEventListener(x,t)},e}(po),us=.5,cs={Point:function(t,e,n,i,o){var r,s=n.getImage(),a=n.getText();if(o&&(t=o,r=s&&a&&a.getText()?{}:void 0),s){if(2!=s.getImageState())return;var l=t.getBuilder(n.getZIndex(),Tr);l.setImageStyle(s,r),l.drawPoint(e,i)}if(a&&a.getText()){var h=t.getBuilder(n.getZIndex(),Rr);h.setTextStyle(a,r),h.drawText(e,i)}},LineString:function(t,e,n,i,o){var r=n.getStroke();if(r){var s=t.getBuilder(n.getZIndex(),br);s.setFillStrokeStyle(null,r),s.drawLineString(e,i)}var a=n.getText();if(a&&a.getText()){var l=(o||t).getBuilder(n.getZIndex(),Rr);l.setTextStyle(a),l.drawText(e,i)}},Polygon:function(t,e,n,i,o){var r=n.getFill(),s=n.getStroke();if(r||s){var a=t.getBuilder(n.getZIndex(),Or);a.setFillStrokeStyle(r,s),a.drawPolygon(e,i)}var l=n.getText();if(l&&l.getText()){var h=(o||t).getBuilder(n.getZIndex(),Rr);h.setTextStyle(l),h.drawText(e,i)}},MultiPoint:function(t,e,n,i,o){var r,s=n.getImage(),a=n.getText();if(o&&(t=o,r=s&&a&&a.getText()?{}:void 0),s){if(2!=s.getImageState())return;var l=t.getBuilder(n.getZIndex(),Tr);l.setImageStyle(s,r),l.drawMultiPoint(e,i)}if(a&&a.getText()){var h=(o||t).getBuilder(n.getZIndex(),Rr);h.setTextStyle(a,r),h.drawText(e,i)}},MultiLineString:function(t,e,n,i,o){var r=n.getStroke();if(r){var s=t.getBuilder(n.getZIndex(),br);s.setFillStrokeStyle(null,r),s.drawMultiLineString(e,i)}var a=n.getText();if(a&&a.getText()){var l=(o||t).getBuilder(n.getZIndex(),Rr);l.setTextStyle(a),l.drawText(e,i)}},MultiPolygon:function(t,e,n,i,o){var r=n.getFill(),s=n.getStroke();if(s||r){var a=t.getBuilder(n.getZIndex(),Or);a.setFillStrokeStyle(r,s),a.drawMultiPolygon(e,i)}var l=n.getText();if(l&&l.getText()){var h=(o||t).getBuilder(n.getZIndex(),Rr);h.setTextStyle(l),h.drawText(e,i)}},GeometryCollection:function(t,e,n,i,o){var r,s,a=e.getGeometriesArray();for(r=0,s=a.length;rd[2];)v=g*++y,u.push(this.getRenderTransform(i,o,s,us,c,p,v).slice()),_-=g}this.hitDetectionImageData_=function(t,e,n,i,o,s,a){var l=H(t[0]*us,t[1]*us);l.imageSmoothingEnabled=!1;for(var h=l.canvas,u=new Zr(l,us,o,null,a),c=n.length,p=Math.floor(16777215/c),f={},d=1;d<=c;++d){var _=n[d-1],g=_.getStyleFunction()||i;if(i){var y=g(_,s);if(y){Array.isArray(y)||(y=[y]);for(var v="#"+("000000"+(d*p).toString(16)).slice(-6),m=0,x=y.length;m=n[2])){var o=Fe(n),r=Math.floor((i[0]-n[0])/o)*o;t[0]-=r,t[2]-=r}return t}(m[0],u);S[0]x[0]&&S[2]>x[2]&&m.push([S[0]-C,S[1],S[2]-C,S[3]])}if(!this.dirty_&&this.renderedResolution_==c&&this.renderedRevision_==f&&this.renderedRenderOrder_==_&&ce(this.wrappedRenderedExtent_,y))return h(this.renderedExtent_,v)||(this.hitDetectionImageData_=null,this.renderedExtent_=v),this.renderedCenter_=g,this.replayGroupChanged=!1,!0;this.replayGroup_=null,this.dirty_=!1;var E,T=new wr(fs(c,p),y,c,p);this.getLayer().getDeclutter()&&(E=new wr(fs(c,p),y,c,p));var b,O=Qe();if(O){for(var R=0,P=m.length;Rt)throw new Error("Tile load sequence violation");this.state=t,this.changed()},e.prototype.load=function(){A()},e.prototype.getAlpha=function(t,e){if(!this.transition_)return 1;var n=this.transitionStarts_[t];if(n){if(-1===n)return 1}else n=e,this.transitionStarts_[t]=n;var i=e-n+1e3/60;return i>=this.transition_?1:un(i/this.transition_)},e.prototype.inTransition=function(t){return!!this.transition_&&-1!==this.transitionStarts_[t]},e.prototype.endTransition=function(t){this.transition_&&(this.transitionStarts_[t]=-1)},e}(m),Es=Ss,Ts=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),bs=function(t){function e(e,n,i,o,r,s){var a=t.call(this,e,n,s)||this;return a.crossOrigin_=o,a.src_=i,a.key=i,a.image_=new Image,null!==o&&(a.image_.crossOrigin=o),a.unlisten_=null,a.tileLoadFunction_=r,a}return Ts(e,t),e.prototype.getImage=function(){return this.image_},e.prototype.setImage=function(t){this.image_=t,this.state=2,this.unlistenImage_(),this.changed()},e.prototype.handleImageError_=function(){var t;this.state=3,this.unlistenImage_(),this.image_=((t=H(1,1)).fillStyle="rgba(0,0,0,0)",t.fillRect(0,0,1,1),t.canvas),this.changed()},e.prototype.handleImageLoad_=function(){var t=this.image_;t.naturalWidth&&t.naturalHeight?this.state=2:this.state=4,this.unlistenImage_(),this.changed()},e.prototype.load=function(){3==this.state&&(this.state=0,this.image_=new Image,null!==this.crossOrigin_&&(this.image_.crossOrigin=this.crossOrigin_)),0==this.state&&(this.state=1,this.changed(),this.tileLoadFunction_(this,this.src_),this.unlisten_=os(this.image_,this.handleImageLoad_.bind(this),this.handleImageError_.bind(this)))},e.prototype.unlistenImage_=function(){this.unlisten_&&(this.unlisten_(),this.unlisten_=null)},e}(Es),Os=function(){function t(t,e,n,i,o,r){this.sourceProj_=t,this.targetProj_=e;var s={},a=Be(this.targetProj_,this.sourceProj_);this.transformInv_=function(t){var e=t[0]+"/"+t[1];return s[e]||(s[e]=a(t)),s[e]},this.maxSourceExtent_=i,this.errorThresholdSquared_=o*o,this.triangles_=[],this.wrapsXInSource_=!1,this.canWrapXInSource_=this.sourceProj_.canWrapX()&&!!i&&!!this.sourceProj_.getExtent()&&Fe(i)==Fe(this.sourceProj_.getExtent()),this.sourceWorldWidth_=this.sourceProj_.getExtent()?Fe(this.sourceProj_.getExtent()):null,this.targetWorldWidth_=this.targetProj_.getExtent()?Fe(this.targetProj_.getExtent()):null;var l=Ie(n),h=Me(n),u=Ee(n),c=Se(n),p=this.transformInv_(l),f=this.transformInv_(h),d=this.transformInv_(u),_=this.transformInv_(c),g=10+(r?Math.max(0,Math.ceil(xt(we(n)/(r*r*256*256)))):0);if(this.addQuad_(l,h,u,c,p,f,d,_,g),this.wrapsXInSource_){var y=1/0;this.triangles_.forEach((function(t,e,n){y=Math.min(y,t.source[0][0],t.source[1][0],t.source[2][0])})),this.triangles_.forEach(function(t){if(Math.max(t.source[0][0],t.source[1][0],t.source[2][0])-y>this.sourceWorldWidth_/2){var e=[[t.source[0][0],t.source[0][1]],[t.source[1][0],t.source[1][1]],[t.source[2][0],t.source[2][1]]];e[0][0]-y>this.sourceWorldWidth_/2&&(e[0][0]-=this.sourceWorldWidth_),e[1][0]-y>this.sourceWorldWidth_/2&&(e[1][0]-=this.sourceWorldWidth_),e[2][0]-y>this.sourceWorldWidth_/2&&(e[2][0]-=this.sourceWorldWidth_);var n=Math.min(e[0][0],e[1][0],e[2][0]);Math.max(e[0][0],e[1][0],e[2][0])-n.5&&u<1,f=!1;if(l>0&&(this.targetProj_.isGlobal()&&this.targetWorldWidth_&&(f=Fe(se([t,e,n,i]))/this.targetWorldWidth_>.25||f),!p&&this.sourceProj_.isGlobal()&&u&&(f=u>.25||f)),!(!f&&this.maxSourceExtent_&&isFinite(h[0])&&isFinite(h[1])&&isFinite(h[2])&&isFinite(h[3]))||Le(h,this.maxSourceExtent_)){var d=0;if(!(f||isFinite(o[0])&&isFinite(o[1])&&isFinite(r[0])&&isFinite(r[1])&&isFinite(s[0])&&isFinite(s[1])&&isFinite(a[0])&&isFinite(a[1])))if(l>0)f=!0;else if(1!=(d=(isFinite(o[0])&&isFinite(o[1])?0:8)+(isFinite(r[0])&&isFinite(r[1])?0:4)+(isFinite(s[0])&&isFinite(s[1])?0:2)+(isFinite(a[0])&&isFinite(a[1])?0:1))&&2!=d&&4!=d&&8!=d)return;if(l>0){if(!f){var _=[(t[0]+n[0])/2,(t[1]+n[1])/2],g=this.transformInv_(_),y=void 0;y=p?(Et(o[0],c)+Et(s[0],c))/2-Et(g[0],c):(o[0]+s[0])/2-g[0];var v=(o[1]+s[1])/2-g[1];f=y*y+v*v>this.errorThresholdSquared_}if(f){if(Math.abs(t[0]-n[0])<=Math.abs(t[1]-n[1])){var m=[(e[0]+n[0])/2,(e[1]+n[1])/2],x=this.transformInv_(m),C=[(i[0]+t[0])/2,(i[1]+t[1])/2],w=this.transformInv_(C);this.addQuad_(t,e,m,C,o,r,x,w,l-1),this.addQuad_(C,m,n,i,w,x,s,a,l-1)}else{var S=[(t[0]+e[0])/2,(t[1]+e[1])/2],E=this.transformInv_(S),T=[(n[0]+i[0])/2,(n[1]+i[1])/2],b=this.transformInv_(T);this.addQuad_(t,S,T,i,o,E,b,a,l-1),this.addQuad_(S,e,n,T,E,r,s,b,l-1)}return}}if(p){if(!this.canWrapXInSource_)return;this.wrapsXInSource_=!0}0==(11&d)&&this.addTriangle_(t,n,i,o,s,a),0==(14&d)&&this.addTriangle_(t,n,e,o,s,r),d&&(0==(13&d)&&this.addTriangle_(e,i,t,r,a,o),0==(7&d)&&this.addTriangle_(e,i,n,r,a,s))}},t.prototype.calculateSourceExtent=function(){var t=[1/0,1/0,-1/0,-1/0];return this.triangles_.forEach((function(e,n,i){var o=e.source;ve(t,o[0]),ve(t,o[1]),ve(t,o[2])})),t},t.prototype.getTriangles=function(){return this.triangles_},t}(),Rs={imageSmoothingEnabled:!1,msImageSmoothingEnabled:!1};function Ps(t,e,n,i,o){t.beginPath(),t.moveTo(0,0),t.lineTo(e,n),t.lineTo(i,o),t.closePath(),t.save(),t.clip(),t.fillRect(0,0,Math.max(e,i)+1,Math.max(n,o)),t.restore()}function Is(t,e){return Math.abs(t[4*e]-210)>2||Math.abs(t[4*e+3]-191.25)>2}function Ms(t,e,n,i){var o=Ze(n,e,t),r=We(e,i,n),s=e.getMetersPerUnit();void 0!==s&&(r*=s);var a=t.getMetersPerUnit();void 0!==a&&(r/=a);var l=t.getExtent();if(!l||ue(l,o)){var h=We(t,r,o)/r;isFinite(h)&&h>0&&(r/=h)}return r}var Fs=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),Ls=function(t){function e(e,n,i,o,r,s,a,l,h,u,c,p){var f=t.call(this,r,0)||this;f.renderEdges_=void 0!==c&&c,f.contextOptions_=p,f.pixelRatio_=a,f.gutter_=l,f.canvas_=null,f.sourceTileGrid_=n,f.targetTileGrid_=o,f.wrappedTileCoord_=s||r,f.sourceTiles_=[],f.sourcesListenerKeys_=null,f.sourceZ_=0;var d=o.getTileCoordExtent(f.wrappedTileCoord_),_=f.targetTileGrid_.getExtent(),g=f.sourceTileGrid_.getExtent(),y=_?Pe(d,_):d;if(0===we(y))return f.state=4,f;var v=e.getExtent();v&&(g=g?Pe(g,v):v);var m=o.getResolution(f.wrappedTileCoord_[0]),x=function(t,e,n,i){var o=Te(n),r=Ms(t,e,o,i);return(!isFinite(r)||r<=0)&&Ce(n,(function(n){return r=Ms(t,e,n,i),isFinite(r)&&r>0})),r}(e,i,y,m);if(!isFinite(x)||x<=0)return f.state=4,f;var C=void 0!==u?u:.5;if(f.triangulation_=new Os(e,i,y,g,x*C,m),0===f.triangulation_.getTriangles().length)return f.state=4,f;f.sourceZ_=n.getZForResolution(x);var w=f.triangulation_.calculateSourceExtent();if(g&&(e.canWrapX()?(w[1]=vt(w[1],g[1],g[3]),w[3]=vt(w[3],g[1],g[3])):w=Pe(w,g)),we(w)){for(var S=n.getTileRangeForExtentAndZ(w,f.sourceZ_),E=S.minX;E<=S.maxX;E++)for(var T=S.minY;T<=S.maxY;T++){var b=h(f.sourceZ_,E,T,a);b&&f.sourceTiles_.push(b)}0===f.sourceTiles_.length&&(f.state=4)}else f.state=4;return f}return Fs(e,t),e.prototype.getImage=function(){return this.canvas_},e.prototype.reproject_=function(){var t=[];if(this.sourceTiles_.forEach(function(e,n,i){e&&2==e.getState()&&t.push({extent:this.sourceTileGrid_.getTileCoordExtent(e.tileCoord),image:e.getImage()})}.bind(this)),this.sourceTiles_.length=0,0===t.length)this.state=3;else{var e=this.wrappedTileCoord_[0],n=this.targetTileGrid_.getTileSize(e),i="number"==typeof n?n:n[0],o="number"==typeof n?n:n[1],r=this.targetTileGrid_.getResolution(e),s=this.sourceTileGrid_.getResolution(this.sourceZ_),a=this.targetTileGrid_.getTileCoordExtent(this.wrappedTileCoord_);this.canvas_=function(t,e,n,i,o,r,s,a,l,h,u,c){var p=H(Math.round(n*t),Math.round(n*e));if(f(p,c),0===l.length)return p.canvas;function d(t){return Math.round(t*n)/n}p.scale(n,n),p.globalCompositeOperation="lighter";var _=[1/0,1/0,-1/0,-1/0];l.forEach((function(t,e,n){var i,o;i=_,(o=t.extent)[0]i[2]&&(i[2]=o[2]),o[1]i[3]&&(i[3]=o[3])}));var g=Fe(_),y=Re(_),v=H(Math.round(n*g/i),Math.round(n*y/i));f(v,c);var m=n/i;l.forEach((function(t,e,n){var i=t.extent[0]-_[0],o=-(t.extent[3]-_[3]),r=Fe(t.extent),s=Re(t.extent);t.image.width>0&&t.image.height>0&&v.drawImage(t.image,h,h,t.image.width-2*h,t.image.height-2*h,i*m,o*m,r*m,s*m)}));var x=Ie(s);return a.getTriangles().forEach((function(t,e,o){var s=t.source,a=t.target,l=s[0][0],h=s[0][1],u=s[1][0],f=s[1][1],g=s[2][0],y=s[2][1],m=d((a[0][0]-x[0])/r),C=d(-(a[0][1]-x[1])/r),w=d((a[1][0]-x[0])/r),S=d(-(a[1][1]-x[1])/r),E=d((a[2][0]-x[0])/r),T=d(-(a[2][1]-x[1])/r),b=l,O=h;l=0,h=0;var R=function(t){for(var e=t.length,n=0;no&&(o=s,i=r)}if(0===o)return null;var a=t[i];t[i]=t[n],t[n]=a;for(var l=n+1;l=0;p--){c[p]=t[p][e]/t[p][p];for(var f=p-1;f>=0;f--)t[f][e]-=t[f][p]*c[p]}return c}([[u-=b,f-=O,0,0,w-m],[g-=b,y-=O,0,0,E-m],[0,0,u,f,S-C],[0,0,g,y,T-C]]);if(R){if(p.save(),p.beginPath(),function(){if(void 0===gs){var t=document.createElement("canvas").getContext("2d");t.globalCompositeOperation="lighter",t.fillStyle="rgba(210, 0, 0, 0.75)",Ps(t,4,5,4,0),Ps(t,4,5,0,5);var e=t.getImageData(0,0,3,3).data;gs=Is(e,0)||Is(e,4)||Is(e,8)}return gs}()||c===Rs){p.moveTo(w,S);for(var P=m-w,I=C-S,M=0;M<4;M++)p.lineTo(w+d((M+1)*P/4),S+d(M*I/3)),3!=M&&p.lineTo(w+d((M+1)*P/4),S+d((M+1)*I/3));p.lineTo(E,T)}else p.moveTo(w,S),p.lineTo(m,C),p.lineTo(E,T);p.clip(),p.transform(R[0],R[2],R[1],R[3],m,C),p.translate(_[0]-b,_[3]-O),p.scale(i/n,-i/n),p.drawImage(v.canvas,0,0),p.restore()}})),u&&(p.save(),p.globalCompositeOperation="source-over",p.strokeStyle="black",p.lineWidth=1,a.getTriangles().forEach((function(t,e,n){var i=t.target,o=(i[0][0]-x[0])/r,s=-(i[0][1]-x[1])/r,a=(i[1][0]-x[0])/r,l=-(i[1][1]-x[1])/r,h=(i[2][0]-x[0])/r,u=-(i[2][1]-x[1])/r;p.beginPath(),p.moveTo(a,l),p.lineTo(o,s),p.lineTo(h,u),p.closePath(),p.stroke()})),p.restore()),p.canvas}(i,o,this.pixelRatio_,s,this.sourceTileGrid_.getExtent(),r,a,this.triangulation_,t,this.gutter_,this.renderEdges_,this.contextOptions_),this.state=2}this.changed()},e.prototype.load=function(){if(0==this.state){this.state=1,this.changed();var t=0;this.sourcesListenerKeys_=[],this.sourceTiles_.forEach(function(e,n,i){var o=e.getState();if(0==o||1==o){t++;var r=R(e,x,(function(n){var i=e.getState();2!=i&&3!=i&&4!=i||(I(r),0==--t&&(this.unlistenSources_(),this.reproject_()))}),this);this.sourcesListenerKeys_.push(r)}}.bind(this)),0===t?setTimeout(this.reproject_.bind(this),0):this.sourceTiles_.forEach((function(t,e,n){0==t.getState()&&t.load()}))}},e.prototype.unlistenSources_=function(){this.sourcesListenerKeys_.forEach(I),this.sourcesListenerKeys_=null},e}(Es),As=function(){function t(t){this.highWaterMark=void 0!==t?t:2048,this.count_=0,this.entries_={},this.oldest_=null,this.newest_=null}return t.prototype.canExpireCache=function(){return this.highWaterMark>0&&this.getCount()>this.highWaterMark},t.prototype.clear=function(){this.count_=0,this.entries_={},this.oldest_=null,this.newest_=null},t.prototype.containsKey=function(t){return this.entries_.hasOwnProperty(t)},t.prototype.forEach=function(t){for(var e=this.oldest_;e;)t(e.value_,e.key_,this),e=e.newer},t.prototype.get=function(t,e){var n=this.entries_[t];return yt(void 0!==n,15),n===this.newest_||(n===this.oldest_?(this.oldest_=this.oldest_.newer,this.oldest_.older=null):(n.newer.older=n.older,n.older.newer=n.newer),n.newer=null,n.older=this.newest_,this.newest_.newer=n,this.newest_=n),n.value_},t.prototype.remove=function(t){var e=this.entries_[t];return yt(void 0!==e,15),e===this.newest_?(this.newest_=e.older,this.newest_&&(this.newest_.newer=null)):e===this.oldest_?(this.oldest_=e.newer,this.oldest_&&(this.oldest_.older=null)):(e.newer.older=e.older,e.older.newer=e.newer),delete this.entries_[t],--this.count_,e.value_},t.prototype.getCount=function(){return this.count_},t.prototype.getKeys=function(){var t,e=new Array(this.count_),n=0;for(t=this.newest_;t;t=t.older)e[n++]=t.key_;return e},t.prototype.getValues=function(){var t,e=new Array(this.count_),n=0;for(t=this.newest_;t;t=t.older)e[n++]=t.value_;return e},t.prototype.peekLast=function(){return this.oldest_.value_},t.prototype.peekLastKey=function(){return this.oldest_.key_},t.prototype.peekFirstKey=function(){return this.newest_.key_},t.prototype.pop=function(){var t=this.oldest_;return delete this.entries_[t.key_],t.newer&&(t.newer.older=null),this.oldest_=t.newer,this.oldest_||(this.newest_=null),--this.count_,t.value_},t.prototype.replace=function(t,e){this.get(t),this.entries_[t].value_=e},t.prototype.set=function(t,e){yt(!(t in this.entries_),16);var n={key_:t,newer:null,older:this.newest_,value_:e};this.newest_?this.newest_.newer=n:this.oldest_=n,this.newest_=n,this.entries_[t]=n,++this.count_},t.prototype.setSize=function(t){this.highWaterMark=t},t}();function Ds(t,e,n,i){return void 0!==i?(i[0]=t,i[1]=e,i[2]=n,i):[t,e,n]}function ks(t,e,n){return t+"/"+e+"/"+n}function js(t){return ks(t[0],t[1],t[2])}var Gs=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),zs=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Gs(e,t),e.prototype.expireCache=function(t){for(;this.canExpireCache()&&!(this.peekLast().getKey()in t);)this.pop().release()},e.prototype.pruneExceptNewestZ=function(){if(0!==this.getCount()){var t=this.peekFirstKey().split("/").map(Number)[0];this.forEach(function(e){e.tileCoord[0]!==t&&(this.remove(js(e.tileCoord)),e.release())}.bind(this))}},e}(As),Ws=zs,Xs=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}();function Ns(t){return t?Array.isArray(t)?function(e){return t}:"function"==typeof t?t:function(e){return[t]}:null}var Ys=function(t){function e(e){var n=t.call(this)||this;n.projection=ze(e.projection),n.attributions_=Ns(e.attributions),n.attributionsCollapsible_=void 0===e.attributionsCollapsible||e.attributionsCollapsible,n.loading=!1,n.state_=void 0!==e.state?e.state:Mt,n.wrapX_=void 0!==e.wrapX&&e.wrapX,n.viewResolver=null,n.viewRejector=null;var i=n;return n.viewPromise_=new Promise((function(t,e){i.viewResolver=t,i.viewRejector=e})),n}return Xs(e,t),e.prototype.getAttributions=function(){return this.attributions_},e.prototype.getAttributionsCollapsible=function(){return this.attributionsCollapsible_},e.prototype.getProjection=function(){return this.projection},e.prototype.getResolutions=function(){return A()},e.prototype.getView=function(){return this.viewPromise_},e.prototype.getState=function(){return this.state_},e.prototype.getWrapX=function(){return this.wrapX_},e.prototype.getContextOptions=function(){},e.prototype.refresh=function(){this.changed()},e.prototype.setAttributions=function(t){this.attributions_=Ns(t),this.changed()},e.prototype.setState=function(t){this.state_=t,this.changed()},e}(z),Ks=[0,0,0],Bs=function(){function t(t){var e,n,i;if(this.minZoom=void 0!==t.minZoom?t.minZoom:0,this.resolutions_=t.resolutions,yt((e=this.resolutions_,!0,n=function(t,e){return e-t}||r,e.every((function(t,i){if(0===i)return!0;var o=n(e[i-1],t);return!(o>0||0===o)}))),17),!t.origins)for(var o=0,s=this.resolutions_.length-1;o=this.minZoom;){if(e(a,2===this.zoomFactor_?no(o=Math.floor(o/2),o,r=Math.floor(r/2),r,n):this.getTileRangeForExtentAndZ(s,a,n)))return!0;--a}return!1},t.prototype.getExtent=function(){return this.extent_},t.prototype.getMaxZoom=function(){return this.maxZoom},t.prototype.getMinZoom=function(){return this.minZoom},t.prototype.getOrigin=function(t){return this.origin_?this.origin_:this.origins_[t]},t.prototype.getResolution=function(t){return this.resolutions_[t]},t.prototype.getResolutions=function(){return this.resolutions_},t.prototype.getTileCoordChildTileRange=function(t,e,n){if(t[0]this.maxZoom||e0?i:Math.max(s/a[0],r/a[1]),h=o+1,u=new Array(h),c=0;cn||n>e.getMaxZoom())return!1;var r=e.getFullTileRange(n);return!r||r.containsXY(i,o)}(t,i)?t:null},e.prototype.clear=function(){this.tileCache.clear()},e.prototype.refresh=function(){this.clear(),t.prototype.refresh.call(this)},e.prototype.updateCacheSize=function(t,e){var n=this.getTileCacheForProjection(e);t>n.highWaterMark&&(n.highWaterMark=t)},e.prototype.useTile=function(t,e,n,i){},e}(Ys),Js=function(t){function e(e,n){var i=t.call(this,e)||this;return i.tile=n,i}return Hs(e,t),e}(t),Qs=qs;function $s(t,e){var n=/\{z\}/g,i=/\{x\}/g,o=/\{y\}/g,r=/\{-y\}/g;return function(s,a,l){return s?t.replace(n,s[0].toString()).replace(i,s[1].toString()).replace(o,s[2].toString()).replace(r,(function(){var t=s[0],n=e.getFullTileRange(t);return yt(n,55),(n.getHeight()-s[2]-1).toString()})):void 0}}var ta=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),ea=function(t){function e(n){var i=t.call(this,{attributions:n.attributions,cacheSize:n.cacheSize,opaque:n.opaque,projection:n.projection,state:n.state,tileGrid:n.tileGrid,tilePixelRatio:n.tilePixelRatio,wrapX:n.wrapX,transition:n.transition,key:n.key,attributionsCollapsible:n.attributionsCollapsible,zDirection:n.zDirection})||this;return i.generateTileUrlFunction_=i.tileUrlFunction===e.prototype.tileUrlFunction,i.tileLoadFunction=n.tileLoadFunction,n.tileUrlFunction&&(i.tileUrlFunction=n.tileUrlFunction),i.urls=null,n.urls?i.setUrls(n.urls):n.url&&i.setUrl(n.url),i.tileLoadingKeys_={},i}return ta(e,t),e.prototype.getTileLoadFunction=function(){return this.tileLoadFunction},e.prototype.getTileUrlFunction=function(){return Object.getPrototypeOf(this).tileUrlFunction===this.tileUrlFunction?this.tileUrlFunction.bind(this):this.tileUrlFunction},e.prototype.getUrls=function(){return this.urls},e.prototype.handleTileChange=function(t){var e,n=t.target,i=k(n),o=n.getState();1==o?(this.tileLoadingKeys_[i]=!0,e="tileloadstart"):i in this.tileLoadingKeys_&&(delete this.tileLoadingKeys_[i],e=3==o?"tileloaderror":2==o?"tileloadend":void 0),null!=e&&this.dispatchEvent(new Js(e,n))},e.prototype.setTileLoadFunction=function(t){this.tileCache.clear(),this.tileLoadFunction=t,this.changed()},e.prototype.setTileUrlFunction=function(t,e){this.tileUrlFunction=t,this.tileCache.pruneExceptNewestZ(),void 0!==e?this.setKey(e):this.changed()},e.prototype.setUrl=function(t){var e=function(t){var e=[],n=/\{([a-z])-([a-z])\}/.exec(t);if(n){var i=n[1].charCodeAt(0),o=n[2].charCodeAt(0),r=void 0;for(r=i;r<=o;++r)e.push(t.replace(n[0],String.fromCharCode(r)));return e}if(n=/\{(\d+)-(\d+)\}/.exec(t)){for(var s=parseInt(n[2],10),a=parseInt(n[1],10);a<=s;a++)e.push(t.replace(n[0],a.toString()));return e}return e.push(t),e}(t);this.urls=e,this.setUrls(e)},e.prototype.setUrls=function(t){this.urls=t;var e=t.join("\n");this.generateTileUrlFunction_?this.setTileUrlFunction(function(t,e){for(var n=t.length,i=new Array(n),o=0;oOpenStreetMap contributors.'];var o=void 0!==i.crossOrigin?i.crossOrigin:"anonymous",r=void 0!==i.url?i.url:"https://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png";return t.call(this,{attributions:n,attributionsCollapsible:!1,cacheSize:i.cacheSize,crossOrigin:o,imageSmoothing:i.imageSmoothing,maxZoom:void 0!==i.maxZoom?i.maxZoom:19,opaque:void 0===i.opaque||i.opaque,reprojectionErrorThreshold:i.reprojectionErrorThreshold,tileLoadFunction:i.tileLoadFunction,transition:i.transition,url:r,wrapX:i.wrapX,zDirection:i.zDirection})||this}return la(e,t),e}(aa),ua="add",ca="remove",pa=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),fa="length",da=function(t){function e(e,n,i){var o=t.call(this,e)||this;return o.element=n,o.index=i,o}return pa(e,t),e}(t),_a=function(t){function e(e,n){var i=t.call(this)||this;i.on,i.once,i.un;var o=n||{};if(i.unique_=!!o.unique,i.array_=e||[],i.unique_)for(var r=0,s=i.array_.length;r0;)this.pop()},e.prototype.extend=function(t){for(var e=0,n=t.length;e=200&&a.status<300){var i=e.getType(),l=void 0;"json"==i||"text"==i?l=a.responseText:"xml"==i?(l=a.responseXML)||(l=(new DOMParser).parseFromString(a.responseText,"application/xml")):i==xa&&(l=a.response),l?r(e.readFeatures(l,{extent:n,featureProjection:o}),e.readProjection(l)):s()}else s()},a.onerror=s,a.send()}(t,e,n,i,o,(function(t,e){a.addFeatures(t),void 0!==r&&r(t)}),s||p)}}var wa=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),Sa=function(t){function e(e,n,i){var o=t.call(this,e)||this;return o.feature=n,o.features=i,o}return wa(e,t),e}(t),Ea=function(t){function n(e){var n=this,i=e||{};(n=t.call(this,{attributions:i.attributions,projection:void 0,state:Mt,wrapX:void 0===i.wrapX||i.wrapX})||this).on,n.once,n.un,n.loader_=p,n.format_=i.format,n.overlaps_=void 0===i.overlaps||i.overlaps,n.url_=i.url,void 0!==i.loader?n.loader_=i.loader:void 0!==n.url_&&(yt(n.format_,7),n.loader_=Ca(n.url_,n.format_)),n.strategy_=void 0!==i.strategy?i.strategy:ma;var o,r,s=void 0===i.useSpatialIndex||i.useSpatialIndex;return n.featuresRtree_=s?new ga:null,n.loadedExtentsRtree_=new ga,n.loadingExtentsCount_=0,n.nullGeometryFeatures_={},n.idIndex_={},n.uidIndex_={},n.featureChangeKeys_={},n.featuresCollection_=null,Array.isArray(i.features)?r=i.features:i.features&&(r=(o=i.features).getArray()),s||void 0!==o||(o=new _a(r)),void 0!==r&&n.addFeaturesInternal(r),void 0!==o&&n.bindFeaturesCollection_(o),n}return wa(n,t),n.prototype.addFeature=function(t){this.addFeatureInternal(t),this.changed()},n.prototype.addFeatureInternal=function(t){var e=k(t);if(this.addToIndex_(e,t)){this.setupChangeEvents_(e,t);var n=t.getGeometry();if(n){var i=n.getExtent();this.featuresRtree_&&this.featuresRtree_.insert(i,t)}else this.nullGeometryFeatures_[e]=t;this.dispatchEvent(new Sa(ya,t))}else this.featuresCollection_&&this.featuresCollection_.remove(t)},n.prototype.setupChangeEvents_=function(t,n){this.featureChangeKeys_[t]=[R(n,x,this.handleFeatureChange_,this),R(n,e,this.handleFeatureChange_,this)]},n.prototype.addToIndex_=function(t,e){var n=!0,i=e.getId();return void 0!==i&&(i.toString()in this.idIndex_?n=!1:this.idIndex_[i.toString()]=e),n&&(yt(!(t in this.uidIndex_),30),this.uidIndex_[t]=e),n},n.prototype.addFeatures=function(t){this.addFeaturesInternal(t),this.changed()},n.prototype.addFeaturesInternal=function(t){for(var e=[],n=[],i=[],o=0,r=t.length;o0},n.prototype.refresh=function(){this.clear(!0),this.loadedExtentsRtree_.clear(),t.prototype.refresh.call(this)},n.prototype.removeLoadedExtent=function(t){var e,n=this.loadedExtentsRtree_;n.forEachInExtent(t,(function(n){if(ye(n.extent,t))return e=n,!0})),e&&n.remove(e)},n.prototype.removeFeature=function(t){var e=k(t);e in this.nullGeometryFeatures_?delete this.nullGeometryFeatures_[e]:this.featuresRtree_&&this.featuresRtree_.remove(t),this.removeFeatureInternal(t),this.changed()},n.prototype.removeFeatureInternal=function(t){var e=k(t);this.featureChangeKeys_[e].forEach(I),delete this.featureChangeKeys_[e];var n=t.getId();void 0!==n&&delete this.idIndex_[n.toString()],delete this.uidIndex_[e],this.dispatchEvent(new Sa(va,t))},n.prototype.removeFromIdIndex_=function(t){var e=!1;for(var n in this.idIndex_)if(this.idIndex_[n]===t){delete this.idIndex_[n],e=!0;break}return e},n.prototype.setLoader=function(t){this.loader_=t},n.prototype.setUrl=function(t){yt(this.format_,7),this.url_=t,this.setLoader(Ca(t,this.format_))},n}(Ys),Ta=function(){function t(t){var e=t||{};this.font_=e.font,this.rotation_=e.rotation,this.rotateWithView_=e.rotateWithView,this.scale_=e.scale,this.scaleArray_=co(void 0!==e.scale?e.scale:1),this.text_=e.text,this.textAlign_=e.textAlign,this.textBaseline_=e.textBaseline,this.fill_=void 0!==e.fill?e.fill:new Ko({color:"#333"}),this.maxAngle_=void 0!==e.maxAngle?e.maxAngle:Math.PI/4,this.placement_=void 0!==e.placement?e.placement:"point",this.overflow_=!!e.overflow,this.stroke_=void 0!==e.stroke?e.stroke:null,this.offsetX_=void 0!==e.offsetX?e.offsetX:0,this.offsetY_=void 0!==e.offsetY?e.offsetY:0,this.backgroundFill_=e.backgroundFill?e.backgroundFill:null,this.backgroundStroke_=e.backgroundStroke?e.backgroundStroke:null,this.padding_=void 0===e.padding?null:e.padding}return t.prototype.clone=function(){var e=this.getScale();return new t({font:this.getFont(),placement:this.getPlacement(),maxAngle:this.getMaxAngle(),overflow:this.getOverflow(),rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),scale:Array.isArray(e)?e.slice():e,text:this.getText(),textAlign:this.getTextAlign(),textBaseline:this.getTextBaseline(),fill:this.getFill()?this.getFill().clone():void 0,stroke:this.getStroke()?this.getStroke().clone():void 0,offsetX:this.getOffsetX(),offsetY:this.getOffsetY(),backgroundFill:this.getBackgroundFill()?this.getBackgroundFill().clone():void 0,backgroundStroke:this.getBackgroundStroke()?this.getBackgroundStroke().clone():void 0,padding:this.getPadding()})},t.prototype.getOverflow=function(){return this.overflow_},t.prototype.getFont=function(){return this.font_},t.prototype.getMaxAngle=function(){return this.maxAngle_},t.prototype.getPlacement=function(){return this.placement_},t.prototype.getOffsetX=function(){return this.offsetX_},t.prototype.getOffsetY=function(){return this.offsetY_},t.prototype.getFill=function(){return this.fill_},t.prototype.getRotateWithView=function(){return this.rotateWithView_},t.prototype.getRotation=function(){return this.rotation_},t.prototype.getScale=function(){return this.scale_},t.prototype.getScaleArray=function(){return this.scaleArray_},t.prototype.getStroke=function(){return this.stroke_},t.prototype.getText=function(){return this.text_},t.prototype.getTextAlign=function(){return this.textAlign_},t.prototype.getTextBaseline=function(){return this.textBaseline_},t.prototype.getBackgroundFill=function(){return this.backgroundFill_},t.prototype.getBackgroundStroke=function(){return this.backgroundStroke_},t.prototype.getPadding=function(){return this.padding_},t.prototype.setOverflow=function(t){this.overflow_=t},t.prototype.setFont=function(t){this.font_=t},t.prototype.setMaxAngle=function(t){this.maxAngle_=t},t.prototype.setOffsetX=function(t){this.offsetX_=t},t.prototype.setOffsetY=function(t){this.offsetY_=t},t.prototype.setPlacement=function(t){this.placement_=t},t.prototype.setRotateWithView=function(t){this.rotateWithView_=t},t.prototype.setFill=function(t){this.fill_=t},t.prototype.setRotation=function(t){this.rotation_=t},t.prototype.setScale=function(t){this.scale_=t,this.scaleArray_=co(void 0!==t?t:1)},t.prototype.setStroke=function(t){this.stroke_=t},t.prototype.setText=function(t){this.text_=t},t.prototype.setTextAlign=function(t){this.textAlign_=t},t.prototype.setTextBaseline=function(t){this.textBaseline_=t},t.prototype.setBackgroundFill=function(t){this.backgroundFill_=t},t.prototype.setBackgroundStroke=function(t){this.backgroundStroke_=t},t.prototype.setPadding=function(t){this.padding_=t},t}(),ba=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),Oa=function(t){function e(e){var n=t.call(this)||this;if(n.on,n.once,n.un,n.id_=void 0,n.geometryName_="geometry",n.style_=null,n.styleFunction_=void 0,n.geometryChangeKey_=null,n.addChangeListener(n.geometryName_,n.handleGeometryChanged_),e)if("function"==typeof e.getSimplifiedGeometry){var i=e;n.setGeometry(i)}else{var o=e;n.setProperties(o)}return n}return ba(e,t),e.prototype.clone=function(){var t=new e(this.hasProperties()?this.getProperties():null);t.setGeometryName(this.getGeometryName());var n=this.getGeometry();n&&t.setGeometry(n.clone());var i=this.getStyle();return i&&t.setStyle(i),t},e.prototype.getGeometry=function(){return this.get(this.geometryName_)},e.prototype.getId=function(){return this.id_},e.prototype.getGeometryName=function(){return this.geometryName_},e.prototype.getStyle=function(){return this.style_},e.prototype.getStyleFunction=function(){return this.styleFunction_},e.prototype.handleGeometryChange_=function(){this.changed()},e.prototype.handleGeometryChanged_=function(){this.geometryChangeKey_&&(I(this.geometryChangeKey_),this.geometryChangeKey_=null);var t=this.getGeometry();t&&(this.geometryChangeKey_=R(t,x,this.handleGeometryChange_,this)),this.changed()},e.prototype.setGeometry=function(t){this.set(this.geometryName_,t)},e.prototype.setStyle=function(t){var e,n;this.style_=t,this.styleFunction_=t?"function"==typeof(e=t)?e:(Array.isArray(e)?n=e:(yt("function"==typeof e.getZIndex,41),n=[e]),function(){return n}):void 0,this.changed()},e.prototype.setId=function(t){this.id_=t,this.changed()},e.prototype.setGeometryName=function(t){this.removeChangeListener(this.geometryName_,this.handleGeometryChanged_),this.geometryName_=t,this.addChangeListener(this.geometryName_,this.handleGeometryChanged_),this.handleGeometryChanged_()},e}(z),Ra=Oa,Pa=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),Ia=function(t){function e(e){var n=t.call(this)||this;return n.map_=e,n}return Pa(e,t),e.prototype.dispatchRenderEvent=function(t,e){A()},e.prototype.calculateMatrices2D=function(t){var e=t.viewState,n=t.coordinateToPixelTransform,i=t.pixelToCoordinateTransform;Fn(n,t.size[0]/2,t.size[1]/2,1/e.resolution,-1/e.resolution,-e.rotation,-e.center[0],-e.center[1]),Ln(i,n)},e.prototype.forEachFeatureAtCoordinate=function(t,e,n,i,o,r,s,a){var l,h=e.viewState;function u(t,e,n,i){return o.call(r,e,t?n:null,i)}var c=h.projection,p=vn(t.slice(),c),f=[[0,0]];if(c.canWrapX()&&i){var d=Fe(c.getExtent());f.push([-d,0],[d,0])}for(var _=e.layerStatesArray,g=_.length,y=[],v=[],m=0;m=0;--x){var C=_[x],w=C.layer;if(w.hasRenderer()&&Lt(C,h)&&s.call(a,w)){var S=w.getRenderer(),E=w.getSource();if(S&&E){var T=E.getWrapX()?p:t,b=u.bind(null,C.managed);v[0]=T[0]+f[m][0],v[1]=T[1]+f[m][1],l=S.forEachFeatureAtCoordinate(v,e,n,b,y)}if(l)return l}}if(0!==y.length){var O=1/y.length;return y.forEach((function(t,e){return t.distanceSq+=e*O})),y.sort((function(t,e){return t.distanceSq-e.distanceSq})),y.some((function(t){return l=t.callback(t.feature,t.layer,t.geometry)})),l}},e.prototype.forEachLayerAtPixel=function(t,e,n,i,o){return A()},e.prototype.hasFeatureAtCoordinate=function(t,e,n,i,o,r){return void 0!==this.forEachFeatureAtCoordinate(t,e,n,i,u,this,o,r)},e.prototype.getMap=function(){return this.map_},e.prototype.renderFrame=function(t){A()},e.prototype.scheduleExpireIconCache=function(t){ts.canExpireCache()&&t.postRenderFunctions.push(Ma)},e}(o);function Ma(t,e){ts.expire()}var Fa=Ia,La=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),Aa=function(t){function n(n){var i=t.call(this,n)||this;i.fontChangeListenerKey_=R(Mo,e,n.redrawText.bind(n)),i.element_=document.createElement("div");var o=i.element_.style;o.position="absolute",o.width="100%",o.height="100%",o.zIndex="0",i.element_.className="ol-unselectable ol-layers";var r=n.getViewport();return r.insertBefore(i.element_,r.firstChild||null),i.children_=[],i.renderedVisible_=!0,i}return La(n,t),n.prototype.dispatchRenderEvent=function(t,e){var n=this.getMap();if(n.hasListener(t)){var i=new Ji(t,void 0,e);n.dispatchEvent(i)}},n.prototype.disposeInternal=function(){I(this.fontChangeListenerKey_),this.element_.parentNode.removeChild(this.element_),t.prototype.disposeInternal.call(this)},n.prototype.renderFrame=function(t){if(t){this.calculateMatrices2D(t),this.dispatchRenderEvent(Rt,t);var e=t.layerStatesArray.sort((function(t,e){return t.zIndex-e.zIndex})),n=t.viewState;this.children_.length=0;for(var i=[],o=null,r=0,s=e.length;r=0;--r)i[r].renderDeclutter(t);!function(t,e){for(var n=t.childNodes,i=0;;++i){var o=n[i],r=e[i];if(!o&&!r)break;o!==r&&(o?r?t.insertBefore(r,o):(t.removeChild(o),--i):t.appendChild(r))}}(this.element_,this.children_),this.dispatchRenderEvent("postcompose",t),this.renderedVisible_||(this.element_.style.display="",this.renderedVisible_=!0),this.scheduleExpireIconCache(t)}else this.renderedVisible_&&(this.element_.style.display="none",this.renderedVisible_=!1)},n.prototype.forEachLayerAtPixel=function(t,e,n,i,o){for(var r=e.viewState,s=e.layerStatesArray,a=s.length-1;a>=0;--a){var l=s[a],h=l.layer;if(h.hasRenderer()&&Lt(l,r)&&o(h)){var u=h.getRenderer().getDataAtPixel(t,e,n);if(u){var c=i(h,u);if(c)return c}}}},n}(Fa),Da=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),ka="layers",ja=function(t){function n(e){var n=this,i=e||{},o=f({},i);delete o.layers;var r=i.layers;return(n=t.call(this,o)||this).on,n.once,n.un,n.layersListenerKeys_=[],n.listenerKeys_={},n.addChangeListener(ka,n.handleLayersChanged_),r?Array.isArray(r)?r=new _a(r.slice(),{unique:!0}):yt("function"==typeof r.getArray,43):r=new _a(void 0,{unique:!0}),n.setLayers(r),n}return Da(n,t),n.prototype.handleLayerChange_=function(){this.changed()},n.prototype.handleLayersChanged_=function(){this.layersListenerKeys_.forEach(I),this.layersListenerKeys_.length=0;var t=this.getLayers();for(var n in this.layersListenerKeys_.push(R(t,ua,this.handleLayersAdd_,this),R(t,ca,this.handleLayersRemove_,this)),this.listenerKeys_)this.listenerKeys_[n].forEach(I);d(this.listenerKeys_);for(var i=t.getArray(),o=0,r=i.length;othis.moveTolerance_||Math.abs(t.clientY-this.down_.clientY)>this.moveTolerance_},e.prototype.disposeInternal=function(){this.relayedListenerKey_&&(I(this.relayedListenerKey_),this.relayedListenerKey_=null),this.element_.removeEventListener(b,this.boundHandleTouchMove_),this.pointerdownListenerKey_&&(I(this.pointerdownListenerKey_),this.pointerdownListenerKey_=null),this.dragListenerKeys_.forEach(I),this.dragListenerKeys_.length=0,this.element_=null,t.prototype.disposeInternal.call(this)},e}(m),Ba="layergroup",Za="size",Va="target",Ua="view",Ha=1/0,qa=function(){function t(t,e){this.priorityFunction_=t,this.keyFunction_=e,this.elements_=[],this.priorities_=[],this.queuedElements_={}}return t.prototype.clear=function(){this.elements_.length=0,this.priorities_.length=0,d(this.queuedElements_)},t.prototype.dequeue=function(){var t=this.elements_,e=this.priorities_,n=t[0];1==t.length?(t.length=0,e.length=0):(t[0]=t.pop(),e[0]=e.pop(),this.siftUp_(0));var i=this.keyFunction_(n);return delete this.queuedElements_[i],n},t.prototype.enqueue=function(t){yt(!(this.keyFunction_(t)in this.queuedElements_),31);var e=this.priorityFunction_(t);return e!=Ha&&(this.elements_.push(t),this.priorities_.push(e),this.queuedElements_[this.keyFunction_(t)]=!0,this.siftDown_(0,this.elements_.length-1),!0)},t.prototype.getCount=function(){return this.elements_.length},t.prototype.getLeftChildIndex_=function(t){return 2*t+1},t.prototype.getRightChildIndex_=function(t){return 2*t+2},t.prototype.getParentIndex_=function(t){return t-1>>1},t.prototype.heapify_=function(){var t;for(t=(this.elements_.length>>1)-1;t>=0;t--)this.siftUp_(t)},t.prototype.isEmpty=function(){return 0===this.elements_.length},t.prototype.isKeyQueued=function(t){return t in this.queuedElements_},t.prototype.isQueued=function(t){return this.isKeyQueued(this.keyFunction_(t))},t.prototype.siftUp_=function(t){for(var e=this.elements_,n=this.priorities_,i=e.length,o=e[t],r=n[t],s=t;t>1;){var a=this.getLeftChildIndex_(t),l=this.getRightChildIndex_(t),h=lt;){var s=this.getParentIndex_(e);if(!(i[s]>r))break;n[e]=n[s],i[e]=i[s],e=s}n[e]=o,i[e]=r},t.prototype.reprioritize=function(){var t,e,n,i=this.priorityFunction_,o=this.elements_,r=this.priorities_,s=0,a=o.length;for(e=0;e0;)i=(n=this.dequeue()[0]).getKey(),0!==n.getState()||i in this.tilesLoadingKeys_||(this.tilesLoadingKeys_[i]=!0,++this.tilesLoading_,++o,n.load())},e}(qa),$a="center",tl="resolution",el="rotation";function nl(t,e,n){return function(i,o,r,s,a){if(i){var l=e?0:r[0]*o,h=e?0:r[1]*o,u=a?a[0]:0,c=a?a[1]:0,p=t[0]+l/2+u,f=t[2]-l/2+u,d=t[1]+h/2+c,_=t[3]-h/2+c;p>f&&(f=p=(f+p)/2),d>_&&(_=d=(_+d)/2);var g=vt(i[0],p,f),y=vt(i[1],d,_),v=30*o;return s&&n&&(g+=-v*Math.log(1+Math.max(0,p-i[0])/v)+v*Math.log(1+Math.max(0,i[0]-f)/v),y+=-v*Math.log(1+Math.max(0,d-i[1])/v)+v*Math.log(1+Math.max(0,i[1]-_)/v)),[g,y]}}}function il(t){return t}function ol(t,e,n,i){var o=Fe(e)/n[0],r=Re(e)/n[1];return i?Math.min(t,Math.max(o,r)):Math.min(t,Math.min(o,r))}function rl(t,e,n){var i=Math.min(t,e);return i*=Math.log(1+50*Math.max(0,t/e-1))/50+1,n&&(i=Math.max(i,n),i/=Math.log(1+50*Math.max(0,n/t-1))/50+1),vt(i,n/2,2*e)}function sl(t,e,n,i,o){return function(r,s,a,l){if(void 0!==r){var h=i?ol(t,i,a,o):t;return(void 0===n||n)&&l?rl(r,h,e):vt(r,e,h)}}}function al(t){return void 0!==t?0:void 0}function ll(t){return void 0!==t?t:void 0}var hl=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),ul=function(t){function e(e){var n=t.call(this)||this;n.on,n.once,n.un;var i=f({},e);return n.hints_=[0,0],n.animations_=[],n.updateAnimationKey_,n.projection_=Ne(i.projection,"EPSG:3857"),n.viewportSize_=[100,100],n.targetCenter_=null,n.targetResolution_,n.targetRotation_,n.nextCenter_=null,n.nextResolution_,n.nextRotation_,n.cancelAnchor_=void 0,i.center&&(i.center=tn(i.center,n.projection_)),i.extent&&(i.extent=nn(i.extent,n.projection_)),n.applyOptions_(i),n}return hl(e,t),e.prototype.applyOptions_=function(t){var e=function(t){var e,n,i,o=void 0!==t.minZoom?t.minZoom:0,r=void 0!==t.maxZoom?t.maxZoom:28,a=void 0!==t.zoomFactor?t.zoomFactor:2,l=void 0!==t.multiWorld&&t.multiWorld,h=void 0===t.smoothResolutionConstraint||t.smoothResolutionConstraint,u=void 0!==t.showFullExtent&&t.showFullExtent,c=Ne(t.projection,"EPSG:3857"),p=c.getExtent(),f=t.constrainOnlyCenter,d=t.extent;if(l||d||!c.isGlobal()||(f=!1,d=p),void 0!==t.resolutions){var _=t.resolutions;n=_[o],i=void 0!==_[r]?_[r]:_[_.length-1],e=t.constrainResolution?function(t,e,n,i){return function(o,r,a,l){if(void 0!==o){var h=t[0],u=t[t.length-1],c=n?ol(h,n,a,i):h;if(l)return void 0===e||e?rl(o,c,u):vt(o,u,c);var p=Math.min(c,o),f=Math.floor(s(t,p,r));return t[f]>c&&f1&&"function"==typeof arguments[n-1]&&(e=arguments[n-1],--n);for(var i=0;i0},e.prototype.getInteracting=function(){return this.hints_[1]>0},e.prototype.cancelAnimations=function(){var t;this.setHint(0,-this.hints_[0]);for(var e=0,n=this.animations_.length;e=0;--n){for(var i=this.animations_[n],o=!0,r=0,s=i.length;r0?l/a.duration:1;h>=1?(a.complete=!0,h=1):o=!1;var u=a.easing(h);if(a.sourceCenter){var c=a.sourceCenter[0],p=a.sourceCenter[1],f=a.targetCenter[0],d=a.targetCenter[1];this.nextCenter_=a.targetCenter;var _=c+u*(f-c),g=p+u*(d-p);this.targetCenter_=[_,g]}if(a.sourceResolution&&a.targetResolution){var y=1===u?a.targetResolution:a.sourceResolution+u*(a.targetResolution-a.sourceResolution);if(a.anchor){var v=this.getViewportSize_(this.getRotation()),m=this.constraints_.resolution(y,0,v,!0);this.targetCenter_=this.calculateCenterZoom(m,a.anchor)}this.nextResolution_=a.targetResolution,this.targetResolution_=y,this.applyTargetState_(!0)}if(void 0!==a.sourceRotation&&void 0!==a.targetRotation){var x=1===u?Et(a.targetRotation+Math.PI,2*Math.PI)-Math.PI:a.sourceRotation+u*(a.targetRotation-a.sourceRotation);if(a.anchor){var C=this.constraints_.rotation(x,!0);this.targetCenter_=this.calculateCenterRotate(C,a.anchor)}this.nextRotation_=a.targetRotation,this.targetRotation_=x}if(this.applyTargetState_(!0),e=!0,!a.complete)break}}if(o){this.animations_[n]=null,this.setHint(0,-1),this.nextCenter_=null,this.nextResolution_=NaN,this.nextRotation_=NaN;var w=i[0].callback;w&&cl(w,!0)}}this.animations_=this.animations_.filter(Boolean),e&&void 0===this.updateAnimationKey_&&(this.updateAnimationKey_=requestAnimationFrame(this.updateAnimations_.bind(this)))}},e.prototype.calculateCenterRotate=function(t,e){var n,i,o,r=this.getCenterInternal();return void 0!==r&&(yn(n=[r[0]-e[0],r[1]-e[1]],t-this.getRotation()),o=e,(i=n)[0]+=+o[0],i[1]+=+o[1]),n},e.prototype.calculateCenterZoom=function(t,e){var n,i=this.getCenterInternal(),o=this.getResolution();return void 0!==i&&void 0!==o&&(n=[e[0]-t*(e[0]-i[0])/o,e[1]-t*(e[1]-i[1])/o]),n},e.prototype.getViewportSize_=function(t){var e=this.viewportSize_;if(t){var n=e[0],i=e[1];return[Math.abs(n*Math.cos(t))+Math.abs(i*Math.sin(t)),Math.abs(n*Math.sin(t))+Math.abs(i*Math.cos(t))]}return e},e.prototype.setViewportSize=function(t){this.viewportSize_=Array.isArray(t)?t.slice():[100,100],this.getAnimating()||this.resolveConstraints(0)},e.prototype.getCenter=function(){var t=this.getCenterInternal();return t?$e(t,this.getProjection()):t},e.prototype.getCenterInternal=function(){return this.get($a)},e.prototype.getConstraints=function(){return this.constraints_},e.prototype.getConstrainResolution=function(){return this.options_.constrainResolution},e.prototype.getHints=function(t){return void 0!==t?(t[0]=this.hints_[0],t[1]=this.hints_[1],t):this.hints_.slice()},e.prototype.calculateExtent=function(t){return en(this.calculateExtentInternal(t),this.getProjection())},e.prototype.calculateExtentInternal=function(t){var e=t||this.getViewportSizeMinusPadding_(),n=this.getCenterInternal();yt(n,1);var i=this.getResolution();yt(void 0!==i,2);var o=this.getRotation();return yt(void 0!==o,3),Oe(n,i,o,e)},e.prototype.getMaxResolution=function(){return this.maxResolution_},e.prototype.getMinResolution=function(){return this.minResolution_},e.prototype.getMaxZoom=function(){return this.getZoomForResolution(this.minResolution_)},e.prototype.setMaxZoom=function(t){this.applyOptions_(this.getUpdatedOptions_({maxZoom:t}))},e.prototype.getMinZoom=function(){return this.getZoomForResolution(this.maxResolution_)},e.prototype.setMinZoom=function(t){this.applyOptions_(this.getUpdatedOptions_({minZoom:t}))},e.prototype.setConstrainResolution=function(t){this.applyOptions_(this.getUpdatedOptions_({constrainResolution:t}))},e.prototype.getProjection=function(){return this.projection_},e.prototype.getResolution=function(){return this.get(tl)},e.prototype.getResolutions=function(){return this.resolutions_},e.prototype.getResolutionForExtent=function(t,e){return this.getResolutionForExtentInternal(nn(t,this.getProjection()),e)},e.prototype.getResolutionForExtentInternal=function(t,e){var n=e||this.getViewportSizeMinusPadding_(),i=Fe(t)/n[0],o=Re(t)/n[1];return Math.max(i,o)},e.prototype.getResolutionForValueFunction=function(t){var e=t||2,n=this.getConstrainedResolution(this.maxResolution_),i=this.minResolution_,o=Math.log(n/i)/Math.log(e);return function(t){return n/Math.pow(e,t*o)}},e.prototype.getRotation=function(){return this.get(el)},e.prototype.getValueForResolutionFunction=function(t){var e=Math.log(t||2),n=this.getConstrainedResolution(this.maxResolution_),i=this.minResolution_,o=Math.log(n/i)/e;return function(t){return Math.log(n/t)/e/o}},e.prototype.getViewportSizeMinusPadding_=function(t){var e=this.getViewportSize_(t),n=this.padding_;return n&&(e=[e[0]-n[1]-n[3],e[1]-n[0]-n[2]]),e},e.prototype.getState=function(){var t=this.getProjection(),e=this.getResolution(),n=this.getRotation(),i=this.getCenterInternal(),o=this.padding_;if(o){var r=this.getViewportSizeMinusPadding_();i=fl(i,this.getViewportSize_(),[r[0]/2+o[3],r[1]/2+o[0]],e,n)}return{center:i.slice(0),projection:void 0!==t?t:null,resolution:e,nextCenter:this.nextCenter_,nextResolution:this.nextResolution_,nextRotation:this.nextRotation_,rotation:n,zoom:this.getZoom()}},e.prototype.getZoom=function(){var t,e=this.getResolution();return void 0!==e&&(t=this.getZoomForResolution(e)),t},e.prototype.getZoomForResolution=function(t){var e,n,i=this.minZoom_||0;if(this.resolutions_){var o=s(this.resolutions_,t,1);i=o,e=this.resolutions_[o],n=o==this.resolutions_.length-1?2:e/this.resolutions_[o+1]}else e=this.maxResolution_,n=this.zoomFactor_;return i+Math.log(e/t)/Math.log(n)},e.prototype.getResolutionForZoom=function(t){if(this.resolutions_){if(this.resolutions_.length<=1)return 0;var e=vt(Math.floor(t),0,this.resolutions_.length-2),n=this.resolutions_[e]/this.resolutions_[e+1];return this.resolutions_[e]/Math.pow(n,vt(t-e,0,1))}return this.maxResolution_/Math.pow(this.zoomFactor_,t-this.minZoom_)},e.prototype.fit=function(t,e){var n;if(yt(Array.isArray(t)||"function"==typeof t.getSimplifiedGeometry,24),Array.isArray(t))yt(!Ae(t),25),n=Wi(i=nn(t,this.getProjection()));else if(t.getType()===In){var i;(n=Wi(i=nn(t.getExtent(),this.getProjection()))).rotate(this.getRotation(),Te(i))}else{var o=Qe();n=o?t.clone().transform(o,this.getProjection()):t}this.fitInternal(n,e)},e.prototype.rotatedExtentForGeometry=function(t){for(var e=this.getRotation(),n=Math.cos(e),i=Math.sin(-e),o=t.getFlatCoordinates(),r=t.getStride(),s=1/0,a=1/0,l=-1/0,h=-1/0,u=0,c=o.length;u=0;a--){var l=s[a];if(l.getMap()===this&&l.getActive()&&this.getTargetElement()&&(!l.handleEvent(t)||t.propagationStopped))break}}},n.prototype.handlePostRender=function(){var t=this.frameState_,e=this.tileQueue_;if(!e.isEmpty()){var n=this.maxTilesLoading_,i=n;if(t){var o=t.viewHints;if(o[0]||o[1]){var r=Date.now()-t.time>8;n=r?0:8,i=r?0:2}}e.getTilesLoading()0&&e%(2*Math.PI)!=0?t.animate({rotation:0,duration:this.duration_,easing:cn}):t.setRotation(0))}},e.prototype.render=function(t){var e=t.frameState;if(e){var n=e.viewState.rotation;if(n!=this.rotation_){var i="rotate("+n+"rad)";if(this.autoHide_){var o=this.element.classList.contains(tt);o||0!==n?o&&0!==n&&this.element.classList.remove(tt):this.element.classList.add(tt)}this.label_.style.transform=i}this.rotation_=n}},e}($),ml=vl,xl="active",Cl=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}();function wl(t,e,n,i){var o=t.getZoom();if(void 0!==o){var r=t.getConstrainedZoom(o+e),s=t.getResolutionForZoom(r);t.getAnimating()&&t.cancelAnimations(),t.animate({resolution:s,anchor:n,duration:void 0!==i?i:250,easing:cn})}}var Sl=function(t){function e(e){var n=t.call(this)||this;return n.on,n.once,n.un,e&&e.handleEvent&&(n.handleEvent=e.handleEvent),n.map_=null,n.setActive(!0),n}return Cl(e,t),e.prototype.getActive=function(){return this.get(xl)},e.prototype.getMap=function(){return this.map_},e.prototype.handleEvent=function(t){return!0},e.prototype.setActive=function(t){this.set(xl,t)},e.prototype.setMap=function(t){this.map_=t},e}(z),El=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),Tl=function(t){function e(e){var n=t.call(this)||this,i=e||{};return n.delta_=i.delta?i.delta:1,n.duration_=void 0!==i.duration?i.duration:250,n}return El(e,t),e.prototype.handleEvent=function(t){var e=!1;if(t.type==Na.DBLCLICK){var n=t.originalEvent,i=t.map,o=t.coordinate,r=n.shiftKey?-this.delta_:this.delta_;wl(i.getView(),r,o,this.duration_),n.preventDefault(),e=!0}return!e},e}(Sl),bl=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}();function Ol(t){for(var e=t.length,n=0,i=0,o=0;o0}}else if(t.type==Na.POINTERDOWN){var i=this.handleDownEvent(t);this.handlingDownUpSequence=i,e=this.stopDown(i)}else t.type==Na.POINTERMOVE&&this.handleMoveEvent(t);return!e},e.prototype.handleMoveEvent=function(t){},e.prototype.handleUpEvent=function(t){return!1},e.prototype.stopDown=function(t){return t},e.prototype.updateTrackedPointers_=function(t){if(function(t){var e=t.type;return e===Na.POINTERDOWN||e===Na.POINTERDRAG||e===Na.POINTERUP}(t)){var e=t.originalEvent,n=e.pointerId.toString();t.type==Na.POINTERUP?delete this.trackedPointers_[n]:(t.type==Na.POINTERDOWN||n in this.trackedPointers_)&&(this.trackedPointers_[n]=e),this.targetPointers=_(this.trackedPointers_)}},e}(Sl);function Pl(t){var e=arguments;return function(t){for(var n=!0,i=0,o=e.length;i0&&this.condition_(t)){var e=t.map.getView();return this.lastCentroid=null,e.getAnimating()&&e.cancelAnimations(),this.kinetic_&&this.kinetic_.begin(),this.noKinetic_=this.targetPointers.length>1,!0}return!1},e}(Rl),Xl=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),Nl=function(t){function e(e){var n=this,i=e||{};return(n=t.call(this,{stopDown:c})||this).condition_=i.condition?i.condition:Il,n.lastAngle_=void 0,n.duration_=void 0!==i.duration?i.duration:250,n}return Xl(e,t),e.prototype.handleDragEvent=function(t){if(jl(t)){var e=t.map,n=e.getView();if(n.getConstraints().rotation!==al){var i=e.getSize(),o=t.pixel,r=Math.atan2(i[1]/2-o[1],o[0]-i[0]/2);if(void 0!==this.lastAngle_){var s=r-this.lastAngle_;n.adjustRotationInternal(-s)}this.lastAngle_=r}}},e.prototype.handleUpEvent=function(t){return!jl(t)||(t.map.getView().endInteraction(this.duration_),!1)},e.prototype.handleDownEvent=function(t){return!(!jl(t)||!Ll(t)||!this.condition_(t)||(t.map.getView().beginInteraction(),this.lastAngle_=void 0,0))},e}(Rl),Yl=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),Kl=function(t){function e(e){var n=t.call(this)||this;return n.geometry_=null,n.element_=document.createElement("div"),n.element_.style.position="absolute",n.element_.style.pointerEvents="auto",n.element_.className="ol-box "+e,n.map_=null,n.startPixel_=null,n.endPixel_=null,n}return Yl(e,t),e.prototype.disposeInternal=function(){this.setMap(null)},e.prototype.render_=function(){var t=this.startPixel_,e=this.endPixel_,n="px",i=this.element_.style;i.left=Math.min(t[0],e[0])+n,i.top=Math.min(t[1],e[1])+n,i.width=Math.abs(e[0]-t[0])+n,i.height=Math.abs(e[1]-t[1])+n},e.prototype.setMap=function(t){if(this.map_){this.map_.getOverlayContainer().removeChild(this.element_);var e=this.element_.style;e.left="inherit",e.top="inherit",e.width="inherit",e.height="inherit"}this.map_=t,this.map_&&this.map_.getOverlayContainer().appendChild(this.element_)},e.prototype.setPixels=function(t,e){this.startPixel_=t,this.endPixel_=e,this.createOrUpdateGeometry(),this.render_()},e.prototype.createOrUpdateGeometry=function(){var t=this.startPixel_,e=this.endPixel_,n=[t,[t[0],e[1]],e,[e[0],t[1]]].map(this.map_.getCoordinateFromPixelInternal,this.map_);n[4]=n[0].slice(),this.geometry_?this.geometry_.setCoordinates([n]):this.geometry_=new zi([n])},e.prototype.getGeometry=function(){return this.geometry_},e}(o),Bl=Kl,Zl=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),Vl=function(t){function e(e,n,i){var o=t.call(this,e)||this;return o.coordinate=n,o.mapBrowserEvent=i,o}return Zl(e,t),e}(t),Ul=function(t){function e(e){var n=t.call(this)||this;n.on,n.once,n.un;var i=e||{};return n.box_=new Bl(i.className||"ol-dragbox"),n.minArea_=void 0!==i.minArea?i.minArea:64,i.onBoxEnd&&(n.onBoxEnd=i.onBoxEnd),n.startPixel_=null,n.condition_=i.condition?i.condition:Ll,n.boxEndCondition_=i.boxEndCondition?i.boxEndCondition:n.defaultBoxEndCondition,n}return Zl(e,t),e.prototype.defaultBoxEndCondition=function(t,e,n){var i=n[0]-e[0],o=n[1]-e[1];return i*i+o*o>=this.minArea_},e.prototype.getGeometry=function(){return this.box_.getGeometry()},e.prototype.handleDragEvent=function(t){this.box_.setPixels(this.startPixel_,t.pixel),this.dispatchEvent(new Vl("boxdrag",t.coordinate,t))},e.prototype.handleUpEvent=function(t){this.box_.setMap(null);var e=this.boxEndCondition_(t,this.startPixel_,t.pixel);return e&&this.onBoxEnd(t),this.dispatchEvent(new Vl(e?"boxend":"boxcancel",t.coordinate,t)),!1},e.prototype.handleDownEvent=function(t){return!!this.condition_(t)&&(this.startPixel_=t.pixel,this.box_.setMap(t.map),this.box_.setPixels(this.startPixel_,this.startPixel_),this.dispatchEvent(new Vl("boxstart",t.coordinate,t)),!0)},e.prototype.onBoxEnd=function(t){},e}(Rl),Hl=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),ql=function(t){function e(e){var n=this,i=e||{},o=i.condition?i.condition:Dl;return(n=t.call(this,{condition:o,className:i.className||"ol-dragzoom",minArea:i.minArea})||this).duration_=void 0!==i.duration?i.duration:200,n.out_=void 0!==i.out&&i.out,n}return Hl(e,t),e.prototype.onBoxEnd=function(t){var e=this.getMap().getView(),n=this.getGeometry();if(this.out_){var i=e.rotatedExtentForGeometry(n),o=e.getResolutionForExtentInternal(i),r=e.getResolution()/o;(n=n.clone()).scale(r*r)}e.fitInternal(n,{duration:this.duration_,easing:cn})},e}(Ul),Jl=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),Ql=function(t){function e(e){var n=t.call(this)||this,i=e||{};return n.defaultCondition_=function(t){return Al(t)&&kl(t)},n.condition_=void 0!==i.condition?i.condition:n.defaultCondition_,n.duration_=void 0!==i.duration?i.duration:100,n.pixelDelta_=void 0!==i.pixelDelta?i.pixelDelta:128,n}return Jl(e,t),e.prototype.handleEvent=function(t){var e=!1;if(t.type==S){var n=t.originalEvent,i=n.keyCode;if(this.condition_(t)&&(40==i||37==i||39==i||38==i)){var o=t.map.getView(),r=o.getResolution()*this.pixelDelta_,s=0,a=0;40==i?a=-r:37==i?s=-r:39==i?s=r:a=r;var l=[s,a];yn(l,o.getRotation()),function(t,e,n){var i=t.getCenterInternal();if(i){var o=[i[0]+e[0],i[1]+e[1]];t.animateInternal({duration:void 0!==n?n:250,easing:fn,center:t.getConstrainedCenter(o)})}}(o,l,this.duration_),n.preventDefault(),e=!0}}return!e},e}(Sl),$l=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),th=function(t){function e(e){var n=t.call(this)||this,i=e||{};return n.condition_=i.condition?i.condition:kl,n.delta_=i.delta?i.delta:1,n.duration_=void 0!==i.duration?i.duration:100,n}return $l(e,t),e.prototype.handleEvent=function(t){var e=!1;if(t.type==S||t.type==E){var n=t.originalEvent,i=n.charCode;if(this.condition_(t)&&(i=="+".charCodeAt(0)||i=="-".charCodeAt(0))){var o=t.map,r=i=="+".charCodeAt(0)?this.delta_:-this.delta_;wl(o.getView(),r,void 0,this.duration_),n.preventDefault(),e=!0}}return!e},e}(Sl),eh=function(){function t(t,e,n){this.decay_=t,this.minVelocity_=e,this.delay_=n,this.points_=[],this.angle_=0,this.initialVelocity_=0}return t.prototype.begin=function(){this.points_.length=0,this.angle_=0,this.initialVelocity_=0},t.prototype.update=function(t,e){this.points_.push(t,e,Date.now())},t.prototype.end=function(){if(this.points_.length<6)return!1;var t=Date.now()-this.delay_,e=this.points_.length-3;if(this.points_[e+2]0&&this.points_[n+2]>t;)n-=3;var i=this.points_[e+2]-this.points_[n+2];if(i<1e3/60)return!1;var o=this.points_[e]-this.points_[n],r=this.points_[e+1]-this.points_[n+1];return this.angle_=Math.atan2(r,o),this.initialVelocity_=Math.sqrt(o*o+r*r)/i,this.initialVelocity_>this.minVelocity_},t.prototype.getDistance=function(){return(this.minVelocity_-this.initialVelocity_)/this.decay_},t.prototype.getAngle=function(){return this.angle_},t}(),nh=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),ih="trackpad",oh=function(t){function e(e){var n=this,i=e||{};(n=t.call(this,i)||this).totalDelta_=0,n.lastDelta_=0,n.maxDelta_=void 0!==i.maxDelta?i.maxDelta:1,n.duration_=void 0!==i.duration?i.duration:250,n.timeout_=void 0!==i.timeout?i.timeout:80,n.useAnchor_=void 0===i.useAnchor||i.useAnchor,n.constrainResolution_=void 0!==i.constrainResolution&&i.constrainResolution;var o=i.condition?i.condition:Fl;return n.condition_=i.onFocusOnly?Pl(Ml,o):o,n.lastAnchor_=null,n.startTime_=void 0,n.timeoutId_,n.mode_=void 0,n.trackpadEventGap_=400,n.trackpadTimeoutId_,n.deltaPerZoom_=300,n}return nh(e,t),e.prototype.endInteraction_=function(){this.trackpadTimeoutId_=void 0,this.getMap().getView().endInteraction(void 0,this.lastDelta_?this.lastDelta_>0?1:-1:0,this.lastAnchor_)},e.prototype.handleEvent=function(t){if(!this.condition_(t))return!0;if(t.type!==O)return!0;var e,n=t.map,i=t.originalEvent;if(i.preventDefault(),this.useAnchor_&&(this.lastAnchor_=t.coordinate),t.type==O&&(e=i.deltaY,N&&i.deltaMode===WheelEvent.DOM_DELTA_PIXEL&&(e/=B),i.deltaMode===WheelEvent.DOM_DELTA_LINE&&(e*=40)),0===e)return!1;this.lastDelta_=e;var o=Date.now();void 0===this.startTime_&&(this.startTime_=o),(!this.mode_||o-this.startTime_>this.trackpadEventGap_)&&(this.mode_=Math.abs(e)<4?ih:"wheel");var r=n.getView();if(this.mode_===ih&&!r.getConstrainResolution()&&!this.constrainResolution_)return this.trackpadTimeoutId_?clearTimeout(this.trackpadTimeoutId_):(r.getAnimating()&&r.cancelAnimations(),r.beginInteraction()),this.trackpadTimeoutId_=setTimeout(this.endInteraction_.bind(this),this.timeout_),r.adjustZoom(-e/this.deltaPerZoom_,this.lastAnchor_),this.startTime_=o,!1;this.totalDelta_+=e;var s=Math.max(this.timeout_-(o-this.startTime_),0);return clearTimeout(this.timeoutId_),this.timeoutId_=setTimeout(this.handleWheelZoom_.bind(this,n),s),!1},e.prototype.handleWheelZoom_=function(t){var e=t.getView();e.getAnimating()&&e.cancelAnimations();var n=-vt(this.totalDelta_,-this.maxDelta_*this.deltaPerZoom_,this.maxDelta_*this.deltaPerZoom_)/this.deltaPerZoom_;(e.getConstrainResolution()||this.constrainResolution_)&&(n=n?n>0?1:-1:0),wl(e,n,this.lastAnchor_,this.duration_),this.mode_=void 0,this.totalDelta_=0,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_=void 0},e.prototype.setMouseAnchor=function(t){this.useAnchor_=t,t||(this.lastAnchor_=null)},e}(Sl),rh=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),sh=function(t){function e(e){var n=this,i=e||{},o=i;return o.stopDown||(o.stopDown=c),(n=t.call(this,o)||this).anchor_=null,n.lastAngle_=void 0,n.rotating_=!1,n.rotationDelta_=0,n.threshold_=void 0!==i.threshold?i.threshold:.3,n.duration_=void 0!==i.duration?i.duration:250,n}return rh(e,t),e.prototype.handleDragEvent=function(t){var e=0,n=this.targetPointers[0],i=this.targetPointers[1],o=Math.atan2(i.clientY-n.clientY,i.clientX-n.clientX);if(void 0!==this.lastAngle_){var r=o-this.lastAngle_;this.rotationDelta_+=r,!this.rotating_&&Math.abs(this.rotationDelta_)>this.threshold_&&(this.rotating_=!0),e=r}this.lastAngle_=o;var s=t.map,a=s.getView();if(a.getConstraints().rotation!==al){var l=s.getViewport().getBoundingClientRect(),h=Ol(this.targetPointers);h[0]-=l.left,h[1]-=l.top,this.anchor_=s.getCoordinateFromPixelInternal(h),this.rotating_&&(s.render(),a.adjustRotationInternal(e,this.anchor_))}},e.prototype.handleUpEvent=function(t){return!(this.targetPointers.length<2&&(t.map.getView().endInteraction(this.duration_),1))},e.prototype.handleDownEvent=function(t){if(this.targetPointers.length>=2){var e=t.map;return this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.handlingDownUpSequence||e.getView().beginInteraction(),!0}return!1},e}(Rl),ah=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),lh=function(t){function e(e){var n=this,i=e||{},o=i;return o.stopDown||(o.stopDown=c),(n=t.call(this,o)||this).anchor_=null,n.duration_=void 0!==i.duration?i.duration:400,n.lastDistance_=void 0,n.lastScaleDelta_=1,n}return ah(e,t),e.prototype.handleDragEvent=function(t){var e=1,n=this.targetPointers[0],i=this.targetPointers[1],o=n.clientX-i.clientX,r=n.clientY-i.clientY,s=Math.sqrt(o*o+r*r);void 0!==this.lastDistance_&&(e=this.lastDistance_/s),this.lastDistance_=s;var a=t.map,l=a.getView();1!=e&&(this.lastScaleDelta_=e);var h=a.getViewport().getBoundingClientRect(),u=Ol(this.targetPointers);u[0]-=h.left,u[1]-=h.top,this.anchor_=a.getCoordinateFromPixelInternal(u),a.render(),l.adjustResolutionInternal(e,this.anchor_)},e.prototype.handleUpEvent=function(t){if(this.targetPointers.length<2){var e=t.map.getView(),n=this.lastScaleDelta_>1?1:-1;return e.endInteraction(this.duration_,n),!1}return!0},e.prototype.handleDownEvent=function(t){if(this.targetPointers.length>=2){var e=t.map;return this.anchor_=null,this.lastDistance_=void 0,this.lastScaleDelta_=1,this.handlingDownUpSequence||e.getView().beginInteraction(),!0}return!1},e}(Rl),hh=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),uh=function(t){function e(e){return(e=f({},e)).controls||(e.controls=function(t){var e={},n=new _a;return(void 0===e.zoom||e.zoom)&&n.push(new _n(e.zoomOptions)),(void 0===e.rotate||e.rotate)&&n.push(new ml(e.rotateOptions)),(void 0===e.attribution||e.attribution)&&n.push(new kt(e.attributionOptions)),n}()),e.interactions||(e.interactions=function(t){var e={onFocusOnly:!0}||{},n=new _a,i=new eh(-.005,.05,100);return(void 0===e.altShiftDragRotate||e.altShiftDragRotate)&&n.push(new Nl),(void 0===e.doubleClickZoom||e.doubleClickZoom)&&n.push(new Tl({delta:e.zoomDelta,duration:e.zoomDuration})),(void 0===e.dragPan||e.dragPan)&&n.push(new Wl({onFocusOnly:e.onFocusOnly,kinetic:i})),(void 0===e.pinchRotate||e.pinchRotate)&&n.push(new sh),(void 0===e.pinchZoom||e.pinchZoom)&&n.push(new lh({duration:e.zoomDuration})),(void 0===e.keyboard||e.keyboard)&&(n.push(new Ql),n.push(new th({delta:e.zoomDelta,duration:e.zoomDuration}))),(void 0===e.mouseWheelZoom||e.mouseWheelZoom)&&n.push(new oh({onFocusOnly:e.onFocusOnly,duration:e.zoomDuration})),(void 0===e.shiftDragZoom||e.shiftDragZoom)&&n.push(new ql({duration:e.zoomDuration})),n}()),t.call(this,e)||this}return hh(e,t),e.prototype.createRenderer=function(){return new Aa(this)},e}(gl),ch={control:{Attribution:kt,MousePosition:hn,Zoom:_n},coordinate:{createStringXY:function(t){return function(e){return function(t,e){return function(t,e,n){return t?"{x}, {y}".replace("{x}",t[0].toFixed(n)).replace("{y}",t[1].toFixed(n)):""}(t,0,e)}(e,t)}}},extent:{boundingExtent:se},geom:{LineString:gi,LinearRing:Ci,MultiLineString:Ei,MultiPoint:Ii,MultiPolygon:Yi,Point:Oi,Polygon:zi},layer:{Tile:lo,Vector:Cs},proj:{fromLonLat:function(t,e){return Ze(t,"EPSG:4326",void 0!==e?e:"EPSG:3857")},get:ze,transformExtent:Ve},source:{OSM:ha,Vector:Ea},style:{Circle:Yo,Fill:Ko,Stroke:Bo,Style:qo,Text:Ta},Feature:Ra,Map:uh,View:dl}}(),i.default}()})); +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ol=e():t.ol=e()}(self,(function(){return function(){var t={582:function(t){t.exports=function(){"use strict";function t(t,i,r,o,s){!function t(n,i,r,o,s){for(;o>r;){if(o-r>600){var a=o-r+1,l=i-r+1,h=Math.log(a),u=.5*Math.exp(2*h/3),c=.5*Math.sqrt(h*u*(a-u)/a)*(l-a/2<0?-1:1);t(n,i,Math.max(r,Math.floor(i-l*u/a+c)),Math.min(o,Math.floor(i+(a-l)*u/a+c)),s)}var p=n[i],f=r,d=o;for(e(n,r,i),s(n[o],p)>0&&e(n,r,o);f0;)d--}0===s(n[r],p)?e(n,r,d):e(n,++d,o),d<=i&&(r=d+1),i<=d&&(o=d-1)}}(t,i,r||0,o||t.length-1,s||n)}function e(t,e,n){var i=t[e];t[e]=t[n],t[n]=i}function n(t,e){return te?1:0}var i=function(t){void 0===t&&(t=9),this._maxEntries=Math.max(4,t),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()};function r(t,e,n){if(!n)return e.indexOf(t);for(var i=0;i=t.minX&&e.maxY>=t.minY}function d(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function g(e,n,i,r,o){for(var s=[n,i];s.length;)if(!((i=s.pop())-(n=s.pop())<=r)){var a=n+Math.ceil((i-n)/r/2)*r;t(e,a,n,i,o),s.push(n,a,a,i)}}return i.prototype.all=function(){return this._all(this.data,[])},i.prototype.search=function(t){var e=this.data,n=[];if(!f(t,e))return n;for(var i=this.toBBox,r=[];e;){for(var o=0;o=0&&r[e].children.length>this._maxEntries;)this._split(r,e),e--;this._adjustParentBBoxes(i,r,e)},i.prototype._split=function(t,e){var n=t[e],i=n.children.length,r=this._minEntries;this._chooseSplitAxis(n,r,i);var s=this._chooseSplitIndex(n,r,i),a=d(n.children.splice(s,n.children.length-s));a.height=n.height,a.leaf=n.leaf,o(n,this.toBBox),o(a,this.toBBox),e?t[e-1].children.push(a):this._splitRoot(n,a)},i.prototype._splitRoot=function(t,e){this.data=d([t,e]),this.data.height=t.height+1,this.data.leaf=!1,o(this.data,this.toBBox)},i.prototype._chooseSplitIndex=function(t,e,n){for(var i,r,o,a,l,h,c,p=1/0,f=1/0,d=e;d<=n-e;d++){var g=s(t,0,d,this.toBBox),_=s(t,d,n,this.toBBox),y=(r=g,o=_,void 0,void 0,void 0,void 0,a=Math.max(r.minX,o.minX),l=Math.max(r.minY,o.minY),h=Math.min(r.maxX,o.maxX),c=Math.min(r.maxY,o.maxY),Math.max(0,h-a)*Math.max(0,c-l)),v=u(g)+u(_);y=e;f--){var d=t.children[f];a(l,t.leaf?r(d):d),h+=c(l)}return h},i.prototype._adjustParentBBoxes=function(t,e,n){for(var i=n;i>=0;i--)a(e[i],t)},i.prototype._condense=function(t){for(var e=t.length-1,n=void 0;e>=0;e--)0===t[e].children.length?e>0?(n=t[e-1].children).splice(n.indexOf(t[e]),1):this.clear():o(t[e],this.toBBox)},i}()}},e={};function n(i){var r=e[i];if(void 0!==r)return r.exports;var o=e[i]={exports:{}};return t[i].call(o.exports,o,o.exports,n),o.exports}n.d=function(t,e){for(var i in e)n.o(e,i)&&!n.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)};var i={};return function(){"use strict";n.d(i,{default:function(){return Ch}});var t=function(){function t(t){this.propagationStopped,this.defaultPrevented,this.type=t,this.target=null}return t.prototype.preventDefault=function(){this.defaultPrevented=!0},t.prototype.stopPropagation=function(){this.propagationStopped=!0},t}(),e="propertychange",r=function(){function t(){this.disposed=!1}return t.prototype.dispose=function(){this.disposed||(this.disposed=!0,this.disposeInternal())},t.prototype.disposeInternal=function(){},t}();function o(t,e){return t>e?1:t0){for(r=1;r0?r-1:r:t[r-1]-e0)},n.prototype.removeEventListener=function(t,e){var n=this.listeners_&&this.listeners_[t];if(n){var i=n.indexOf(e);-1!==i&&(this.pendingRemovals_&&t in this.pendingRemovals_?(n[i]=p,++this.pendingRemovals_[t]):(n.splice(i,1),0===n.length&&delete this.listeners_[t]))}},n}(r),x="change",C="contextmenu",w="click",S="keydown",E="keypress",T="touchmove",b="wheel";function O(t,e,n,i,r){if(i&&i!==t&&(n=n.bind(i)),r){var o=n;n=function(){t.removeEventListener(e,n),o.apply(this,arguments)}}var s={target:t,type:e,listener:n};return t.addEventListener(e,n),s}function R(t,e,n,i){return O(t,e,n,i,!0)}function I(t){t&&t.target&&(t.target.removeEventListener(t.type,t.listener),d(t))}var P=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),M=function(t){function e(){var e=t.call(this)||this;return e.on=e.onInternal,e.once=e.onceInternal,e.un=e.unInternal,e.revision_=0,e}return P(e,t),e.prototype.changed=function(){++this.revision_,this.dispatchEvent(x)},e.prototype.getRevision=function(){return this.revision_},e.prototype.onInternal=function(t,e){if(Array.isArray(t)){for(var n=t.length,i=new Array(n),r=0;r=0||N.match(/cpu (os|iphone os) 15_4 like mac os x/)),-1!==N.indexOf("webkit")&&-1==N.indexOf("edge")),K=-1!==N.indexOf("macintosh"),Z="undefined"!=typeof devicePixelRatio?devicePixelRatio:1,V="undefined"!=typeof WorkerGlobalScope&&"undefined"!=typeof OffscreenCanvas&&self instanceof WorkerGlobalScope,U="undefined"!=typeof Image&&Image.prototype.decode,H=function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("_",null,e),window.removeEventListener("_",null,e)}catch(t){}return t}();function q(t,e,n,i){var r;return r=n&&n.length?n.shift():V?new OffscreenCanvas(t||300,e||300):document.createElement("canvas"),t&&(r.width=t),e&&(r.height=e),r.getContext("2d",i)}function J(t,e){var n=e.parentNode;n&&n.replaceChild(t,e)}function Q(t){return t&&t.parentNode?t.parentNode.removeChild(t):null}var $=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),tt=function(t){function e(e){var n=t.call(this)||this,i=e.element;return!i||e.target||i.style.pointerEvents||(i.style.pointerEvents="auto"),n.element=i||null,n.target_=null,n.map_=null,n.listenerKeys=[],e.render&&(n.render=e.render),e.target&&n.setTarget(e.target),n}return $(e,t),e.prototype.disposeInternal=function(){Q(this.element),t.prototype.disposeInternal.call(this)},e.prototype.getMap=function(){return this.map_},e.prototype.setMap=function(t){this.map_&&Q(this.element);for(var e=0,n=this.listenerKeys.length;e1?(n=r,i=o):l>0&&(n+=s*l,i+=a*l)}return St(t,e,n,i)}function St(t,e,n,i){var r=n-t,o=i-e;return r*r+o*o}function Et(t){return t*Math.PI/180}function Tt(t,e){var n=t%e;return n*e<0?n+e:n}function bt(t,e,n){return t+n*(e-t)}function Ot(t,e){var n=Math.pow(10,e);return Math.round(t*n)/n}function Rt(t,e){return Math.floor(Ot(t,e))}function It(t,e){return Math.ceil(Ot(t,e))}var Pt=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),Mt=function(t){function e(e){var n=t.call(this)||this;n.on,n.once,n.un,n.background_=e.background;var i=f({},e);return"object"==typeof e.properties&&(delete i.properties,f(i,e.properties)),i.opacity=void 0!==e.opacity?e.opacity:1,vt("number"==typeof i.opacity,64),i.visible=void 0===e.visible||e.visible,i.zIndex=e.zIndex,i.maxResolution=void 0!==e.maxResolution?e.maxResolution:1/0,i.minResolution=void 0!==e.minResolution?e.minResolution:0,i.minZoom=void 0!==e.minZoom?e.minZoom:-1/0,i.maxZoom=void 0!==e.maxZoom?e.maxZoom:1/0,n.className_=void 0!==i.className?i.className:"ol-layer",delete i.className,n.setProperties(i),n.state_=null,n}return Pt(e,t),e.prototype.getBackground=function(){return this.background_},e.prototype.getClassName=function(){return this.className_},e.prototype.getLayerState=function(t){var e=this.state_||{layer:this,managed:void 0===t||t},n=this.getZIndex();return e.opacity=mt(Math.round(100*this.getOpacity())/100,0,1),e.visible=this.getVisible(),e.extent=this.getExtent(),e.zIndex=void 0!==n||e.managed?n:1/0,e.maxResolution=this.getMaxResolution(),e.minResolution=Math.max(this.getMinResolution(),0),e.minZoom=this.getMinZoom(),e.maxZoom=this.getMaxZoom(),this.state_=e,e},e.prototype.getLayersArray=function(t){return L()},e.prototype.getLayerStatesArray=function(t){return L()},e.prototype.getExtent=function(){return this.get(ht)},e.prototype.getMaxResolution=function(){return this.get(ct)},e.prototype.getMinResolution=function(){return this.get(pt)},e.prototype.getMinZoom=function(){return this.get(dt)},e.prototype.getMaxZoom=function(){return this.get(ft)},e.prototype.getOpacity=function(){return this.get(at)},e.prototype.getSourceState=function(){return L()},e.prototype.getVisible=function(){return this.get(lt)},e.prototype.getZIndex=function(){return this.get(ut)},e.prototype.setBackground=function(t){this.background_=t,this.changed()},e.prototype.setExtent=function(t){this.set(ht,t)},e.prototype.setMaxResolution=function(t){this.set(ct,t)},e.prototype.setMinResolution=function(t){this.set(pt,t)},e.prototype.setMaxZoom=function(t){this.set(ft,t)},e.prototype.setMinZoom=function(t){this.set(dt,t)},e.prototype.setOpacity=function(t){vt("number"==typeof t,64),this.set(at,t)},e.prototype.setVisible=function(t){this.set(lt,t)},e.prototype.setZIndex=function(t){this.set(ut,t)},e.prototype.disposeInternal=function(){this.state_&&(this.state_.layer=null,this.state_=null),t.prototype.disposeInternal.call(this)},e}(G),Ft="precompose",Lt="rendercomplete",At="undefined",Dt="ready",kt=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}();function jt(t,e){if(!t.visible)return!1;var n=e.resolution;if(n=t.maxResolution)return!1;var i=e.zoom;return i>t.minZoom&&i<=t.maxZoom}var Gt=function(t){function e(e){var n=this,i=f({},e);delete i.source,(n=t.call(this,i)||this).on,n.once,n.un,n.mapPrecomposeKey_=null,n.mapRenderKey_=null,n.sourceChangeKey_=null,n.renderer_=null,n.rendered=!1,e.render&&(n.render=e.render),e.map&&n.setMap(e.map),n.addChangeListener(gt,n.handleSourcePropertyChange_);var r=e.source?e.source:null;return n.setSource(r),n}return kt(e,t),e.prototype.getLayersArray=function(t){var e=t||[];return e.push(this),e},e.prototype.getLayerStatesArray=function(t){var e=t||[];return e.push(this.getLayerState()),e},e.prototype.getSource=function(){return this.get(gt)||null},e.prototype.getRenderSource=function(){return this.getSource()},e.prototype.getSourceState=function(){var t=this.getSource();return t?t.getState():At},e.prototype.handleSourceChange_=function(){this.changed()},e.prototype.handleSourcePropertyChange_=function(){this.sourceChangeKey_&&(I(this.sourceChangeKey_),this.sourceChangeKey_=null);var t=this.getSource();t&&(this.sourceChangeKey_=O(t,x,this.handleSourceChange_,this)),this.changed()},e.prototype.getFeatures=function(t){return this.renderer_?this.renderer_.getFeatures(t):new Promise((function(t){return t([])}))},e.prototype.getData=function(t){return this.renderer_&&this.rendered?this.renderer_.getData(t):null},e.prototype.render=function(t,e){var n=this.getRenderer();if(n.prepareFrame(t))return this.rendered=!0,n.renderFrame(t,e)},e.prototype.unrender=function(){this.rendered=!1},e.prototype.setMapInternal=function(t){t||this.unrender(),this.set("map",t)},e.prototype.getMapInternal=function(){return this.get("map")},e.prototype.setMap=function(t){this.mapPrecomposeKey_&&(I(this.mapPrecomposeKey_),this.mapPrecomposeKey_=null),t||this.changed(),this.mapRenderKey_&&(I(this.mapRenderKey_),this.mapRenderKey_=null),t&&(this.mapPrecomposeKey_=O(t,Ft,(function(t){var e=t.frameState.layerStatesArray,n=this.getLayerState(!1);vt(!e.some((function(t){return t.layer===n.layer})),67),e.push(n)}),this),this.mapRenderKey_=O(this,x,t.render,t),this.changed())},e.prototype.setSource=function(t){this.set(gt,t)},e.prototype.getRenderer=function(){return this.renderer_||(this.renderer_=this.createRenderer()),this.renderer_},e.prototype.hasRenderer=function(){return!!this.renderer_},e.prototype.createRenderer=function(){return null},e.prototype.disposeInternal=function(){this.renderer_&&(this.renderer_.dispose(),delete this.renderer_),this.setSource(null),t.prototype.disposeInternal.call(this)},e}(Mt),zt=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),Wt=function(t){function e(e){var n=this,i=e||{};(n=t.call(this,{element:document.createElement("div"),render:i.render,target:i.target})||this).ulElement_=document.createElement("ul"),n.collapsed_=void 0===i.collapsed||i.collapsed,n.userCollapsed_=n.collapsed_,n.overrideCollapsible_=void 0!==i.collapsible,n.collapsible_=void 0===i.collapsible||i.collapsible,n.collapsible_||(n.collapsed_=!1);var r=void 0!==i.className?i.className:"ol-attribution",o=void 0!==i.tipLabel?i.tipLabel:"Attributions",s=void 0!==i.expandClassName?i.expandClassName:r+"-expand",a=void 0!==i.collapseLabel?i.collapseLabel:"›",l=void 0!==i.collapseClassName?i.collapseClassName:r+"-collapse";"string"==typeof a?(n.collapseLabel_=document.createElement("span"),n.collapseLabel_.textContent=a,n.collapseLabel_.className=l):n.collapseLabel_=a;var h=void 0!==i.label?i.label:"i";"string"==typeof h?(n.label_=document.createElement("span"),n.label_.textContent=h,n.label_.className=s):n.label_=h;var u=n.collapsible_&&!n.collapsed_?n.collapseLabel_:n.label_;n.toggleButton_=document.createElement("button"),n.toggleButton_.setAttribute("type","button"),n.toggleButton_.setAttribute("aria-expanded",String(!n.collapsed_)),n.toggleButton_.title=o,n.toggleButton_.appendChild(u),n.toggleButton_.addEventListener(w,n.handleClick_.bind(n),!1);var c=r+" ol-unselectable "+nt+(n.collapsed_&&n.collapsible_?" ol-collapsed":"")+(n.collapsible_?"":" ol-uncollapsible"),p=n.element;return p.className=c,p.appendChild(n.toggleButton_),p.appendChild(n.ulElement_),n.renderedAttributions_=[],n.renderedVisible_=!0,n}return zt(e,t),e.prototype.collectSourceAttributions_=function(t){for(var e={},n=[],i=!0,r=t.layerStatesArray,o=0,s=r.length;o0;if(this.renderedVisible_!=n&&(this.element.style.display=n?"":"none",this.renderedVisible_=n),!h(e,this.renderedAttributions_)){!function(t){for(;t.lastChild;)t.removeChild(t.lastChild)}(this.ulElement_);for(var i=0,r=e.length;ir&&(l|=4),ao&&(l|=2),0===l&&(l=1),l}function ve(t,e,n,i,r){return r?(r[0]=t,r[1]=e,r[2]=n,r[3]=i,r):[t,e,n,i]}function me(t){return ve(1/0,1/0,-1/0,-1/0,t)}function xe(t,e,n,i,r){return Se(me(r),t,e,n,i)}function Ce(t,e){return t[0]==e[0]&&t[2]==e[2]&&t[1]==e[1]&&t[3]==e[3]}function we(t,e){e[0]t[2]&&(t[2]=e[0]),e[1]t[3]&&(t[3]=e[1])}function Se(t,e,n,i,r){for(;ne[0]?i[0]=t[0]:i[0]=e[0],t[1]>e[1]?i[1]=t[1]:i[1]=e[1],t[2]=e[0]&&t[1]<=e[3]&&t[3]>=e[1]}function Ge(t){return t[2]=0;--i)if(t[i]!=e[i]){n=!1;break}return n}function We(t,e){var n=Math.cos(e),i=Math.sin(e),r=t[0]*n-t[1]*i,o=t[1]*n+t[0]*i;return t[0]=r,t[1]=o,t}function Xe(t,e){if(e.canWrapX()){var n=ke(e.getExtent()),i=function(t,e,n){var i=e.getExtent(),r=0;if(e.canWrapX()&&(t[0]i[2])){var o=n||ke(i);r=Math.floor((t[0]-i[0])/o)}return r}(t,e,n);i&&(t[0]-=i*n)}return t}function Ne(t,e,n){var i=n||6371008.8,r=Et(t[1]),o=Et(e[1]),s=(o-r)/2,a=Et(e[0]-t[0])/2,l=Math.sin(s)*Math.sin(s)+Math.sin(a)*Math.sin(a)*Math.cos(r)*Math.cos(o);return 2*i*Math.atan2(Math.sqrt(l),Math.sqrt(1-l))}var Ye=!0;function Be(t){Ye=!(void 0===t||t)}function Ke(t,e,n){var i;if(void 0!==e){for(var r=0,o=t.length;r1)for(var o=t[2]-t[0],s=t[3]-t[1],a=0;a=-180&&t[0]<=180&&t[1]>=-90&&t[1]<=90&&(Ye=!1,console.warn("Call useGeographic() from ol/proj once to work with [longitude, latitude] coordinates.")),t}function cn(t,e){return t}function pn(t,e){return t}function fn(t,e){return t}qe(te),qe(oe),rn=te,on=function(t,e,n){var i=t.length,r=n>1?n:2,o=e;void 0===o&&(o=r>2?t.slice():new Array(i));for(var s=0;sQt?a=Qt:a<-Qt&&(a=-Qt),o[s+1]=a}return o},sn=function(t,e,n){var i=t.length,r=n>1?n:2,o=e;void 0===o&&(o=r>2?t.slice():new Array(i));for(var s=0;s0?(e.getAnimating()&&e.cancelAnimations(),e.animate({zoom:i,duration:this.duration_,easing:xn})):e.setZoom(i)}}},e}(tt),bn="XY",On="XYM",Rn="XYZM",In="Point",Pn="LineString",Mn="Polygon",Fn="MultiPoint",Ln="MultiLineString",An="MultiPolygon",Dn="GeometryCollection",kn="Circle";function jn(t,e){var n=e[0],i=e[1];return e[0]=t[0]*n+t[2]*i+t[4],e[1]=t[1]*n+t[3]*i+t[5],e}function Gn(t,e,n,i,r,o,s,a){var l=Math.sin(o),h=Math.cos(o);return t[0]=i*h,t[1]=r*l,t[2]=-i*l,t[3]=r*h,t[4]=s*i*h-a*i*l+e,t[5]=s*r*l+a*r*h+n,t}function zn(t,e){var n,i=(n=e)[0]*n[3]-n[1]*n[2];vt(0!==i,32);var r=e[0],o=e[1],s=e[2],a=e[3],l=e[4],h=e[5];return t[0]=a/i,t[1]=-o/i,t[2]=-s/i,t[3]=r/i,t[4]=(s*h-a*l)/i,t[5]=-(r*h-o*l)/i,t}function Wn(t){var e="matrix("+t.join(", ")+")";if(V)return e;var n=Sn||(Sn=document.createElement("div"));return n.style.transform=e,n.style.transform}function Xn(t,e,n,i,r,o){for(var s=o||[],a=0,l=e;l1)a=n;else{if(p>0){for(var f=0;fr&&(r=h),o=a,s=l}return r}function $n(t,e,n,i,r){for(var o=0,s=n.length;o0;){for(var c=h.pop(),p=h.pop(),f=0,d=t[p],g=t[p+1],_=t[c],y=t[c+1],v=p+i;vf&&(u=v,f=m)}f>r&&(l[(u-e)/i]=1,p+i0&&g>f)&&(d<0&&_0&&_>d)?(a=c,l=p):(o[s++]=a,o[s++]=l,h=a,u=l,a=c,l=p)}}return o[s++]=a,o[s++]=l,s}function ai(t,e,n,i,r,o,s,a){for(var l=0,h=n.length;l>1)],e))<0?a=i+1:(l=i,h=!r);return h?a:~a}(d,v);m<0?(h=(v-d[-m-2])/(d[-m-1]-d[-m-2]),l=e+(-m-2)*i):l=e+m*i}var x=a>1?a:2,C=s||new Array(x);for(g=0;g>1;ro&&(h-a)*(o-l)-(r-a)*(u-l)>0&&s++:u<=o&&(h-a)*(o-l)-(r-a)*(u-l)<0&&s--,a=h,l=u}return 0!==s}function _i(t,e,n,i,r,o){if(0===n.length)return!1;if(!gi(t,e,n[0],i,r,o))return!1;for(var s=1,a=n.length;s=r[0]&&o[2]<=r[2]||o[1]>=r[1]&&o[3]<=r[3]||li(t,e,n,i,(function(t,e){return function(t,e,n){var i=!1,r=ye(t,e),o=ye(t,n);if(1===r||1===o)i=!0;else{var s=t[0],a=t[1],l=t[2],h=t[3],u=e[0],c=e[1],p=n[0],f=n[1],d=(f-c)/(p-u),g=void 0,_=void 0;2&o&&!(2&r)&&(i=(g=p-(f-h)/d)>=s&&g<=l),i||!(4&o)||4&r||(i=(_=f-(p-l)*d)>=a&&_<=h),i||!(8&o)||8&r||(i=(g=p-(f-a)/d)>=s&&g<=l),i||!(16&o)||16&r||(i=(_=f-(p-s)*d)>=a&&_<=h)}return i}(r,t,e)})))}function vi(t,e,n,i,r){if(!function(t,e,n,i,r){return!!(yi(t,e,n,i,r)||gi(t,e,n,i,r[0],r[1])||gi(t,e,n,i,r[0],r[3])||gi(t,e,n,i,r[2],r[1])||gi(t,e,n,i,r[2],r[3]))}(t,e,n[0],i,r))return!1;if(1===n.length)return!0;for(var o=1,s=n.length;oC&&_i(t,e,n,i,u=(c+p)/2,g)&&(x=u,C=w),c=p}return isNaN(x)&&(x=r[s]),a?(a.push(x,g,C),a):[x,g,C]}function Gi(t,e,n,i){for(;e0}function Wi(t,e,n,i,r){for(var o=void 0!==r&&r,s=0,a=n.length;s=1024){var r=0;for(var o in t)0==(3&r++)&&(delete t[o],--e)}i=function(t){var e,n,i,r,o;if(or.exec(t)&&(t=function(t){var e=document.createElement("div");if(e.style.color=t,""!==e.style.color){document.body.appendChild(e);var n=getComputedStyle(e).color;return document.body.removeChild(e),n}return""}(t)),rr.exec(t)){var s,a=t.length-1;s=a<=4?1:2;var l=4===a||8===a;e=parseInt(t.substr(1+0*s,s),16),n=parseInt(t.substr(1+1*s,s),16),i=parseInt(t.substr(1+2*s,s),16),r=l?parseInt(t.substr(1+3*s,s),16):255,1==s&&(e=(e<<4)+e,n=(n<<4)+n,i=(i<<4)+i,l&&(r=(r<<4)+r)),o=[e,n,i,r/255]}else 0==t.indexOf("rgba(")?hr(o=t.slice(5,-1).split(",").map(Number)):0==t.indexOf("rgb(")?((o=t.slice(4,-1).split(",").map(Number)).push(1),hr(o)):vt(!1,14);return o}(n),t[n]=i,++e}return i}}();function lr(t){return Array.isArray(t)?t:ar(t)}function hr(t){return t[0]=mt(t[0]+.5|0,0,255),t[1]=mt(t[1]+.5|0,0,255),t[2]=mt(t[2]+.5|0,0,255),t[3]=mt(t[3],0,1),t}function ur(t){var e=t[0];e!=(0|e)&&(e=e+.5|0);var n=t[1];n!=(0|n)&&(n=n+.5|0);var i=t[2];return i!=(0|i)&&(i=i+.5|0),"rgba("+e+","+n+","+i+","+(void 0===t[3]?1:Math.round(100*t[3])/100)+")"}var cr=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),pr=null,fr=function(t){function e(e){var n=t.call(this,e)||this;return n.container=null,n.renderedResolution,n.tempTransform=[1,0,0,1,0,0],n.pixelTransform=[1,0,0,1,0,0],n.inversePixelTransform=[1,0,0,1,0,0],n.context=null,n.containerReused=!1,n.pixelContext_=null,n.frameState=null,n}return cr(e,t),e.prototype.getImageData=function(t,e,n){var i,r;pr||((i=document.createElement("canvas")).width=1,i.height=1,pr=i.getContext("2d")),pr.clearRect(0,0,1,1);try{pr.drawImage(t,e,n,1,1,0,0,1,1),r=pr.getImageData(0,0,1,1).data}catch(t){return null}return r},e.prototype.getBackground=function(t){var e=this.getLayer().getBackground();return"function"==typeof e&&(e=e(t.viewState.resolution)),e||void 0},e.prototype.useContainer=function(t,e,n,i){var r,o,s=this.getLayer().getClassName();if(t&&t.className===s&&""===t.style.opacity&&1===n&&(!i||t.style.backgroundColor&&h(lr(t.style.backgroundColor),lr(i)))&&(l=t.firstElementChild)instanceof HTMLCanvasElement&&(o=l.getContext("2d")),o&&o.canvas.style.transform===e?(this.container=t,this.context=o,this.containerReused=!0):this.containerReused&&(this.container=null,this.context=null,this.containerReused=!1),!this.container){(r=document.createElement("div")).className=s;var a=r.style;a.position="absolute",a.width="100%",a.height="100%",i&&(a.backgroundColor=i);var l=(o=q()).canvas;r.appendChild(l),(a=l.style).position="absolute",a.left="0",a.transformOrigin="top left",this.container=r,this.context=o}},e.prototype.clipUnrotated=function(t,e,n){var i=Ae(n),r=De(n),o=Re(n),s=Oe(n);jn(e.coordinateToPixelTransform,i),jn(e.coordinateToPixelTransform,r),jn(e.coordinateToPixelTransform,o),jn(e.coordinateToPixelTransform,s);var a=this.inversePixelTransform;jn(a,i),jn(a,r),jn(a,o),jn(a,s),t.save(),t.beginPath(),t.moveTo(Math.round(i[0]),Math.round(i[1])),t.lineTo(Math.round(r[0]),Math.round(r[1])),t.lineTo(Math.round(o[0]),Math.round(o[1])),t.lineTo(Math.round(s[0]),Math.round(s[1])),t.clip()},e.prototype.dispatchRenderEvent_=function(t,e,n){var i=this.getLayer();if(i.hasListener(t)){var r=new ir(t,this.inversePixelTransform,n,e);i.dispatchEvent(r)}},e.prototype.preRender=function(t,e){this.frameState=e,this.dispatchRenderEvent_("prerender",t,e)},e.prototype.postRender=function(t,e){this.dispatchRenderEvent_("postrender",t,e)},e.prototype.getRenderTransform=function(t,e,n,i,r,o,s){var a=r/2,l=o/2,h=i/e,u=-h,c=-t[0]+s,p=-t[1];return Gn(this.tempTransform,a,l,h,u,-n,c,p)},e.prototype.getDataAtPixel=function(t,e,n){var i=jn(this.inversePixelTransform,t.slice()),r=this.context,o=this.getLayer().getExtent();if(o&&!de(o,jn(e.pixelToCoordinateTransform,t.slice())))return null;var s,a=Math.round(i[0]),l=Math.round(i[1]),h=this.pixelContext_;if(!h){var u=document.createElement("canvas");u.width=1,u.height=1,h=u.getContext("2d"),this.pixelContext_=h}h.clearRect(0,0,1,1);try{h.drawImage(r.canvas,a,l,1,1,0,0,1,1),s=h.getImageData(0,0,1,1).data}catch(t){return"SecurityError"===t.name?(this.pixelContext_=null,new Uint8Array):s}return 0===s[3]?null:s},e.prototype.disposeInternal=function(){delete this.frameState,t.prototype.disposeInternal.call(this)},e}(er),dr=fr,gr=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),_r=function(t){function e(e,n,i){var r=t.call(this)||this,o=i||{};return r.tileCoord=e,r.state=n,r.interimTile=null,r.key="",r.transition_=void 0===o.transition?250:o.transition,r.transitionStarts_={},r.interpolate=!!o.interpolate,r}return gr(e,t),e.prototype.changed=function(){this.dispatchEvent(x)},e.prototype.release=function(){},e.prototype.getKey=function(){return this.key+"/"+this.tileCoord},e.prototype.getInterimTile=function(){if(!this.interimTile)return this;var t=this.interimTile;do{if(2==t.getState())return this.transition_=0,t;t=t.interimTile}while(t);return this},e.prototype.refreshInterimChain=function(){if(this.interimTile){var t=this.interimTile,e=this;do{if(2==t.getState()){t.interimTile=null;break}1==t.getState()?e=t:0==t.getState()?e.interimTile=t.interimTile:e=t,t=e.interimTile}while(t)}},e.prototype.getTileCoord=function(){return this.tileCoord},e.prototype.getState=function(){return this.state},e.prototype.setState=function(t){if(3!==this.state&&this.state>t)throw new Error("Tile load sequence violation");this.state=t,this.changed()},e.prototype.load=function(){L()},e.prototype.getAlpha=function(t,e){if(!this.transition_)return 1;var n=this.transitionStarts_[t];if(n){if(-1===n)return 1}else n=e,this.transitionStarts_[t]=n;var i=e-n+1e3/60;return i>=this.transition_?1:mn(i/this.transition_)},e.prototype.inTransition=function(t){return!!this.transition_&&-1!==this.transitionStarts_[t]},e.prototype.endTransition=function(t){this.transition_&&(this.transitionStarts_[t]=-1)},e}(m),yr=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),vr=function(t){function e(e,n,i,r){var o=t.call(this)||this;return o.extent=e,o.pixelRatio_=i,o.resolution=n,o.state=r,o}return yr(e,t),e.prototype.changed=function(){this.dispatchEvent(x)},e.prototype.getExtent=function(){return this.extent},e.prototype.getImage=function(){return L()},e.prototype.getPixelRatio=function(){return this.pixelRatio_},e.prototype.getResolution=function(){return this.resolution},e.prototype.getState=function(){return this.state},e.prototype.load=function(){L()},e}(m),mr=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}();function xr(t,e,n){var i=t,r=!0,o=!1,s=!1,a=[R(i,"load",(function(){s=!0,o||e()}))];return i.src&&U?(o=!0,i.decode().then((function(){r&&e()})).catch((function(t){r&&(s?e():n())}))):a.push(R(i,"error",n)),function(){r=!1,a.forEach(I)}}!function(t){function e(e,n,i,r,o,s){var a=t.call(this,e,n,i,0)||this;return a.src_=r,a.image_=new Image,null!==o&&(a.image_.crossOrigin=o),a.unlisten_=null,a.state=0,a.imageLoadFunction_=s,a}mr(e,t),e.prototype.getImage=function(){return this.image_},e.prototype.handleImageError_=function(){this.state=3,this.unlistenImage_(),this.changed()},e.prototype.handleImageLoad_=function(){void 0===this.resolution&&(this.resolution=Fe(this.extent)/this.image_.height),this.state=2,this.unlistenImage_(),this.changed()},e.prototype.load=function(){0!=this.state&&3!=this.state||(this.state=1,this.changed(),this.imageLoadFunction_(this,this.src_),this.unlisten_=xr(this.image_,this.handleImageLoad_.bind(this),this.handleImageError_.bind(this)))},e.prototype.setImage=function(t){this.image_=t,this.resolution=Fe(this.extent)/this.image_.height},e.prototype.unlistenImage_=function(){this.unlisten_&&(this.unlisten_(),this.unlisten_=null)}}(vr);var Cr,wr=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),Sr=function(t){function e(e,n,i,r,o,s){var a=t.call(this,e,n,s)||this;return a.crossOrigin_=r,a.src_=i,a.key=i,a.image_=new Image,null!==r&&(a.image_.crossOrigin=r),a.unlisten_=null,a.tileLoadFunction_=o,a}return wr(e,t),e.prototype.getImage=function(){return this.image_},e.prototype.setImage=function(t){this.image_=t,this.state=2,this.unlistenImage_(),this.changed()},e.prototype.handleImageError_=function(){var t;this.state=3,this.unlistenImage_(),this.image_=((t=q(1,1)).fillStyle="rgba(0,0,0,0)",t.fillRect(0,0,1,1),t.canvas),this.changed()},e.prototype.handleImageLoad_=function(){var t=this.image_;t.naturalWidth&&t.naturalHeight?this.state=2:this.state=4,this.unlistenImage_(),this.changed()},e.prototype.load=function(){3==this.state&&(this.state=0,this.image_=new Image,null!==this.crossOrigin_&&(this.image_.crossOrigin=this.crossOrigin_)),0==this.state&&(this.state=1,this.changed(),this.tileLoadFunction_(this,this.src_),this.unlisten_=xr(this.image_,this.handleImageLoad_.bind(this),this.handleImageError_.bind(this)))},e.prototype.unlistenImage_=function(){this.unlisten_&&(this.unlisten_(),this.unlisten_=null)},e}(_r),Er=function(){function t(t,e,n,i,r,o){this.sourceProj_=t,this.targetProj_=e;var s={},a=tn(this.targetProj_,this.sourceProj_);this.transformInv_=function(t){var e=t[0]+"/"+t[1];return s[e]||(s[e]=a(t)),s[e]},this.maxSourceExtent_=i,this.errorThresholdSquared_=r*r,this.triangles_=[],this.wrapsXInSource_=!1,this.canWrapXInSource_=this.sourceProj_.canWrapX()&&!!i&&!!this.sourceProj_.getExtent()&&ke(i)==ke(this.sourceProj_.getExtent()),this.sourceWorldWidth_=this.sourceProj_.getExtent()?ke(this.sourceProj_.getExtent()):null,this.targetWorldWidth_=this.targetProj_.getExtent()?ke(this.targetProj_.getExtent()):null;var l=Ae(n),h=De(n),u=Re(n),c=Oe(n),p=this.transformInv_(l),f=this.transformInv_(h),d=this.transformInv_(u),g=this.transformInv_(c),_=10+(o?Math.max(0,Math.ceil(Ct(be(n)/(o*o*256*256)))):0);if(this.addQuad_(l,h,u,c,p,f,d,g,_),this.wrapsXInSource_){var y=1/0;this.triangles_.forEach((function(t,e,n){y=Math.min(y,t.source[0][0],t.source[1][0],t.source[2][0])})),this.triangles_.forEach(function(t){if(Math.max(t.source[0][0],t.source[1][0],t.source[2][0])-y>this.sourceWorldWidth_/2){var e=[[t.source[0][0],t.source[0][1]],[t.source[1][0],t.source[1][1]],[t.source[2][0],t.source[2][1]]];e[0][0]-y>this.sourceWorldWidth_/2&&(e[0][0]-=this.sourceWorldWidth_),e[1][0]-y>this.sourceWorldWidth_/2&&(e[1][0]-=this.sourceWorldWidth_),e[2][0]-y>this.sourceWorldWidth_/2&&(e[2][0]-=this.sourceWorldWidth_);var n=Math.min(e[0][0],e[1][0],e[2][0]);Math.max(e[0][0],e[1][0],e[2][0])-n.5&&u<1,f=!1;if(l>0&&(this.targetProj_.isGlobal()&&this.targetWorldWidth_&&(f=ke(ue([t,e,n,i]))/this.targetWorldWidth_>.25||f),!p&&this.sourceProj_.isGlobal()&&u&&(f=u>.25||f)),!(!f&&this.maxSourceExtent_&&isFinite(h[0])&&isFinite(h[1])&&isFinite(h[2])&&isFinite(h[3]))||je(h,this.maxSourceExtent_)){var d=0;if(!(f||isFinite(r[0])&&isFinite(r[1])&&isFinite(o[0])&&isFinite(o[1])&&isFinite(s[0])&&isFinite(s[1])&&isFinite(a[0])&&isFinite(a[1])))if(l>0)f=!0;else if(1!=(d=(isFinite(r[0])&&isFinite(r[1])?0:8)+(isFinite(o[0])&&isFinite(o[1])?0:4)+(isFinite(s[0])&&isFinite(s[1])?0:2)+(isFinite(a[0])&&isFinite(a[1])?0:1))&&2!=d&&4!=d&&8!=d)return;if(l>0){if(!f){var g=[(t[0]+n[0])/2,(t[1]+n[1])/2],_=this.transformInv_(g),y=void 0;y=p?(Tt(r[0],c)+Tt(s[0],c))/2-Tt(_[0],c):(r[0]+s[0])/2-_[0];var v=(r[1]+s[1])/2-_[1];f=y*y+v*v>this.errorThresholdSquared_}if(f){if(Math.abs(t[0]-n[0])<=Math.abs(t[1]-n[1])){var m=[(e[0]+n[0])/2,(e[1]+n[1])/2],x=this.transformInv_(m),C=[(i[0]+t[0])/2,(i[1]+t[1])/2],w=this.transformInv_(C);this.addQuad_(t,e,m,C,r,o,x,w,l-1),this.addQuad_(C,m,n,i,w,x,s,a,l-1)}else{var S=[(t[0]+e[0])/2,(t[1]+e[1])/2],E=this.transformInv_(S),T=[(n[0]+i[0])/2,(n[1]+i[1])/2],b=this.transformInv_(T);this.addQuad_(t,S,T,i,r,E,b,a,l-1),this.addQuad_(S,e,n,T,E,o,s,b,l-1)}return}}if(p){if(!this.canWrapXInSource_)return;this.wrapsXInSource_=!0}0==(11&d)&&this.addTriangle_(t,n,i,r,s,a),0==(14&d)&&this.addTriangle_(t,n,e,r,s,o),d&&(0==(13&d)&&this.addTriangle_(e,i,t,o,a,r),0==(7&d)&&this.addTriangle_(e,i,n,o,a,s))}},t.prototype.calculateSourceExtent=function(){var t=[1/0,1/0,-1/0,-1/0];return this.triangles_.forEach((function(e,n,i){var r=e.source;we(t,r[0]),we(t,r[1]),we(t,r[2])})),t},t.prototype.getTriangles=function(){return this.triangles_},t}(),Tr={imageSmoothingEnabled:!1,msImageSmoothingEnabled:!1},br={imageSmoothingEnabled:!0,msImageSmoothingEnabled:!0};function Or(t,e,n,i,r){t.beginPath(),t.moveTo(0,0),t.lineTo(e,n),t.lineTo(i,r),t.closePath(),t.save(),t.clip(),t.fillRect(0,0,Math.max(e,i)+1,Math.max(n,r)),t.restore()}function Rr(t,e){return Math.abs(t[4*e]-210)>2||Math.abs(t[4*e+3]-191.25)>2}function Ir(t,e,n,i){var r=en(n,e,t),o=He(e,i,n),s=e.getMetersPerUnit();void 0!==s&&(o*=s);var a=t.getMetersPerUnit();void 0!==a&&(o/=a);var l=t.getExtent();if(!l||de(l,r)){var h=He(t,o,r)/o;isFinite(h)&&h>0&&(o/=h)}return o}var Pr=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),Mr=function(t){function e(e,n,i,r,o,s,a,l,h,u,c,p){var f=t.call(this,o,0,{interpolate:!!p})||this;f.renderEdges_=void 0!==c&&c,f.pixelRatio_=a,f.gutter_=l,f.canvas_=null,f.sourceTileGrid_=n,f.targetTileGrid_=r,f.wrappedTileCoord_=s||o,f.sourceTiles_=[],f.sourcesListenerKeys_=null,f.sourceZ_=0;var d=r.getTileCoordExtent(f.wrappedTileCoord_),g=f.targetTileGrid_.getExtent(),_=f.sourceTileGrid_.getExtent(),y=g?Le(d,g):d;if(0===be(y))return f.state=4,f;var v=e.getExtent();v&&(_=_?Le(_,v):v);var m=r.getResolution(f.wrappedTileCoord_[0]),x=function(t,e,n,i){var r=Ie(n),o=Ir(t,e,r,i);return(!isFinite(o)||o<=0)&&Te(n,(function(n){return o=Ir(t,e,n,i),isFinite(o)&&o>0})),o}(e,i,y,m);if(!isFinite(x)||x<=0)return f.state=4,f;var C=void 0!==u?u:.5;if(f.triangulation_=new Er(e,i,y,_,x*C,m),0===f.triangulation_.getTriangles().length)return f.state=4,f;f.sourceZ_=n.getZForResolution(x);var w=f.triangulation_.calculateSourceExtent();if(_&&(e.canWrapX()?(w[1]=mt(w[1],_[1],_[3]),w[3]=mt(w[3],_[1],_[3])):w=Le(w,_)),be(w)){for(var S=n.getTileRangeForExtentAndZ(w,f.sourceZ_),E=S.minX;E<=S.maxX;E++)for(var T=S.minY;T<=S.maxY;T++){var b=h(f.sourceZ_,E,T,a);b&&f.sourceTiles_.push(b)}0===f.sourceTiles_.length&&(f.state=4)}else f.state=4;return f}return Pr(e,t),e.prototype.getImage=function(){return this.canvas_},e.prototype.reproject_=function(){var t=[];if(this.sourceTiles_.forEach(function(e,n,i){e&&2==e.getState()&&t.push({extent:this.sourceTileGrid_.getTileCoordExtent(e.tileCoord),image:e.getImage()})}.bind(this)),this.sourceTiles_.length=0,0===t.length)this.state=3;else{var e=this.wrappedTileCoord_[0],n=this.targetTileGrid_.getTileSize(e),i="number"==typeof n?n:n[0],r="number"==typeof n?n:n[1],o=this.targetTileGrid_.getResolution(e),s=this.sourceTileGrid_.getResolution(this.sourceZ_),a=this.targetTileGrid_.getTileCoordExtent(this.wrappedTileCoord_);this.canvas_=function(t,e,n,i,r,o,s,a,l,h,u,c){var p=q(Math.round(n*t),Math.round(n*e));if(c||f(p,Tr),0===l.length)return p.canvas;function d(t){return Math.round(t*n)/n}p.scale(n,n),p.globalCompositeOperation="lighter";var g=[1/0,1/0,-1/0,-1/0];l.forEach((function(t,e,n){var i,r;i=g,(r=t.extent)[0]i[2]&&(i[2]=r[2]),r[1]i[3]&&(i[3]=r[3])}));var _=ke(g),y=Fe(g),v=q(Math.round(n*_/i),Math.round(n*y/i));c||f(v,Tr);var m=n/i;l.forEach((function(t,e,n){var i=t.extent[0]-g[0],r=-(t.extent[3]-g[3]),o=ke(t.extent),s=Fe(t.extent);t.image.width>0&&t.image.height>0&&v.drawImage(t.image,h,h,t.image.width-2*h,t.image.height-2*h,i*m,r*m,o*m,s*m)}));var x=Ae(s);return a.getTriangles().forEach((function(t,e,r){var s=t.source,a=t.target,l=s[0][0],h=s[0][1],u=s[1][0],f=s[1][1],_=s[2][0],y=s[2][1],m=d((a[0][0]-x[0])/o),C=d(-(a[0][1]-x[1])/o),w=d((a[1][0]-x[0])/o),S=d(-(a[1][1]-x[1])/o),E=d((a[2][0]-x[0])/o),T=d(-(a[2][1]-x[1])/o),b=l,O=h;l=0,h=0;var R=function(t){for(var e=t.length,n=0;nr&&(r=s,i=o)}if(0===r)return null;var a=t[i];t[i]=t[n],t[n]=a;for(var l=n+1;l=0;p--){c[p]=t[p][e]/t[p][p];for(var f=p-1;f>=0;f--)t[f][e]-=t[f][p]*c[p]}return c}([[u-=b,f-=O,0,0,w-m],[_-=b,y-=O,0,0,E-m],[0,0,u,f,S-C],[0,0,_,y,T-C]]);if(R){if(p.save(),p.beginPath(),function(){if(void 0===Cr){var t=document.createElement("canvas").getContext("2d");t.globalCompositeOperation="lighter",t.fillStyle="rgba(210, 0, 0, 0.75)",Or(t,4,5,4,0),Or(t,4,5,0,5);var e=t.getImageData(0,0,3,3).data;Cr=Rr(e,0)||Rr(e,4)||Rr(e,8)}return Cr}()||!c){p.moveTo(w,S);for(var I=m-w,P=C-S,M=0;M<4;M++)p.lineTo(w+d((M+1)*I/4),S+d(M*P/3)),3!=M&&p.lineTo(w+d((M+1)*I/4),S+d((M+1)*P/3));p.lineTo(E,T)}else p.moveTo(w,S),p.lineTo(m,C),p.lineTo(E,T);p.clip(),p.transform(R[0],R[2],R[1],R[3],m,C),p.translate(g[0]-b,g[3]-O),p.scale(i/n,-i/n),p.drawImage(v.canvas,0,0),p.restore()}})),u&&(p.save(),p.globalCompositeOperation="source-over",p.strokeStyle="black",p.lineWidth=1,a.getTriangles().forEach((function(t,e,n){var i=t.target,r=(i[0][0]-x[0])/o,s=-(i[0][1]-x[1])/o,a=(i[1][0]-x[0])/o,l=-(i[1][1]-x[1])/o,h=(i[2][0]-x[0])/o,u=-(i[2][1]-x[1])/o;p.beginPath(),p.moveTo(a,l),p.lineTo(r,s),p.lineTo(h,u),p.closePath(),p.stroke()})),p.restore()),p.canvas}(i,r,this.pixelRatio_,s,this.sourceTileGrid_.getExtent(),o,a,this.triangulation_,t,this.gutter_,this.renderEdges_,this.interpolate),this.state=2}this.changed()},e.prototype.load=function(){if(0==this.state){this.state=1,this.changed();var t=0;this.sourcesListenerKeys_=[],this.sourceTiles_.forEach(function(e,n,i){var r=e.getState();if(0==r||1==r){t++;var o=O(e,x,(function(n){var i=e.getState();2!=i&&3!=i&&4!=i||(I(o),0==--t&&(this.unlistenSources_(),this.reproject_()))}),this);this.sourcesListenerKeys_.push(o)}}.bind(this)),0===t?setTimeout(this.reproject_.bind(this),0):this.sourceTiles_.forEach((function(t,e,n){0==t.getState()&&t.load()}))}},e.prototype.unlistenSources_=function(){this.sourcesListenerKeys_.forEach(I),this.sourcesListenerKeys_=null},e}(_r),Fr=function(){function t(t,e,n,i){this.minX=t,this.maxX=e,this.minY=n,this.maxY=i}return t.prototype.contains=function(t){return this.containsXY(t[1],t[2])},t.prototype.containsTileRange=function(t){return this.minX<=t.minX&&t.maxX<=this.maxX&&this.minY<=t.minY&&t.maxY<=this.maxY},t.prototype.containsXY=function(t,e){return this.minX<=t&&t<=this.maxX&&this.minY<=e&&e<=this.maxY},t.prototype.equals=function(t){return this.minX==t.minX&&this.minY==t.minY&&this.maxX==t.maxX&&this.maxY==t.maxY},t.prototype.extend=function(t){t.minXthis.maxX&&(this.maxX=t.maxX),t.minYthis.maxY&&(this.maxY=t.maxY)},t.prototype.getHeight=function(){return this.maxY-this.minY+1},t.prototype.getSize=function(){return[this.getWidth(),this.getHeight()]},t.prototype.getWidth=function(){return this.maxX-this.minX+1},t.prototype.intersects=function(t){return this.minX<=t.maxX&&this.maxX>=t.minX&&this.minY<=t.maxY&&this.maxY>=t.minY},t}();function Lr(t,e,n,i,r){return void 0!==r?(r.minX=t,r.maxX=e,r.minY=n,r.maxY=i,r):new Fr(t,e,n,i)}var Ar=Fr;function Dr(t){return t[0]>0&&t[1]>0}function kr(t,e){return Array.isArray(t)?t:(void 0===e?e=[t,t]:(e[0]=t,e[1]=t),e)}var jr=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),Gr=function(t){function e(e){var n=t.call(this,e)||this;return n.extentChanged=!0,n.renderedExtent_=null,n.renderedPixelRatio,n.renderedProjection=null,n.renderedRevision,n.renderedTiles=[],n.newTiles_=!1,n.tmpExtent=[1/0,1/0,-1/0,-1/0],n.tmpTileRange_=new Ar(0,0,0,0),n}return jr(e,t),e.prototype.isDrawableTile=function(t){var e=this.getLayer(),n=t.getState(),i=e.getUseInterimTilesOnError();return 2==n||4==n||3==n&&!i},e.prototype.getTile=function(t,e,n,i){var r=i.pixelRatio,o=i.viewState.projection,s=this.getLayer(),a=s.getSource().getTile(t,e,n,r,o);return 3==a.getState()&&(s.getUseInterimTilesOnError()?s.getPreload()>0&&(this.newTiles_=!0):a.setState(2)),this.isDrawableTile(a)||(a=a.getInterimTile()),a},e.prototype.getData=function(t){var e=this.frameState;if(!e)return null;var n=this.getLayer(),i=jn(e.pixelToCoordinateTransform,t.slice()),r=n.getExtent();if(r&&!de(r,i))return null;for(var o=e.pixelRatio,s=e.viewState.projection,a=e.viewState,l=n.getRenderSource(),h=l.getTileGridForProjection(a.projection),u=l.getTilePixelRatio(e.pixelRatio),c=h.getZForResolution(a.resolution);c>=h.getMinZoom();--c){var p=h.getTileCoordForCoordAndZ(i,c),f=l.getTile(c,p[1],p[2],o,s);if(!(f instanceof Sr||f instanceof Mr))return null;if(2===f.getState()){var d=h.getOrigin(c),g=kr(h.getTileSize(c)),_=h.getResolution(c),y=Math.floor(u*((i[0]-d[0])/_-p[1]*g[0])),v=Math.floor(u*((d[1]-i[1])/_-p[2]*g[1]));return this.getImageData(f.getImage(),y,v)}}return null},e.prototype.loadedTileCallback=function(e,n,i){return!!this.isDrawableTile(i)&&t.prototype.loadedTileCallback.call(this,e,n,i)},e.prototype.prepareFrame=function(t){return!!this.getLayer().getSource()},e.prototype.renderFrame=function(t,e){var n=t.layerStatesArray[t.layerIndex],i=t.viewState,r=i.projection,s=i.resolution,a=i.center,l=i.rotation,h=t.pixelRatio,u=this.getLayer(),c=u.getSource(),p=c.getRevision(),d=c.getTileGridForProjection(r),g=d.getZForResolution(s,c.zDirection),_=d.getResolution(g),y=t.extent,v=n.extent&&pn(n.extent);v&&(y=Le(y,pn(n.extent)));var m=c.getTilePixelRatio(h),x=Math.round(t.size[0]*m),C=Math.round(t.size[1]*m);if(l){var w=Math.round(Math.sqrt(x*x+C*C));x=w,C=w}var S=_*x/2/m,E=_*C/2/m,T=[a[0]-S,a[1]-E,a[0]+S,a[1]+E],b=d.getTileRangeForExtentAndZ(y,g),O={};O[g]={};var R=this.createLoadedTileFinder(c,r,O),I=this.tmpExtent,P=this.tmpTileRange_;this.newTiles_=!1;for(var M=b.minX;M<=b.maxX;++M)for(var F=b.minY;F<=b.maxY;++F){var L=this.getTile(g,M,F,t);if(this.isDrawableTile(L)){var A=D(this);if(2==L.getState()){O[g][L.tileCoord.toString()]=L;var k=L.inTransition(A);this.newTiles_||!k&&-1!==this.renderedTiles.indexOf(L)||(this.newTiles_=!0)}if(1===L.getAlpha(A,t.time))continue}var j=d.getTileCoordChildTileRange(L.tileCoord,P,I),G=!1;j&&(G=R(g+1,j)),G||d.forEachTileCoordParentTileRange(L.tileCoord,R,P,I)}var z=_/s;Gn(this.pixelTransform,t.size[0]/2,t.size[1]/2,1/m,1/m,l,-x/2,-C/2);var W=Wn(this.pixelTransform);this.useContainer(e,W,n.opacity,this.getBackground(t));var X=this.context,N=X.canvas;zn(this.inversePixelTransform,this.pixelTransform),Gn(this.tempTransform,x/2,C/2,z,z,0,-x/2,-C/2),N.width!=x||N.height!=C?(N.width=x,N.height=C):this.containerReused||X.clearRect(0,0,x,C),v&&this.clipUnrotated(X,t,v),c.getInterpolate()||f(X,Tr),this.preRender(X,t),this.renderedTiles.length=0;var Y,B,K,Z=Object.keys(O).map(Number);Z.sort(o),1!==n.opacity||this.containerReused&&!c.getOpaque(t.viewState.projection)?(Y=[],B=[]):Z=Z.reverse();for(var V=Z.length-1;V>=0;--V){var U=Z[V],H=c.getTilePixelSize(U,h,r),q=d.getResolution(U)/_,J=H[0]*q*z,Q=H[1]*q*z,$=d.getTileCoordForCoordAndZ(Ae(T),U),tt=d.getTileCoordExtent($),et=jn(this.tempTransform,[m*(tt[0]-T[0])/_,m*(T[3]-tt[3])/_]),nt=m*c.getGutterForProjection(r),it=O[U];for(var rt in it){var ot=(L=it[rt]).tileCoord,at=$[1]-ot[1],lt=Math.round(et[0]-(at-1)*J),ht=$[2]-ot[2],ut=Math.round(et[1]-(ht-1)*Q),ct=lt-(M=Math.round(et[0]-at*J)),pt=ut-(F=Math.round(et[1]-ht*Q)),ft=g===U,dt=!1;if(!(k=ft&&1!==L.getAlpha(D(this),t.time)))if(Y){K=[M,F,M+ct,F,M+ct,F+pt,M,F+pt];for(var gt=0,_t=Y.length;gt<_t;++gt)if(g!==U&&Uc&&(this.instructions.push([Po.CUSTOM,c,o,t,n,hi]),this.hitDetectionInstructions.push([Po.CUSTOM,c,o,t,i||n,hi]));break;case In:r=t.getFlatCoordinates(),this.coordinates.push(r[0],r[1]),o=this.coordinates.length,this.instructions.push([Po.CUSTOM,c,o,t,n]),this.hitDetectionInstructions.push([Po.CUSTOM,c,o,t,i||n])}this.endGeometry(e)},e.prototype.beginGeometry=function(t,e){this.beginGeometryInstruction1_=[Po.BEGIN_GEOMETRY,e,0,t],this.instructions.push(this.beginGeometryInstruction1_),this.beginGeometryInstruction2_=[Po.BEGIN_GEOMETRY,e,0,t],this.hitDetectionInstructions.push(this.beginGeometryInstruction2_)},e.prototype.finish=function(){return{instructions:this.instructions,hitDetectionInstructions:this.hitDetectionInstructions,coordinates:this.coordinates}},e.prototype.reverseHitDetectionInstructions=function(){var t,e=this.hitDetectionInstructions;e.reverse();var n,i,r=e.length,o=-1;for(t=0;tthis.maxLineWidth&&(this.maxLineWidth=n.lineWidth,this.bufferedMaxExtent_=null)}else n.strokeStyle=void 0,n.lineCap=void 0,n.lineDash=null,n.lineDashOffset=void 0,n.lineJoin=void 0,n.lineWidth=void 0,n.miterLimit=void 0},e.prototype.createFill=function(t){var e=t.fillStyle,n=[Po.SET_FILL_STYLE,e];return"string"!=typeof e&&n.push(!0),n},e.prototype.applyStroke=function(t){this.instructions.push(this.createStroke(t))},e.prototype.createStroke=function(t){return[Po.SET_STROKE_STYLE,t.strokeStyle,t.lineWidth*this.pixelRatio,t.lineCap,t.lineJoin,t.miterLimit,this.applyPixelRatio(t.lineDash),t.lineDashOffset*this.pixelRatio]},e.prototype.updateFillStyle=function(t,e){var n=t.fillStyle;"string"==typeof n&&t.currentFillStyle==n||(void 0!==n&&this.instructions.push(e.call(this,t)),t.currentFillStyle=n)},e.prototype.updateStrokeStyle=function(t,e){var n=t.strokeStyle,i=t.lineCap,r=t.lineDash,o=t.lineDashOffset,s=t.lineJoin,a=t.lineWidth,l=t.miterLimit;(t.currentStrokeStyle!=n||t.currentLineCap!=i||r!=t.currentLineDash&&!h(t.currentLineDash,r)||t.currentLineDashOffset!=o||t.currentLineJoin!=s||t.currentLineWidth!=a||t.currentMiterLimit!=l)&&(void 0!==n&&e.call(this,t),t.currentStrokeStyle=n,t.currentLineCap=i,t.currentLineDash=r,t.currentLineDashOffset=o,t.currentLineJoin=s,t.currentLineWidth=a,t.currentMiterLimit=l)},e.prototype.endGeometry=function(t){this.beginGeometryInstruction1_[2]=this.instructions.length,this.beginGeometryInstruction1_=null,this.beginGeometryInstruction2_[2]=this.hitDetectionInstructions.length,this.beginGeometryInstruction2_=null;var e=[Po.END_GEOMETRY,t];this.instructions.push(e),this.hitDetectionInstructions.push(e)},e.prototype.getBufferedMaxExtent=function(){if(!this.bufferedMaxExtent_&&(this.bufferedMaxExtent_=pe(this.maxExtent),this.maxLineWidth>0)){var t=this.resolution*(this.maxLineWidth+1)/2;ce(this.bufferedMaxExtent_,t,this.bufferedMaxExtent_)}return this.bufferedMaxExtent_},e}(Mo),Ao=Lo,Do=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),ko=function(t){function e(e,n,i,r){var o=t.call(this,e,n,i,r)||this;return o.hitDetectionImage_=null,o.image_=null,o.imagePixelRatio_=void 0,o.anchorX_=void 0,o.anchorY_=void 0,o.height_=void 0,o.opacity_=void 0,o.originX_=void 0,o.originY_=void 0,o.rotateWithView_=void 0,o.rotation_=void 0,o.scale_=void 0,o.width_=void 0,o.declutterImageWithText_=void 0,o}return Do(e,t),e.prototype.drawPoint=function(t,e){if(this.image_){this.beginGeometry(t,e);var n=t.getFlatCoordinates(),i=t.getStride(),r=this.coordinates.length,o=this.appendFlatPointCoordinates(n,i);this.instructions.push([Po.DRAW_IMAGE,r,o,this.image_,this.anchorX_*this.imagePixelRatio_,this.anchorY_*this.imagePixelRatio_,Math.ceil(this.height_*this.imagePixelRatio_),this.opacity_,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,[this.scale_[0]*this.pixelRatio/this.imagePixelRatio_,this.scale_[1]*this.pixelRatio/this.imagePixelRatio_],Math.ceil(this.width_*this.imagePixelRatio_),this.declutterImageWithText_]),this.hitDetectionInstructions.push([Po.DRAW_IMAGE,r,o,this.hitDetectionImage_,this.anchorX_,this.anchorY_,this.height_,this.opacity_,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_,this.width_,this.declutterImageWithText_]),this.endGeometry(e)}},e.prototype.drawMultiPoint=function(t,e){if(this.image_){this.beginGeometry(t,e);var n=t.getFlatCoordinates(),i=t.getStride(),r=this.coordinates.length,o=this.appendFlatPointCoordinates(n,i);this.instructions.push([Po.DRAW_IMAGE,r,o,this.image_,this.anchorX_*this.imagePixelRatio_,this.anchorY_*this.imagePixelRatio_,Math.ceil(this.height_*this.imagePixelRatio_),this.opacity_,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,[this.scale_[0]*this.pixelRatio/this.imagePixelRatio_,this.scale_[1]*this.pixelRatio/this.imagePixelRatio_],Math.ceil(this.width_*this.imagePixelRatio_),this.declutterImageWithText_]),this.hitDetectionInstructions.push([Po.DRAW_IMAGE,r,o,this.hitDetectionImage_,this.anchorX_,this.anchorY_,this.height_,this.opacity_,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_,this.width_,this.declutterImageWithText_]),this.endGeometry(e)}},e.prototype.finish=function(){return this.reverseHitDetectionInstructions(),this.anchorX_=void 0,this.anchorY_=void 0,this.hitDetectionImage_=null,this.image_=null,this.imagePixelRatio_=void 0,this.height_=void 0,this.scale_=void 0,this.opacity_=void 0,this.originX_=void 0,this.originY_=void 0,this.rotateWithView_=void 0,this.rotation_=void 0,this.width_=void 0,t.prototype.finish.call(this)},e.prototype.setImageStyle=function(t,e){var n=t.getAnchor(),i=t.getSize(),r=t.getHitDetectionImage(),o=t.getImage(this.pixelRatio),s=t.getOrigin();this.imagePixelRatio_=t.getPixelRatio(this.pixelRatio),this.anchorX_=n[0],this.anchorY_=n[1],this.hitDetectionImage_=r,this.image_=o,this.height_=i[1],this.opacity_=t.getOpacity(),this.originX_=s[0]*this.imagePixelRatio_,this.originY_=s[1]*this.imagePixelRatio_,this.rotateWithView_=t.getRotateWithView(),this.rotation_=t.getRotation(),this.scale_=t.getScaleArray(),this.width_=i[0],this.declutterImageWithText_=e},e}(Ao),jo=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),Go=function(t){function e(e,n,i,r){return t.call(this,e,n,i,r)||this}return jo(e,t),e.prototype.drawFlatCoordinates_=function(t,e,n,i){var r=this.coordinates.length,o=this.appendFlatLineCoordinates(t,e,n,i,!1,!1),s=[Po.MOVE_TO_LINE_TO,r,o];return this.instructions.push(s),this.hitDetectionInstructions.push(s),n},e.prototype.drawLineString=function(t,e){var n=this.state,i=n.strokeStyle,r=n.lineWidth;if(void 0!==i&&void 0!==r){this.updateStrokeStyle(n,this.applyStroke),this.beginGeometry(t,e),this.hitDetectionInstructions.push([Po.SET_STROKE_STYLE,n.strokeStyle,n.lineWidth,n.lineCap,n.lineJoin,n.miterLimit,Ur,0],Ro);var o=t.getFlatCoordinates(),s=t.getStride();this.drawFlatCoordinates_(o,0,o.length,s),this.hitDetectionInstructions.push(Oo),this.endGeometry(e)}},e.prototype.drawMultiLineString=function(t,e){var n=this.state,i=n.strokeStyle,r=n.lineWidth;if(void 0!==i&&void 0!==r){this.updateStrokeStyle(n,this.applyStroke),this.beginGeometry(t,e),this.hitDetectionInstructions.push([Po.SET_STROKE_STYLE,n.strokeStyle,n.lineWidth,n.lineCap,n.lineJoin,n.miterLimit,n.lineDash,n.lineDashOffset],Ro);for(var o=t.getEnds(),s=t.getFlatCoordinates(),a=t.getStride(),l=0,h=0,u=o.length;ht&&(y>_&&(_=y,d=v,g=o),y=0,v=o-r)),s=a,u=p,c=f),l=m,h=x}return(y+=a)>_?[v,o]:[d,g]}var Yo=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),Bo={left:0,end:0,center:.5,right:1,start:1,top:0,middle:.5,hanging:.2,alphabetic:.8,ideographic:.8,bottom:1},Ko=function(t){function e(e,n,i,r){var o=t.call(this,e,n,i,r)||this;return o.labels_=null,o.text_="",o.textOffsetX_=0,o.textOffsetY_=0,o.textRotateWithView_=void 0,o.textRotation_=0,o.textFillState_=null,o.fillStates={},o.textStrokeState_=null,o.strokeStates={},o.textState_={},o.textStates={},o.textKey_="",o.fillKey_="",o.strokeKey_="",o.declutterImageWithText_=void 0,o}return Yo(e,t),e.prototype.finish=function(){var e=t.prototype.finish.call(this);return e.textStates=this.textStates,e.fillStates=this.fillStates,e.strokeStates=this.strokeStates,e},e.prototype.drawText=function(t,e){var n=this.textFillState_,i=this.textStrokeState_,r=this.textState_;if(""!==this.text_&&r&&(n||i)){var o=this.coordinates,s=o.length,a=t.getType(),l=null,h=t.getStride();if("line"!==r.placement||a!=Pn&&a!=Ln&&a!=Mn&&a!=An){var u=r.overflow?null:[];switch(a){case In:case Fn:l=t.getFlatCoordinates();break;case Pn:l=t.getFlatMidpoint();break;case kn:l=t.getCenter();break;case Ln:l=t.getFlatMidpoints(),h=2;break;case Mn:l=t.getFlatInteriorPoint(),r.overflow||u.push(l[2]/this.resolution),h=3;break;case An:var c=t.getFlatInteriorPoints();for(l=[],w=0,S=c.length;wR[2]}else T=x>b;var I,P=Math.PI,M=[],F=w+i===e;if(_=0,y=S,p=t[e=w],f=t[e+1],F){v(),I=Math.atan2(f-g,p-d),T&&(I+=I>0?-P:P);var L=(b+x)/2,A=(O+C)/2;return M[0]=[L,A,(E-o)/2,I,r],M}for(var D=0,k=r.length;D0?-P:P),void 0!==I){var G=j-I;if(G+=G>P?-2*P:G<-P?2*P:0,Math.abs(G)>s)return null}I=j;for(var z=D,W=0;D0&&t.push("\n",""),t.push(e,""),t}var us=function(){function t(t,e,n,i){this.overlaps=n,this.pixelRatio=e,this.resolution=t,this.alignFill_,this.instructions=i.instructions,this.coordinates=i.coordinates,this.coordinateCache_={},this.renderedTransform_=[1,0,0,1,0,0],this.hitDetectionInstructions=i.hitDetectionInstructions,this.pixelCoordinates_=null,this.viewRotation_=0,this.fillStates=i.fillStates||{},this.strokeStates=i.strokeStates||{},this.textStates=i.textStates||{},this.widths_={},this.labels_={}}return t.prototype.createLabel=function(t,e,n,i){var r=t+e+n+i;if(this.labels_[r])return this.labels_[r];var o=i?this.strokeStates[i]:null,s=n?this.fillStates[n]:null,a=this.textStates[e],l=this.pixelRatio,h=[a.scale[0]*l,a.scale[1]*l],u=Array.isArray(t),c=ls(u?t[0]:t,a.textAlign||Jr),p=i&&o.lineWidth?o.lineWidth:0,f=u?t:t.split("\n").reduce(hs,[]),d=function(t,e){for(var n=[],i=[],r=[],o=0,s=0,a=0,l=0,h=0,u=e.length;h<=u;h+=2){var c=e[h];if("\n"!==c&&h!==u){var p=e[h+1]||t.font,f=lo(p,c);n.push(f),s+=f;var d=so(p);i.push(d),l=Math.max(l,d)}else o=Math.max(o,s),r.push(s),s=0,a+=l}return{width:o,height:a,widths:n,heights:i,lineWidths:r}}(a,f),g=d.width,_=d.height,y=d.widths,v=d.heights,m=d.lineWidths,x=g+p,C=[],w=(x+2)*h[0],S=(_+p)*h[1],E={width:w<0?Math.floor(w):Math.ceil(w),height:S<0?Math.floor(S):Math.ceil(S),contextInstructions:C};1==h[0]&&1==h[1]||C.push("scale",h),i&&(C.push("strokeStyle",o.strokeStyle),C.push("lineWidth",p),C.push("lineCap",o.lineCap),C.push("lineJoin",o.lineJoin),C.push("miterLimit",o.miterLimit),(V?OffscreenCanvasRenderingContext2D:CanvasRenderingContext2D).prototype.setLineDash&&(C.push("setLineDash",[o.lineDash]),C.push("lineDashOffset",o.lineDashOffset))),n&&C.push("fillStyle",s.fillStyle),C.push("textBaseline","middle"),C.push("textAlign","center");for(var T,b=.5-c,O=c*x+b*p,R=[],I=[],P=0,M=0,F=0,L=0,A=0,D=f.length;At?t-l:r,x=o+h>e?e-h:o,C=f[3]+m*c[0]+f[1],w=f[0]+x*c[1]+f[2],S=y-f[3],E=v-f[0];return(d||0!==u)&&(ns[0]=S,os[0]=S,ns[1]=E,is[1]=E,is[0]=S+C,rs[0]=is[0],rs[1]=E+w,os[1]=rs[1]),0!==u?(jn(_=Gn([1,0,0,1,0,0],n,i,1,1,u,-n,-i),ns),jn(_,is),jn(_,rs),jn(_,os),ve(Math.min(ns[0],is[0],rs[0],os[0]),Math.min(ns[1],is[1],rs[1],os[1]),Math.max(ns[0],is[0],rs[0],os[0]),Math.max(ns[1],is[1],rs[1],os[1]),es)):ve(Math.min(S,S+C),Math.min(E,E+w),Math.max(S,S+C),Math.max(E,E+w),es),p&&(y=Math.round(y),v=Math.round(v)),{drawImageX:y,drawImageY:v,drawImageW:m,drawImageH:x,originX:l,originY:h,declutterBox:{minX:es[0],minY:es[1],maxX:es[2],maxY:es[3],value:g},canvasTransform:_,scale:c}},t.prototype.replayImageOrLabel_=function(t,e,n,i,r,o,s){var a=!(!o&&!s),l=i.declutterBox,h=t.canvas,u=s?s[2]*i.scale[0]/2:0;return l.minX-u<=h.width/e&&l.maxX+u>=0&&l.minY-u<=h.height/e&&l.maxY+u>=0&&(a&&this.replayTextBackground_(t,ns,is,rs,os,o,s),function(t,e,n,i,r,o,s,a,l,h,u){t.save(),1!==n&&(t.globalAlpha*=n),e&&t.setTransform.apply(t,e),i.contextInstructions?(t.translate(l,h),t.scale(u[0],u[1]),function(t,e){for(var n=t.contextInstructions,i=0,r=n.length;iz&&(this.fill_(t),M=0),F>z&&(t.stroke(),F=0),M||F||(t.beginPath(),g=NaN,_=NaN),++R;break;case Po.CIRCLE:var X=l[P=W[1]],N=l[P+1],Y=l[P+2]-X,B=l[P+3]-N,K=Math.sqrt(Y*Y+B*B);t.moveTo(X+K,N),t.arc(X,N,K,0,2*Math.PI,!0),++R;break;case Po.CLOSE_PATH:t.closePath(),++R;break;case Po.CUSTOM:P=W[1],p=W[2];var Z=W[3],V=W[4],U=6==W.length?W[5]:void 0;G.geometry=Z,G.feature=E,R in D||(D[R]=[]);var H=D[R];U?U(l,P,p,2,H):(H[0]=l[P],H[1]=l[P+1],H.length=2),V(H,G),++R;break;case Po.DRAW_IMAGE:P=W[1],p=W[2],m=W[3],f=W[4],d=W[5];var q=W[6],J=W[7],Q=W[8],$=W[9],tt=W[10],et=W[11],nt=W[12],it=W[13],rt=W[14];if(!m&&W.length>=19){x=W[18],C=W[19],w=W[20],S=W[21];var ot=this.drawLabelWithPointPlacement_(x,C,w,S);m=ot.label,W[3]=m;var st=W[22];f=(ot.anchorX-st)*this.pixelRatio,W[4]=f;var at=W[23];d=(ot.anchorY-at)*this.pixelRatio,W[5]=d,q=m.height,W[6]=q,it=m.width,W[13]=it}var lt=void 0;W.length>24&&(lt=W[24]);var ht=void 0,ut=void 0,ct=void 0;W.length>16?(ht=W[15],ut=W[16],ct=W[17]):(ht=$r,ut=!1,ct=!1),tt&&j?et+=k:tt||j||(et-=k);for(var pt=0;Pn)break;var a=i[s];a||(a=[],i[s]=a),a.push(4*((t+r)*e+(t+o))+3),r>0&&a.push(4*((t-r)*e+(t+o))+3),o>0&&(a.push(4*((t+r)*e+(t-o))+3),r>0&&a.push(4*((t-r)*e+(t-o))+3))}for(var l=[],h=(r=0,i.length);r0){if(!s||p!==qo&&p!==$o||-1!==s.indexOf(t)){var h=(f[o]-3)/4,u=i-h%a,d=i-(h/a|0),g=r(t,e,u*u+d*d);if(g)return g}c.clearRect(0,0,a,a);break}}var g,_,y,v,m,x=Object.keys(this.executorsByZIndex_).map(Number);for(x.sort(o),g=x.length-1;g>=0;--g){var C=x[g].toString();for(y=this.executorsByZIndex_[C],_=ps.length-1;_>=0;--_)if(void 0!==(v=y[p=ps[_]])&&(m=v.executeHitDetection(c,l,n,d,u)))return m}},t.prototype.getClipCoords=function(t){var e=this.maxExtent_;if(!e)return null;var n=e[0],i=e[1],r=e[2],o=e[3],s=[n,i,n,o,r,o,r,i];return Xn(s,0,8,2,t,s),s},t.prototype.isEmpty=function(){return _(this.executorsByZIndex_)},t.prototype.execute=function(t,e,n,i,r,s,a){var l=Object.keys(this.executorsByZIndex_).map(Number);l.sort(o),this.maxExtent_&&(t.save(),this.clip(t,n));var h,u,c,p,f,d,g=s||ps;for(a&&l.reverse(),h=0,u=l.length;hthis.maxCacheSize_},t.prototype.expire=function(){if(this.canExpireCache()){var t=0;for(var e in this.cache_){var n=this.cache_[e];0!=(3&t++)||n.hasListener()||(delete this.cache_[e],--this.cacheSize_)}}},t.prototype.get=function(t,e,n){var i=Ts(t,e,n);return i in this.cache_?this.cache_[i]:null},t.prototype.set=function(t,e,n,i){var r=Ts(t,e,n);this.cache_[r]=i,++this.cacheSize_},t.prototype.setSize=function(t){this.maxCacheSize_=t,this.expire()},t}()),Os=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),Rs=null,Is=function(t){function e(e,n,i,r,o,s){var a=t.call(this)||this;return a.hitDetectionImage_=null,a.image_=e||new Image,null!==r&&(a.image_.crossOrigin=r),a.canvas_={},a.color_=s,a.unlisten_=null,a.imageState_=o,a.size_=i,a.src_=n,a.tainted_,a}return Os(e,t),e.prototype.isTainted_=function(){if(void 0===this.tainted_&&2===this.imageState_){Rs||(Rs=q(1,1)),Rs.drawImage(this.image_,0,0);try{Rs.getImageData(0,0,1,1),this.tainted_=!1}catch(t){Rs=null,this.tainted_=!0}}return!0===this.tainted_},e.prototype.dispatchChangeEvent_=function(){this.dispatchEvent(x)},e.prototype.handleImageError_=function(){this.imageState_=3,this.unlistenImage_(),this.dispatchChangeEvent_()},e.prototype.handleImageLoad_=function(){this.imageState_=2,this.size_?(this.image_.width=this.size_[0],this.image_.height=this.size_[1]):this.size_=[this.image_.width,this.image_.height],this.unlistenImage_(),this.dispatchChangeEvent_()},e.prototype.getImage=function(t){return this.replaceColor_(t),this.canvas_[t]?this.canvas_[t]:this.image_},e.prototype.getPixelRatio=function(t){return this.replaceColor_(t),this.canvas_[t]?t:1},e.prototype.getImageState=function(){return this.imageState_},e.prototype.getHitDetectionImage=function(){if(!this.hitDetectionImage_)if(this.isTainted_()){var t=this.size_[0],e=this.size_[1],n=q(t,e);n.fillRect(0,0,t,e),this.hitDetectionImage_=n.canvas}else this.hitDetectionImage_=this.image_;return this.hitDetectionImage_},e.prototype.getSize=function(){return this.size_},e.prototype.getSrc=function(){return this.src_},e.prototype.load=function(){if(0==this.imageState_){this.imageState_=1;try{this.image_.src=this.src_}catch(t){this.handleImageError_()}this.unlisten_=xr(this.image_,this.handleImageLoad_.bind(this),this.handleImageError_.bind(this))}},e.prototype.replaceColor_=function(t){if(this.color_&&!this.canvas_[t]&&2===this.imageState_){var e=document.createElement("canvas");this.canvas_[t]=e,e.width=Math.ceil(this.image_.width*t),e.height=Math.ceil(this.image_.height*t);var n=e.getContext("2d");if(n.scale(t,t),n.drawImage(this.image_,0,0),n.globalCompositeOperation="multiply","multiply"===n.globalCompositeOperation||this.isTainted_())n.fillStyle=sr(this.color_),n.fillRect(0,0,e.width/t,e.height/t),n.globalCompositeOperation="destination-in",n.drawImage(this.image_,0,0);else{for(var i=n.getImageData(0,0,e.width,e.height),r=i.data,o=this.color_[0]/255,s=this.color_[1]/255,a=this.color_[2]/255,l=this.color_[3],h=0,u=r.length;h0,6);var u=void 0!==i.src?0:2;return n.color_=void 0!==i.color?lr(i.color):null,n.iconImage_=function(t,e,n,i,r,o){var s=bs.get(e,i,o);return s||(s=new Is(t,e,n,i,r,o),bs.set(e,i,o,s)),s}(l,h,void 0!==n.imgSize_?n.imgSize_:null,n.crossOrigin_,u,n.color_),n.offset_=void 0!==i.offset?i.offset:[0,0],n.offsetOrigin_=void 0!==i.offsetOrigin?i.offsetOrigin:Ss,n.origin_=null,n.size_=void 0!==i.size?i.size:null,n}return Ps(e,t),e.prototype.clone=function(){var t=this.getScale();return new e({anchor:this.anchor_.slice(),anchorOrigin:this.anchorOrigin_,anchorXUnits:this.anchorXUnits_,anchorYUnits:this.anchorYUnits_,color:this.color_&&this.color_.slice?this.color_.slice():this.color_||void 0,crossOrigin:this.crossOrigin_,imgSize:this.imgSize_,offset:this.offset_.slice(),offsetOrigin:this.offsetOrigin_,opacity:this.getOpacity(),rotateWithView:this.getRotateWithView(),rotation:this.getRotation(),scale:Array.isArray(t)?t.slice():t,size:null!==this.size_?this.size_.slice():void 0,src:this.getSrc()})},e.prototype.getAnchor=function(){var t=this.normalizedAnchor_;if(!t){t=this.anchor_;var e=this.getSize();if(this.anchorXUnits_==ms||this.anchorYUnits_==ms){if(!e)return null;t=this.anchor_.slice(),this.anchorXUnits_==ms&&(t[0]*=e[0]),this.anchorYUnits_==ms&&(t[1]*=e[1])}if(this.anchorOrigin_!=Ss){if(!e)return null;t===this.anchor_&&(t=this.anchor_.slice()),this.anchorOrigin_!=Es&&this.anchorOrigin_!=ws||(t[0]=-t[0]+e[0]),this.anchorOrigin_!=Cs&&this.anchorOrigin_!=ws||(t[1]=-t[1]+e[1])}this.normalizedAnchor_=t}var n=this.getDisplacement();return[t[0]-n[0],t[1]+n[1]]},e.prototype.setAnchor=function(t){this.anchor_=t,this.normalizedAnchor_=null},e.prototype.getColor=function(){return this.color_},e.prototype.getImage=function(t){return this.iconImage_.getImage(t)},e.prototype.getPixelRatio=function(t){return this.iconImage_.getPixelRatio(t)},e.prototype.getImageSize=function(){return this.iconImage_.getSize()},e.prototype.getImageState=function(){return this.iconImage_.getImageState()},e.prototype.getHitDetectionImage=function(){return this.iconImage_.getHitDetectionImage()},e.prototype.getOrigin=function(){if(this.origin_)return this.origin_;var t=this.offset_;if(this.offsetOrigin_!=Ss){var e=this.getSize(),n=this.iconImage_.getSize();if(!e||!n)return null;t=t.slice(),this.offsetOrigin_!=Es&&this.offsetOrigin_!=ws||(t[0]=n[0]-e[0]-t[0]),this.offsetOrigin_!=Cs&&this.offsetOrigin_!=ws||(t[1]=n[1]-e[1]-t[1])}return this.origin_=t,this.origin_},e.prototype.getSrc=function(){return this.iconImage_.getSrc()},e.prototype.getSize=function(){return this.size_?this.size_:this.iconImage_.getSize()},e.prototype.listenImageChange=function(t){this.iconImage_.addEventListener(x,t)},e.prototype.load=function(){this.iconImage_.load()},e.prototype.unlistenImageChange=function(t){this.iconImage_.removeEventListener(x,t)},e}(Yr),Fs=.5,Ls={Point:function(t,e,n,i,r){var o,s=n.getImage(),a=n.getText();if(r&&(t=r,o=s&&a&&a.getText()?{}:void 0),s){if(2!=s.getImageState())return;var l=t.getBuilder(n.getZIndex(),qo);l.setImageStyle(s,o),l.drawPoint(e,i)}if(a&&a.getText()){var h=t.getBuilder(n.getZIndex(),$o);h.setTextStyle(a,o),h.drawText(e,i)}},LineString:function(t,e,n,i,r){var o=n.getStroke();if(o){var s=t.getBuilder(n.getZIndex(),Jo);s.setFillStrokeStyle(null,o),s.drawLineString(e,i)}var a=n.getText();if(a&&a.getText()){var l=(r||t).getBuilder(n.getZIndex(),$o);l.setTextStyle(a),l.drawText(e,i)}},Polygon:function(t,e,n,i,r){var o=n.getFill(),s=n.getStroke();if(o||s){var a=t.getBuilder(n.getZIndex(),Qo);a.setFillStrokeStyle(o,s),a.drawPolygon(e,i)}var l=n.getText();if(l&&l.getText()){var h=(r||t).getBuilder(n.getZIndex(),$o);h.setTextStyle(l),h.drawText(e,i)}},MultiPoint:function(t,e,n,i,r){var o,s=n.getImage(),a=n.getText();if(r&&(t=r,o=s&&a&&a.getText()?{}:void 0),s){if(2!=s.getImageState())return;var l=t.getBuilder(n.getZIndex(),qo);l.setImageStyle(s,o),l.drawMultiPoint(e,i)}if(a&&a.getText()){var h=(r||t).getBuilder(n.getZIndex(),$o);h.setTextStyle(a,o),h.drawText(e,i)}},MultiLineString:function(t,e,n,i,r){var o=n.getStroke();if(o){var s=t.getBuilder(n.getZIndex(),Jo);s.setFillStrokeStyle(null,o),s.drawMultiLineString(e,i)}var a=n.getText();if(a&&a.getText()){var l=(r||t).getBuilder(n.getZIndex(),$o);l.setTextStyle(a),l.drawText(e,i)}},MultiPolygon:function(t,e,n,i,r){var o=n.getFill(),s=n.getStroke();if(s||o){var a=t.getBuilder(n.getZIndex(),Qo);a.setFillStrokeStyle(o,s),a.drawMultiPolygon(e,i)}var l=n.getText();if(l&&l.getText()){var h=(r||t).getBuilder(n.getZIndex(),$o);h.setTextStyle(l),h.drawText(e,i)}},GeometryCollection:function(t,e,n,i,r){var o,s,a=e.getGeometriesArray();for(o=0,s=a.length;od[2];)v=_*++y,u.push(this.getRenderTransform(i,r,s,Fs,c,p,v).slice()),g-=_}this.hitDetectionImageData_=function(t,e,n,i,r,s,a){var l=q(t[0]*Fs,t[1]*Fs);l.imageSmoothingEnabled=!1;for(var h=l.canvas,u=new vs(l,Fs,r,null,a),c=n.length,p=Math.floor(16777215/c),f={},d=1;d<=c;++d){var g=n[d-1],_=g.getStyleFunction()||i;if(i){var y=_(g,s);if(y){Array.isArray(y)||(y=[y]);for(var v="#"+("000000"+(d*p).toString(16)).slice(-6),m=0,x=y.length;m=n[2])){var r=ke(n),o=Math.floor((i[0]-n[0])/r)*r;t[0]-=o,t[2]-=o}return t}(m[0],u);S[0]x[0]&&S[2]>x[2]&&m.push([S[0]-C,S[1],S[2]-C,S[3]])}if(!this.dirty_&&this.renderedResolution_==c&&this.renderedRevision_==f&&this.renderedRenderOrder_==g&&ge(this.wrappedRenderedExtent_,y))return h(this.renderedExtent_,v)||(this.hitDetectionImageData_=null,this.renderedExtent_=v),this.renderedCenter_=_,this.replayGroupChanged=!1,!0;this.replayGroup_=null,this.dirty_=!1;var E,T=new Vo(Ds(c,p),y,c,p);this.getLayer().getDeclutter()&&(E=new Vo(Ds(c,p),y,c,p));var b,O=ln();if(O){for(var R=0,I=m.length;R0&&this.getCount()>this.highWaterMark},t.prototype.expireCache=function(t){for(;this.canExpireCache();)this.pop()},t.prototype.clear=function(){this.count_=0,this.entries_={},this.oldest_=null,this.newest_=null},t.prototype.containsKey=function(t){return this.entries_.hasOwnProperty(t)},t.prototype.forEach=function(t){for(var e=this.oldest_;e;)t(e.value_,e.key_,this),e=e.newer},t.prototype.get=function(t,e){var n=this.entries_[t];return vt(void 0!==n,15),n===this.newest_||(n===this.oldest_?(this.oldest_=this.oldest_.newer,this.oldest_.older=null):(n.newer.older=n.older,n.older.newer=n.newer),n.newer=null,n.older=this.newest_,this.newest_.newer=n,this.newest_=n),n.value_},t.prototype.remove=function(t){var e=this.entries_[t];return vt(void 0!==e,15),e===this.newest_?(this.newest_=e.older,this.newest_&&(this.newest_.newer=null)):e===this.oldest_?(this.oldest_=e.newer,this.oldest_&&(this.oldest_.older=null)):(e.newer.older=e.older,e.older.newer=e.newer),delete this.entries_[t],--this.count_,e.value_},t.prototype.getCount=function(){return this.count_},t.prototype.getKeys=function(){var t,e=new Array(this.count_),n=0;for(t=this.newest_;t;t=t.older)e[n++]=t.key_;return e},t.prototype.getValues=function(){var t,e=new Array(this.count_),n=0;for(t=this.newest_;t;t=t.older)e[n++]=t.value_;return e},t.prototype.peekLast=function(){return this.oldest_.value_},t.prototype.peekLastKey=function(){return this.oldest_.key_},t.prototype.peekFirstKey=function(){return this.newest_.key_},t.prototype.pop=function(){var t=this.oldest_;return delete this.entries_[t.key_],t.newer&&(t.newer.older=null),this.oldest_=t.newer,this.oldest_||(this.newest_=null),--this.count_,t.value_},t.prototype.replace=function(t,e){this.get(t),this.entries_[t].value_=e},t.prototype.set=function(t,e){vt(!(t in this.entries_),16);var n={key_:t,newer:null,older:this.newest_,value_:e};this.newest_?this.newest_.newer=n:this.oldest_=n,this.newest_=n,this.entries_[t]=n,++this.count_},t.prototype.setSize=function(t){this.highWaterMark=t},t}();function Bs(t,e,n,i){return void 0!==i?(i[0]=t,i[1]=e,i[2]=n,i):[t,e,n]}function Ks(t,e,n){return t+"/"+e+"/"+n}function Zs(t){return Ks(t[0],t[1],t[2])}var Vs=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),Us=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Vs(e,t),e.prototype.expireCache=function(t){for(;this.canExpireCache()&&!(this.peekLast().getKey()in t);)this.pop().release()},e.prototype.pruneExceptNewestZ=function(){if(0!==this.getCount()){var t=this.peekFirstKey().split("/").map(Number)[0];this.forEach(function(e){e.tileCoord[0]!==t&&(this.remove(Zs(e.tileCoord)),e.release())}.bind(this))}},e}(Ys),Hs=Us,qs=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}();function Js(t){return t?Array.isArray(t)?function(e){return t}:"function"==typeof t?t:function(e){return[t]}:null}var Qs=function(t){function e(e){var n=t.call(this)||this;n.projection=Ue(e.projection),n.attributions_=Js(e.attributions),n.attributionsCollapsible_=void 0===e.attributionsCollapsible||e.attributionsCollapsible,n.loading=!1,n.state_=void 0!==e.state?e.state:Dt,n.wrapX_=void 0!==e.wrapX&&e.wrapX,n.interpolate_=!!e.interpolate,n.viewResolver=null,n.viewRejector=null;var i=n;return n.viewPromise_=new Promise((function(t,e){i.viewResolver=t,i.viewRejector=e})),n}return qs(e,t),e.prototype.getAttributions=function(){return this.attributions_},e.prototype.getAttributionsCollapsible=function(){return this.attributionsCollapsible_},e.prototype.getProjection=function(){return this.projection},e.prototype.getResolutions=function(){return L()},e.prototype.getView=function(){return this.viewPromise_},e.prototype.getState=function(){return this.state_},e.prototype.getWrapX=function(){return this.wrapX_},e.prototype.getInterpolate=function(){return this.interpolate_},e.prototype.refresh=function(){this.changed()},e.prototype.setAttributions=function(t){this.attributions_=Js(t),this.changed()},e.prototype.setState=function(t){this.state_=t,this.changed()},e}(G),$s=[0,0,0],ta=function(){function t(t){var e,n,i;if(this.minZoom=void 0!==t.minZoom?t.minZoom:0,this.resolutions_=t.resolutions,vt((e=this.resolutions_,!0,n=function(t,e){return e-t}||o,e.every((function(t,i){if(0===i)return!0;var r=n(e[i-1],t);return!(r>0||0===r)}))),17),!t.origins)for(var r=0,s=this.resolutions_.length-1;r=this.minZoom;){if(e(a,2===this.zoomFactor_?Lr(r=Math.floor(r/2),r,o=Math.floor(o/2),o,n):this.getTileRangeForExtentAndZ(s,a,n)))return!0;--a}return!1},t.prototype.getExtent=function(){return this.extent_},t.prototype.getMaxZoom=function(){return this.maxZoom},t.prototype.getMinZoom=function(){return this.minZoom},t.prototype.getOrigin=function(t){return this.origin_?this.origin_:this.origins_[t]},t.prototype.getResolution=function(t){return this.resolutions_[t]},t.prototype.getResolutions=function(){return this.resolutions_},t.prototype.getTileCoordChildTileRange=function(t,e,n){if(t[0]this.maxZoom||e0?i:Math.max(s/a[0],o/a[1]),h=r+1,u=new Array(h),c=0;cn||n>e.getMaxZoom())return!1;var o=e.getFullTileRange(n);return!o||o.containsXY(i,r)}(t,i)?t:null},e.prototype.clear=function(){this.tileCache.clear()},e.prototype.refresh=function(){this.clear(),t.prototype.refresh.call(this)},e.prototype.updateCacheSize=function(t,e){var n=this.getTileCacheForProjection(e);t>n.highWaterMark&&(n.highWaterMark=t)},e.prototype.useTile=function(t,e,n,i){},e}(Qs),sa=function(t){function e(e,n){var i=t.call(this,e)||this;return i.tile=n,i}return ra(e,t),e}(t),aa=oa;function la(t,e){var n=/\{z\}/g,i=/\{x\}/g,r=/\{y\}/g,o=/\{-y\}/g;return function(s,a,l){return s?t.replace(n,s[0].toString()).replace(i,s[1].toString()).replace(r,s[2].toString()).replace(o,(function(){var t=s[0],n=e.getFullTileRange(t);return vt(n,55),(n.getHeight()-s[2]-1).toString()})):void 0}}var ha=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),ua=function(t){function e(n){var i=t.call(this,{attributions:n.attributions,cacheSize:n.cacheSize,opaque:n.opaque,projection:n.projection,state:n.state,tileGrid:n.tileGrid,tilePixelRatio:n.tilePixelRatio,wrapX:n.wrapX,transition:n.transition,interpolate:n.interpolate,key:n.key,attributionsCollapsible:n.attributionsCollapsible,zDirection:n.zDirection})||this;return i.generateTileUrlFunction_=i.tileUrlFunction===e.prototype.tileUrlFunction,i.tileLoadFunction=n.tileLoadFunction,n.tileUrlFunction&&(i.tileUrlFunction=n.tileUrlFunction),i.urls=null,n.urls?i.setUrls(n.urls):n.url&&i.setUrl(n.url),i.tileLoadingKeys_={},i}return ha(e,t),e.prototype.getTileLoadFunction=function(){return this.tileLoadFunction},e.prototype.getTileUrlFunction=function(){return Object.getPrototypeOf(this).tileUrlFunction===this.tileUrlFunction?this.tileUrlFunction.bind(this):this.tileUrlFunction},e.prototype.getUrls=function(){return this.urls},e.prototype.handleTileChange=function(t){var e,n=t.target,i=D(n),r=n.getState();1==r?(this.tileLoadingKeys_[i]=!0,e="tileloadstart"):i in this.tileLoadingKeys_&&(delete this.tileLoadingKeys_[i],e=3==r?"tileloaderror":2==r?"tileloadend":void 0),null!=e&&this.dispatchEvent(new sa(e,n))},e.prototype.setTileLoadFunction=function(t){this.tileCache.clear(),this.tileLoadFunction=t,this.changed()},e.prototype.setTileUrlFunction=function(t,e){this.tileUrlFunction=t,this.tileCache.pruneExceptNewestZ(),void 0!==e?this.setKey(e):this.changed()},e.prototype.setUrl=function(t){var e=function(t){var e=[],n=/\{([a-z])-([a-z])\}/.exec(t);if(n){var i=n[1].charCodeAt(0),r=n[2].charCodeAt(0),o=void 0;for(o=i;o<=r;++o)e.push(t.replace(n[0],String.fromCharCode(o)));return e}if(n=/\{(\d+)-(\d+)\}/.exec(t)){for(var s=parseInt(n[2],10),a=parseInt(n[1],10);a<=s;a++)e.push(t.replace(n[0],a.toString()));return e}return e.push(t),e}(t);this.urls=e,this.setUrls(e)},e.prototype.setUrls=function(t){this.urls=t;var e=t.join("\n");this.generateTileUrlFunction_?this.setTileUrlFunction(function(t,e){for(var n=t.length,i=new Array(n),r=0;rOpenStreetMap contributors.'];var o=void 0!==i.crossOrigin?i.crossOrigin:"anonymous",s=void 0!==i.url?i.url:"https://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png";return t.call(this,{attributions:n,attributionsCollapsible:!1,cacheSize:i.cacheSize,crossOrigin:o,interpolate:r,maxZoom:void 0!==i.maxZoom?i.maxZoom:19,opaque:void 0===i.opaque||i.opaque,reprojectionErrorThreshold:i.reprojectionErrorThreshold,tileLoadFunction:i.tileLoadFunction,transition:i.transition,url:s,wrapX:i.wrapX,zDirection:i.zDirection})||this}return ya(e,t),e}(_a),ma="add",xa="remove",Ca=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),wa="length",Sa=function(t){function e(e,n,i){var r=t.call(this,e)||this;return r.element=n,r.index=i,r}return Ca(e,t),e}(t),Ea=function(t){function e(e,n){var i=t.call(this)||this;i.on,i.once,i.un;var r=n||{};if(i.unique_=!!r.unique,i.array_=e||[],i.unique_)for(var o=0,s=i.array_.length;o0;)this.pop()},e.prototype.extend=function(t){for(var e=0,n=t.length;e=200&&a.status<300){var i=e.getType(),l=void 0;"json"==i||"text"==i?l=a.responseText:"xml"==i?(l=a.responseXML)||(l=(new DOMParser).parseFromString(a.responseText,"application/xml")):i==Ia&&(l=a.response),l?o(e.readFeatures(l,{extent:n,featureProjection:r}),e.readProjection(l)):s()}else s()},a.onerror=s,a.send()}(t,e,n,i,r,(function(t,e){a.addFeatures(t),void 0!==o&&o(t)}),s||p)}}var Ma=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),Fa=function(t){function e(e,n,i){var r=t.call(this,e)||this;return r.feature=n,r.features=i,r}return Ma(e,t),e}(t),La=function(t){function n(e){var n=this,i=e||{};(n=t.call(this,{attributions:i.attributions,interpolate:!0,projection:void 0,state:Dt,wrapX:void 0===i.wrapX||i.wrapX})||this).on,n.once,n.un,n.loader_=p,n.format_=i.format,n.overlaps_=void 0===i.overlaps||i.overlaps,n.url_=i.url,void 0!==i.loader?n.loader_=i.loader:void 0!==n.url_&&(vt(n.format_,7),n.loader_=Pa(n.url_,n.format_)),n.strategy_=void 0!==i.strategy?i.strategy:Ra;var r,o,s=void 0===i.useSpatialIndex||i.useSpatialIndex;return n.featuresRtree_=s?new Ta:null,n.loadedExtentsRtree_=new Ta,n.loadingExtentsCount_=0,n.nullGeometryFeatures_={},n.idIndex_={},n.uidIndex_={},n.featureChangeKeys_={},n.featuresCollection_=null,Array.isArray(i.features)?o=i.features:i.features&&(o=(r=i.features).getArray()),s||void 0!==r||(r=new Ea(o)),void 0!==o&&n.addFeaturesInternal(o),void 0!==r&&n.bindFeaturesCollection_(r),n}return Ma(n,t),n.prototype.addFeature=function(t){this.addFeatureInternal(t),this.changed()},n.prototype.addFeatureInternal=function(t){var e=D(t);if(this.addToIndex_(e,t)){this.setupChangeEvents_(e,t);var n=t.getGeometry();if(n){var i=n.getExtent();this.featuresRtree_&&this.featuresRtree_.insert(i,t)}else this.nullGeometryFeatures_[e]=t;this.dispatchEvent(new Fa(ba,t))}else this.featuresCollection_&&this.featuresCollection_.remove(t)},n.prototype.setupChangeEvents_=function(t,n){this.featureChangeKeys_[t]=[O(n,x,this.handleFeatureChange_,this),O(n,e,this.handleFeatureChange_,this)]},n.prototype.addToIndex_=function(t,e){var n=!0,i=e.getId();return void 0!==i&&(i.toString()in this.idIndex_?n=!1:this.idIndex_[i.toString()]=e),n&&(vt(!(t in this.uidIndex_),30),this.uidIndex_[t]=e),n},n.prototype.addFeatures=function(t){this.addFeaturesInternal(t),this.changed()},n.prototype.addFeaturesInternal=function(t){for(var e=[],n=[],i=[],r=0,o=t.length;r0},n.prototype.refresh=function(){this.clear(!0),this.loadedExtentsRtree_.clear(),t.prototype.refresh.call(this)},n.prototype.removeLoadedExtent=function(t){var e,n=this.loadedExtentsRtree_;n.forEachInExtent(t,(function(n){if(Ce(n.extent,t))return e=n,!0})),e&&n.remove(e)},n.prototype.removeFeature=function(t){if(t){var e=D(t);e in this.nullGeometryFeatures_?delete this.nullGeometryFeatures_[e]:this.featuresRtree_&&this.featuresRtree_.remove(t),this.removeFeatureInternal(t)&&this.changed()}},n.prototype.removeFeatureInternal=function(t){var e=D(t),n=this.featureChangeKeys_[e];if(n){n.forEach(I),delete this.featureChangeKeys_[e];var i=t.getId();return void 0!==i&&delete this.idIndex_[i.toString()],delete this.uidIndex_[e],this.dispatchEvent(new Fa(Oa,t)),t}},n.prototype.removeFromIdIndex_=function(t){var e=!1;for(var n in this.idIndex_)if(this.idIndex_[n]===t){delete this.idIndex_[n],e=!0;break}return e},n.prototype.setLoader=function(t){this.loader_=t},n.prototype.setUrl=function(t){vt(this.format_,7),this.url_=t,this.setLoader(Pa(t,this.format_))},n}(Qs),Aa=function(){function t(t){var e=t||{};this.font_=e.font,this.rotation_=e.rotation,this.rotateWithView_=e.rotateWithView,this.scale_=e.scale,this.scaleArray_=kr(void 0!==e.scale?e.scale:1),this.text_=e.text,this.textAlign_=e.textAlign,this.textBaseline_=e.textBaseline,this.fill_=void 0!==e.fill?e.fill:new go({color:"#333"}),this.maxAngle_=void 0!==e.maxAngle?e.maxAngle:Math.PI/4,this.placement_=void 0!==e.placement?e.placement:"point",this.overflow_=!!e.overflow,this.stroke_=void 0!==e.stroke?e.stroke:null,this.offsetX_=void 0!==e.offsetX?e.offsetX:0,this.offsetY_=void 0!==e.offsetY?e.offsetY:0,this.backgroundFill_=e.backgroundFill?e.backgroundFill:null,this.backgroundStroke_=e.backgroundStroke?e.backgroundStroke:null,this.padding_=void 0===e.padding?null:e.padding}return t.prototype.clone=function(){var e=this.getScale();return new t({font:this.getFont(),placement:this.getPlacement(),maxAngle:this.getMaxAngle(),overflow:this.getOverflow(),rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),scale:Array.isArray(e)?e.slice():e,text:this.getText(),textAlign:this.getTextAlign(),textBaseline:this.getTextBaseline(),fill:this.getFill()?this.getFill().clone():void 0,stroke:this.getStroke()?this.getStroke().clone():void 0,offsetX:this.getOffsetX(),offsetY:this.getOffsetY(),backgroundFill:this.getBackgroundFill()?this.getBackgroundFill().clone():void 0,backgroundStroke:this.getBackgroundStroke()?this.getBackgroundStroke().clone():void 0,padding:this.getPadding()||void 0})},t.prototype.getOverflow=function(){return this.overflow_},t.prototype.getFont=function(){return this.font_},t.prototype.getMaxAngle=function(){return this.maxAngle_},t.prototype.getPlacement=function(){return this.placement_},t.prototype.getOffsetX=function(){return this.offsetX_},t.prototype.getOffsetY=function(){return this.offsetY_},t.prototype.getFill=function(){return this.fill_},t.prototype.getRotateWithView=function(){return this.rotateWithView_},t.prototype.getRotation=function(){return this.rotation_},t.prototype.getScale=function(){return this.scale_},t.prototype.getScaleArray=function(){return this.scaleArray_},t.prototype.getStroke=function(){return this.stroke_},t.prototype.getText=function(){return this.text_},t.prototype.getTextAlign=function(){return this.textAlign_},t.prototype.getTextBaseline=function(){return this.textBaseline_},t.prototype.getBackgroundFill=function(){return this.backgroundFill_},t.prototype.getBackgroundStroke=function(){return this.backgroundStroke_},t.prototype.getPadding=function(){return this.padding_},t.prototype.setOverflow=function(t){this.overflow_=t},t.prototype.setFont=function(t){this.font_=t},t.prototype.setMaxAngle=function(t){this.maxAngle_=t},t.prototype.setOffsetX=function(t){this.offsetX_=t},t.prototype.setOffsetY=function(t){this.offsetY_=t},t.prototype.setPlacement=function(t){this.placement_=t},t.prototype.setRotateWithView=function(t){this.rotateWithView_=t},t.prototype.setFill=function(t){this.fill_=t},t.prototype.setRotation=function(t){this.rotation_=t},t.prototype.setScale=function(t){this.scale_=t,this.scaleArray_=kr(void 0!==t?t:1)},t.prototype.setStroke=function(t){this.stroke_=t},t.prototype.setText=function(t){this.text_=t},t.prototype.setTextAlign=function(t){this.textAlign_=t},t.prototype.setTextBaseline=function(t){this.textBaseline_=t},t.prototype.setBackgroundFill=function(t){this.backgroundFill_=t},t.prototype.setBackgroundStroke=function(t){this.backgroundStroke_=t},t.prototype.setPadding=function(t){this.padding_=t},t}(),Da=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),ka=function(t){function e(e){var n=t.call(this)||this;if(n.on,n.once,n.un,n.id_=void 0,n.geometryName_="geometry",n.style_=null,n.styleFunction_=void 0,n.geometryChangeKey_=null,n.addChangeListener(n.geometryName_,n.handleGeometryChanged_),e)if("function"==typeof e.getSimplifiedGeometry){var i=e;n.setGeometry(i)}else{var r=e;n.setProperties(r)}return n}return Da(e,t),e.prototype.clone=function(){var t=new e(this.hasProperties()?this.getProperties():null);t.setGeometryName(this.getGeometryName());var n=this.getGeometry();n&&t.setGeometry(n.clone());var i=this.getStyle();return i&&t.setStyle(i),t},e.prototype.getGeometry=function(){return this.get(this.geometryName_)},e.prototype.getId=function(){return this.id_},e.prototype.getGeometryName=function(){return this.geometryName_},e.prototype.getStyle=function(){return this.style_},e.prototype.getStyleFunction=function(){return this.styleFunction_},e.prototype.handleGeometryChange_=function(){this.changed()},e.prototype.handleGeometryChanged_=function(){this.geometryChangeKey_&&(I(this.geometryChangeKey_),this.geometryChangeKey_=null);var t=this.getGeometry();t&&(this.geometryChangeKey_=O(t,x,this.handleGeometryChange_,this)),this.changed()},e.prototype.setGeometry=function(t){this.set(this.geometryName_,t)},e.prototype.setStyle=function(t){var e,n;this.style_=t,this.styleFunction_=t?"function"==typeof(e=t)?e:(Array.isArray(e)?n=e:(vt("function"==typeof e.getZIndex,41),n=[e]),function(){return n}):void 0,this.changed()},e.prototype.setId=function(t){this.id_=t,this.changed()},e.prototype.setGeometryName=function(t){this.removeChangeListener(this.geometryName_,this.handleGeometryChanged_),this.geometryName_=t,this.addChangeListener(this.geometryName_,this.handleGeometryChanged_),this.handleGeometryChanged_()},e}(G),ja=ka,Ga=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),za=function(t){function e(e){var n=t.call(this)||this;return n.map_=e,n}return Ga(e,t),e.prototype.dispatchRenderEvent=function(t,e){L()},e.prototype.calculateMatrices2D=function(t){var e=t.viewState,n=t.coordinateToPixelTransform,i=t.pixelToCoordinateTransform;Gn(n,t.size[0]/2,t.size[1]/2,1/e.resolution,-1/e.resolution,-e.rotation,-e.center[0],-e.center[1]),zn(i,n)},e.prototype.forEachFeatureAtCoordinate=function(t,e,n,i,r,o,s,a){var l,h=e.viewState;function u(t,e,n,i){return r.call(o,e,t?n:null,i)}var c=h.projection,p=Xe(t.slice(),c),f=[[0,0]];if(c.canWrapX()&&i){var d=ke(c.getExtent());f.push([-d,0],[d,0])}for(var g=e.layerStatesArray,_=g.length,y=[],v=[],m=0;m=0;--x){var C=g[x],w=C.layer;if(w.hasRenderer()&&jt(C,h)&&s.call(a,w)){var S=w.getRenderer(),E=w.getSource();if(S&&E){var T=E.getWrapX()?p:t,b=u.bind(null,C.managed);v[0]=T[0]+f[m][0],v[1]=T[1]+f[m][1],l=S.forEachFeatureAtCoordinate(v,e,n,b,y)}if(l)return l}}if(0!==y.length){var O=1/y.length;return y.forEach((function(t,e){return t.distanceSq+=e*O})),y.sort((function(t,e){return t.distanceSq-e.distanceSq})),y.some((function(t){return l=t.callback(t.feature,t.layer,t.geometry)})),l}},e.prototype.forEachLayerAtPixel=function(t,e,n,i,r){return L()},e.prototype.hasFeatureAtCoordinate=function(t,e,n,i,r,o){return void 0!==this.forEachFeatureAtCoordinate(t,e,n,i,u,this,r,o)},e.prototype.getMap=function(){return this.map_},e.prototype.renderFrame=function(t){L()},e.prototype.scheduleExpireIconCache=function(t){bs.canExpireCache()&&t.postRenderFunctions.push(Wa)},e}(r);function Wa(t,e){bs.expire()}var Xa=za,Na=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),Ya=function(t){function n(n){var i=t.call(this,n)||this;i.fontChangeListenerKey_=O(to,e,n.redrawText.bind(n)),i.element_=document.createElement("div");var r=i.element_.style;r.position="absolute",r.width="100%",r.height="100%",r.zIndex="0",i.element_.className="ol-unselectable ol-layers";var o=n.getViewport();return o.insertBefore(i.element_,o.firstChild||null),i.children_=[],i.renderedVisible_=!0,i}return Na(n,t),n.prototype.dispatchRenderEvent=function(t,e){var n=this.getMap();if(n.hasListener(t)){var i=new ir(t,void 0,e);n.dispatchEvent(i)}},n.prototype.disposeInternal=function(){I(this.fontChangeListenerKey_),this.element_.parentNode.removeChild(this.element_),t.prototype.disposeInternal.call(this)},n.prototype.renderFrame=function(t){if(t){this.calculateMatrices2D(t),this.dispatchRenderEvent(Ft,t);var e=t.layerStatesArray.sort((function(t,e){return t.zIndex-e.zIndex})),n=t.viewState;this.children_.length=0;for(var i=[],r=null,o=0,s=e.length;o=0;--o)i[o].renderDeclutter(t);!function(t,e){for(var n=t.childNodes,i=0;;++i){var r=n[i],o=e[i];if(!r&&!o)break;r!==o&&(r?o?t.insertBefore(o,r):(t.removeChild(r),--i):t.appendChild(o))}}(this.element_,this.children_),this.dispatchRenderEvent("postcompose",t),this.renderedVisible_||(this.element_.style.display="",this.renderedVisible_=!0),this.scheduleExpireIconCache(t)}else this.renderedVisible_&&(this.element_.style.display="none",this.renderedVisible_=!1)},n.prototype.forEachLayerAtPixel=function(t,e,n,i,r){for(var o=e.viewState,s=e.layerStatesArray,a=s.length-1;a>=0;--a){var l=s[a],h=l.layer;if(h.hasRenderer()&&jt(l,o)&&r(h)){var u=h.getRenderer().getDataAtPixel(t,e,n);if(u){var c=i(h,u);if(c)return c}}}},n}(Xa),Ba=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),Ka=function(t){function e(e,n){var i=t.call(this,e)||this;return i.layer=n,i}return Ba(e,t),e}(t),Za="layers",Va=function(t){function n(e){var n=this,i=e||{},r=f({},i);delete r.layers;var o=i.layers;return(n=t.call(this,r)||this).on,n.once,n.un,n.layersListenerKeys_=[],n.listenerKeys_={},n.addChangeListener(Za,n.handleLayersChanged_),o?Array.isArray(o)?o=new Ea(o.slice(),{unique:!0}):vt("function"==typeof o.getArray,43):o=new Ea(void 0,{unique:!0}),n.setLayers(o),n}return Ba(n,t),n.prototype.handleLayerChange_=function(){this.changed()},n.prototype.handleLayersChanged_=function(){this.layersListenerKeys_.forEach(I),this.layersListenerKeys_.length=0;var t=this.getLayers();for(var e in this.layersListenerKeys_.push(O(t,ma,this.handleLayersAdd_,this),O(t,xa,this.handleLayersRemove_,this)),this.listenerKeys_)this.listenerKeys_[e].forEach(I);d(this.listenerKeys_);for(var n=t.getArray(),i=0,r=n.length;ithis.moveTolerance_||Math.abs(t.clientY-this.down_.clientY)>this.moveTolerance_},e.prototype.disposeInternal=function(){this.relayedListenerKey_&&(I(this.relayedListenerKey_),this.relayedListenerKey_=null),this.element_.removeEventListener(T,this.boundHandleTouchMove_),this.pointerdownListenerKey_&&(I(this.pointerdownListenerKey_),this.pointerdownListenerKey_=null),this.dragListenerKeys_.forEach(I),this.dragListenerKeys_.length=0,this.element_=null,t.prototype.disposeInternal.call(this)},e}(m),el="layergroup",nl="size",il="target",rl="view",ol=1/0,sl=function(){function t(t,e){this.priorityFunction_=t,this.keyFunction_=e,this.elements_=[],this.priorities_=[],this.queuedElements_={}}return t.prototype.clear=function(){this.elements_.length=0,this.priorities_.length=0,d(this.queuedElements_)},t.prototype.dequeue=function(){var t=this.elements_,e=this.priorities_,n=t[0];1==t.length?(t.length=0,e.length=0):(t[0]=t.pop(),e[0]=e.pop(),this.siftUp_(0));var i=this.keyFunction_(n);return delete this.queuedElements_[i],n},t.prototype.enqueue=function(t){vt(!(this.keyFunction_(t)in this.queuedElements_),31);var e=this.priorityFunction_(t);return e!=ol&&(this.elements_.push(t),this.priorities_.push(e),this.queuedElements_[this.keyFunction_(t)]=!0,this.siftDown_(0,this.elements_.length-1),!0)},t.prototype.getCount=function(){return this.elements_.length},t.prototype.getLeftChildIndex_=function(t){return 2*t+1},t.prototype.getRightChildIndex_=function(t){return 2*t+2},t.prototype.getParentIndex_=function(t){return t-1>>1},t.prototype.heapify_=function(){var t;for(t=(this.elements_.length>>1)-1;t>=0;t--)this.siftUp_(t)},t.prototype.isEmpty=function(){return 0===this.elements_.length},t.prototype.isKeyQueued=function(t){return t in this.queuedElements_},t.prototype.isQueued=function(t){return this.isKeyQueued(this.keyFunction_(t))},t.prototype.siftUp_=function(t){for(var e=this.elements_,n=this.priorities_,i=e.length,r=e[t],o=n[t],s=t;t>1;){var a=this.getLeftChildIndex_(t),l=this.getRightChildIndex_(t),h=lt;){var s=this.getParentIndex_(e);if(!(i[s]>o))break;n[e]=n[s],i[e]=i[s],e=s}n[e]=r,i[e]=o},t.prototype.reprioritize=function(){var t,e,n,i=this.priorityFunction_,r=this.elements_,o=this.priorities_,s=0,a=r.length;for(e=0;e0;)i=(n=this.dequeue()[0]).getKey(),0!==n.getState()||i in this.tilesLoadingKeys_||(this.tilesLoadingKeys_[i]=!0,++this.tilesLoading_,++r,n.load())},e}(sl),hl={CENTER:"center",RESOLUTION:"resolution",ROTATION:"rotation"};function ul(t,e,n){return function(i,r,o,s,a){if(i){if(!r&&!e)return i;var l=e?0:o[0]*r,h=e?0:o[1]*r,u=a?a[0]:0,c=a?a[1]:0,p=t[0]+l/2+u,f=t[2]-l/2+u,d=t[1]+h/2+c,g=t[3]-h/2+c;p>f&&(f=p=(f+p)/2),d>g&&(g=d=(g+d)/2);var _=mt(i[0],p,f),y=mt(i[1],d,g);if(s&&n&&r){var v=30*r;_+=-v*Math.log(1+Math.max(0,p-i[0])/v)+v*Math.log(1+Math.max(0,i[0]-f)/v),y+=-v*Math.log(1+Math.max(0,d-i[1])/v)+v*Math.log(1+Math.max(0,i[1]-g)/v)}return[_,y]}}}function cl(t){return t}function pl(t,e,n,i){var r=ke(e)/n[0],o=Fe(e)/n[1];return i?Math.min(t,Math.max(r,o)):Math.min(t,Math.min(r,o))}function fl(t,e,n){var i=Math.min(t,e);return i*=Math.log(1+50*Math.max(0,t/e-1))/50+1,n&&(i=Math.max(i,n),i/=Math.log(1+50*Math.max(0,n/t-1))/50+1),mt(i,n/2,2*e)}function dl(t,e,n,i,r){return function(o,s,a,l){if(void 0!==o){var h=i?pl(t,i,a,r):t;return(void 0===n||n)&&l?fl(o,h,e):mt(o,e,h)}}}function gl(t){return void 0!==t?0:void 0}function _l(t){return void 0!==t?t:void 0}var yl=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),vl=function(t){function e(e){var n=t.call(this)||this;n.on,n.once,n.un;var i=f({},e);return n.hints_=[0,0],n.animations_=[],n.updateAnimationKey_,n.projection_=Je(i.projection,"EPSG:3857"),n.viewportSize_=[100,100],n.targetCenter_=null,n.targetResolution_,n.targetRotation_,n.nextCenter_=null,n.nextResolution_,n.nextRotation_,n.cancelAnchor_=void 0,i.projection&&Be(),i.center&&(i.center=un(i.center,n.projection_)),i.extent&&(i.extent=pn(i.extent,n.projection_)),n.applyOptions_(i),n}return yl(e,t),e.prototype.applyOptions_=function(t){var e=f({},t);for(var n in hl)delete e[n];this.setProperties(e,!0);var i=function(t){var e,n,i,r=void 0!==t.minZoom?t.minZoom:0,o=void 0!==t.maxZoom?t.maxZoom:28,a=void 0!==t.zoomFactor?t.zoomFactor:2,l=void 0!==t.multiWorld&&t.multiWorld,h=void 0===t.smoothResolutionConstraint||t.smoothResolutionConstraint,u=void 0!==t.showFullExtent&&t.showFullExtent,c=Je(t.projection,"EPSG:3857"),p=c.getExtent(),f=t.constrainOnlyCenter,d=t.extent;if(l||d||!c.isGlobal()||(f=!1,d=p),void 0!==t.resolutions){var g=t.resolutions;n=g[r],i=void 0!==g[o]?g[o]:g[g.length-1],e=t.constrainResolution?function(t,e,n,i){return function(r,o,a,l){if(void 0!==r){var h=t[0],u=t[t.length-1],c=n?pl(h,n,a,i):h;if(l)return void 0===e||e?fl(r,c,u):mt(r,u,c);var p=Math.min(c,r),f=Math.floor(s(t,p,o));return t[f]>c&&f1&&"function"==typeof arguments[n-1]&&(e=arguments[n-1],--n);for(var i=0;i0},e.prototype.getInteracting=function(){return this.hints_[1]>0},e.prototype.cancelAnimations=function(){var t;this.setHint(0,-this.hints_[0]);for(var e=0,n=this.animations_.length;e=0;--n){for(var i=this.animations_[n],r=!0,o=0,s=i.length;o0?l/a.duration:1;h>=1?(a.complete=!0,h=1):r=!1;var u=a.easing(h);if(a.sourceCenter){var c=a.sourceCenter[0],p=a.sourceCenter[1],f=a.targetCenter[0],d=a.targetCenter[1];this.nextCenter_=a.targetCenter;var g=c+u*(f-c),_=p+u*(d-p);this.targetCenter_=[g,_]}if(a.sourceResolution&&a.targetResolution){var y=1===u?a.targetResolution:a.sourceResolution+u*(a.targetResolution-a.sourceResolution);if(a.anchor){var v=this.getViewportSize_(this.getRotation()),m=this.constraints_.resolution(y,0,v,!0);this.targetCenter_=this.calculateCenterZoom(m,a.anchor)}this.nextResolution_=a.targetResolution,this.targetResolution_=y,this.applyTargetState_(!0)}if(void 0!==a.sourceRotation&&void 0!==a.targetRotation){var x=1===u?Tt(a.targetRotation+Math.PI,2*Math.PI)-Math.PI:a.sourceRotation+u*(a.targetRotation-a.sourceRotation);if(a.anchor){var C=this.constraints_.rotation(x,!0);this.targetCenter_=this.calculateCenterRotate(C,a.anchor)}this.nextRotation_=a.targetRotation,this.targetRotation_=x}if(this.applyTargetState_(!0),e=!0,!a.complete)break}}if(r){this.animations_[n]=null,this.setHint(0,-1),this.nextCenter_=null,this.nextResolution_=NaN,this.nextRotation_=NaN;var w=i[0].callback;w&&ml(w,!0)}}this.animations_=this.animations_.filter(Boolean),e&&void 0===this.updateAnimationKey_&&(this.updateAnimationKey_=requestAnimationFrame(this.updateAnimations_.bind(this)))}},e.prototype.calculateCenterRotate=function(t,e){var n,i,r,o=this.getCenterInternal();return void 0!==o&&(We(n=[o[0]-e[0],o[1]-e[1]],t-this.getRotation()),r=e,(i=n)[0]+=+r[0],i[1]+=+r[1]),n},e.prototype.calculateCenterZoom=function(t,e){var n,i=this.getCenterInternal(),r=this.getResolution();return void 0!==i&&void 0!==r&&(n=[e[0]-t*(e[0]-i[0])/r,e[1]-t*(e[1]-i[1])/r]),n},e.prototype.getViewportSize_=function(t){var e=this.viewportSize_;if(t){var n=e[0],i=e[1];return[Math.abs(n*Math.cos(t))+Math.abs(i*Math.sin(t)),Math.abs(n*Math.sin(t))+Math.abs(i*Math.cos(t))]}return e},e.prototype.setViewportSize=function(t){this.viewportSize_=Array.isArray(t)?t.slice():[100,100],this.getAnimating()||this.resolveConstraints(0)},e.prototype.getCenter=function(){var t=this.getCenterInternal();return t?hn(t,this.getProjection()):t},e.prototype.getCenterInternal=function(){return this.get(hl.CENTER)},e.prototype.getConstraints=function(){return this.constraints_},e.prototype.getConstrainResolution=function(){return this.get("constrainResolution")},e.prototype.getHints=function(t){return void 0!==t?(t[0]=this.hints_[0],t[1]=this.hints_[1],t):this.hints_.slice()},e.prototype.calculateExtent=function(t){return cn(this.calculateExtentInternal(t),this.getProjection())},e.prototype.calculateExtentInternal=function(t){var e=t||this.getViewportSizeMinusPadding_(),n=this.getCenterInternal();vt(n,1);var i=this.getResolution();vt(void 0!==i,2);var r=this.getRotation();return vt(void 0!==r,3),Me(n,i,r,e)},e.prototype.getMaxResolution=function(){return this.maxResolution_},e.prototype.getMinResolution=function(){return this.minResolution_},e.prototype.getMaxZoom=function(){return this.getZoomForResolution(this.minResolution_)},e.prototype.setMaxZoom=function(t){this.applyOptions_(this.getUpdatedOptions_({maxZoom:t}))},e.prototype.getMinZoom=function(){return this.getZoomForResolution(this.maxResolution_)},e.prototype.setMinZoom=function(t){this.applyOptions_(this.getUpdatedOptions_({minZoom:t}))},e.prototype.setConstrainResolution=function(t){this.applyOptions_(this.getUpdatedOptions_({constrainResolution:t}))},e.prototype.getProjection=function(){return this.projection_},e.prototype.getResolution=function(){return this.get(hl.RESOLUTION)},e.prototype.getResolutions=function(){return this.resolutions_},e.prototype.getResolutionForExtent=function(t,e){return this.getResolutionForExtentInternal(pn(t,this.getProjection()),e)},e.prototype.getResolutionForExtentInternal=function(t,e){var n=e||this.getViewportSizeMinusPadding_(),i=ke(t)/n[0],r=Fe(t)/n[1];return Math.max(i,r)},e.prototype.getResolutionForValueFunction=function(t){var e=t||2,n=this.getConstrainedResolution(this.maxResolution_),i=this.minResolution_,r=Math.log(n/i)/Math.log(e);return function(t){return n/Math.pow(e,t*r)}},e.prototype.getRotation=function(){return this.get(hl.ROTATION)},e.prototype.getValueForResolutionFunction=function(t){var e=Math.log(t||2),n=this.getConstrainedResolution(this.maxResolution_),i=this.minResolution_,r=Math.log(n/i)/e;return function(t){return Math.log(n/t)/e/r}},e.prototype.getViewportSizeMinusPadding_=function(t){var e=this.getViewportSize_(t),n=this.padding_;return n&&(e=[e[0]-n[1]-n[3],e[1]-n[0]-n[2]]),e},e.prototype.getState=function(){var t=this.getProjection(),e=this.getResolution(),n=this.getRotation(),i=this.getCenterInternal(),r=this.padding_;if(r){var o=this.getViewportSizeMinusPadding_();i=Cl(i,this.getViewportSize_(),[o[0]/2+r[3],o[1]/2+r[0]],e,n)}return{center:i.slice(0),projection:void 0!==t?t:null,resolution:e,nextCenter:this.nextCenter_,nextResolution:this.nextResolution_,nextRotation:this.nextRotation_,rotation:n,zoom:this.getZoom()}},e.prototype.getZoom=function(){var t,e=this.getResolution();return void 0!==e&&(t=this.getZoomForResolution(e)),t},e.prototype.getZoomForResolution=function(t){var e,n,i=this.minZoom_||0;if(this.resolutions_){var r=s(this.resolutions_,t,1);i=r,e=this.resolutions_[r],n=r==this.resolutions_.length-1?2:e/this.resolutions_[r+1]}else e=this.maxResolution_,n=this.zoomFactor_;return i+Math.log(e/t)/Math.log(n)},e.prototype.getResolutionForZoom=function(t){if(this.resolutions_){if(this.resolutions_.length<=1)return 0;var e=mt(Math.floor(t),0,this.resolutions_.length-2),n=this.resolutions_[e]/this.resolutions_[e+1];return this.resolutions_[e]/Math.pow(n,mt(t-e,0,1))}return this.maxResolution_/Math.pow(this.zoomFactor_,t-this.minZoom_)},e.prototype.fit=function(t,e){var n;if(vt(Array.isArray(t)||"function"==typeof t.getSimplifiedGeometry,24),Array.isArray(t))vt(!Ge(t),25),n=Zi(i=pn(t,this.getProjection()));else if(t.getType()===kn){var i;(n=Zi(i=pn(t.getExtent(),this.getProjection()))).rotate(this.getRotation(),Ie(i))}else{var r=ln();n=r?t.clone().transform(r,this.getProjection()):t}this.fitInternal(n,e)},e.prototype.rotatedExtentForGeometry=function(t){for(var e=this.getRotation(),n=Math.cos(e),i=Math.sin(-e),r=t.getFlatCoordinates(),o=t.getStride(),s=1/0,a=1/0,l=-1/0,h=-1/0,u=0,c=r.length;u=0;a--){var l=s[a];if(l.getMap()===this&&l.getActive()&&this.getTargetElement()&&(!l.handleEvent(t)||t.propagationStopped))break}}},n.prototype.handlePostRender=function(){var t=this.frameState_,e=this.tileQueue_;if(!e.isEmpty()){var n=this.maxTilesLoading_,i=n;if(t){var r=t.viewHints;if(r[0]||r[1]){var o=Date.now()-t.time>8;n=o?0:8,i=o?0:2}}e.getTilesLoading()0&&e%(2*Math.PI)!=0?t.animate({rotation:0,duration:this.duration_,easing:xn}):t.setRotation(0))}},e.prototype.render=function(t){var e=t.frameState;if(e){var n=e.viewState.rotation;if(n!=this.rotation_){var i="rotate("+n+"rad)";if(this.autoHide_){var r=this.element.classList.contains(et);r||0!==n?r&&0!==n&&this.element.classList.remove(et):this.element.classList.add(et)}this.label_.style.transform=i}this.rotation_=n}},e}(tt),Il=Rl,Pl="active",Ml=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}();function Fl(t,e,n,i){var r=t.getZoom();if(void 0!==r){var o=t.getConstrainedZoom(r+e),s=t.getResolutionForZoom(o);t.getAnimating()&&t.cancelAnimations(),t.animate({resolution:s,anchor:n,duration:void 0!==i?i:250,easing:xn})}}var Ll=function(t){function e(e){var n=t.call(this)||this;return n.on,n.once,n.un,e&&e.handleEvent&&(n.handleEvent=e.handleEvent),n.map_=null,n.setActive(!0),n}return Ml(e,t),e.prototype.getActive=function(){return this.get(Pl)},e.prototype.getMap=function(){return this.map_},e.prototype.handleEvent=function(t){return!0},e.prototype.setActive=function(t){this.set(Pl,t)},e.prototype.setMap=function(t){this.map_=t},e}(G),Al=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),Dl=function(t){function e(e){var n=t.call(this)||this,i=e||{};return n.delta_=i.delta?i.delta:1,n.duration_=void 0!==i.duration?i.duration:250,n}return Al(e,t),e.prototype.handleEvent=function(t){var e=!1;if(t.type==Qa.DBLCLICK){var n=t.originalEvent,i=t.map,r=t.coordinate,o=n.shiftKey?-this.delta_:this.delta_;Fl(i.getView(),o,r,this.duration_),n.preventDefault(),e=!0}return!e},e}(Ll),kl=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}();function jl(t){for(var e=t.length,n=0,i=0,r=0;r0}}else if(t.type==Qa.POINTERDOWN){var i=this.handleDownEvent(t);this.handlingDownUpSequence=i,e=this.stopDown(i)}else t.type==Qa.POINTERMOVE&&this.handleMoveEvent(t);return!e},e.prototype.handleMoveEvent=function(t){},e.prototype.handleUpEvent=function(t){return!1},e.prototype.stopDown=function(t){return t},e.prototype.updateTrackedPointers_=function(t){if(function(t){var e=t.type;return e===Qa.POINTERDOWN||e===Qa.POINTERDRAG||e===Qa.POINTERUP}(t)){var e=t.originalEvent,n=e.pointerId.toString();t.type==Qa.POINTERUP?delete this.trackedPointers_[n]:(t.type==Qa.POINTERDOWN||n in this.trackedPointers_)&&(this.trackedPointers_[n]=e),this.targetPointers=g(this.trackedPointers_)}},e}(Ll);function zl(t){var e=arguments;return function(t){for(var n=!0,i=0,r=e.length;i0&&this.condition_(t)){var e=t.map.getView();return this.lastCentroid=null,e.getAnimating()&&e.cancelAnimations(),this.kinetic_&&this.kinetic_.begin(),this.noKinetic_=this.targetPointers.length>1,!0}return!1},e}(Gl),Jl=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),Ql=function(t){function e(e){var n=this,i=e||{};return(n=t.call(this,{stopDown:c})||this).condition_=i.condition?i.condition:Wl,n.lastAngle_=void 0,n.duration_=void 0!==i.duration?i.duration:250,n}return Jl(e,t),e.prototype.handleDragEvent=function(t){if(Vl(t)){var e=t.map,n=e.getView();if(n.getConstraints().rotation!==gl){var i=e.getSize(),r=t.pixel,o=Math.atan2(i[1]/2-r[1],r[0]-i[0]/2);if(void 0!==this.lastAngle_){var s=o-this.lastAngle_;n.adjustRotationInternal(-s)}this.lastAngle_=o}}},e.prototype.handleUpEvent=function(t){return!Vl(t)||(t.map.getView().endInteraction(this.duration_),!1)},e.prototype.handleDownEvent=function(t){return!(!Vl(t)||!Yl(t)||!this.condition_(t)||(t.map.getView().beginInteraction(),this.lastAngle_=void 0,0))},e}(Gl),$l=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),th=function(t){function e(e){var n=t.call(this)||this;return n.geometry_=null,n.element_=document.createElement("div"),n.element_.style.position="absolute",n.element_.style.pointerEvents="auto",n.element_.className="ol-box "+e,n.map_=null,n.startPixel_=null,n.endPixel_=null,n}return $l(e,t),e.prototype.disposeInternal=function(){this.setMap(null)},e.prototype.render_=function(){var t=this.startPixel_,e=this.endPixel_,n="px",i=this.element_.style;i.left=Math.min(t[0],e[0])+n,i.top=Math.min(t[1],e[1])+n,i.width=Math.abs(e[0]-t[0])+n,i.height=Math.abs(e[1]-t[1])+n},e.prototype.setMap=function(t){if(this.map_){this.map_.getOverlayContainer().removeChild(this.element_);var e=this.element_.style;e.left="inherit",e.top="inherit",e.width="inherit",e.height="inherit"}this.map_=t,this.map_&&this.map_.getOverlayContainer().appendChild(this.element_)},e.prototype.setPixels=function(t,e){this.startPixel_=t,this.endPixel_=e,this.createOrUpdateGeometry(),this.render_()},e.prototype.createOrUpdateGeometry=function(){var t=this.startPixel_,e=this.endPixel_,n=[t,[t[0],e[1]],e,[e[0],t[1]]].map(this.map_.getCoordinateFromPixelInternal,this.map_);n[4]=n[0].slice(),this.geometry_?this.geometry_.setCoordinates([n]):this.geometry_=new Ki([n])},e.prototype.getGeometry=function(){return this.geometry_},e}(r),eh=th,nh=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),ih=function(t){function e(e,n,i){var r=t.call(this,e)||this;return r.coordinate=n,r.mapBrowserEvent=i,r}return nh(e,t),e}(t),rh=function(t){function e(e){var n=t.call(this)||this;n.on,n.once,n.un;var i=e||{};return n.box_=new eh(i.className||"ol-dragbox"),n.minArea_=void 0!==i.minArea?i.minArea:64,i.onBoxEnd&&(n.onBoxEnd=i.onBoxEnd),n.startPixel_=null,n.condition_=i.condition?i.condition:Yl,n.boxEndCondition_=i.boxEndCondition?i.boxEndCondition:n.defaultBoxEndCondition,n}return nh(e,t),e.prototype.defaultBoxEndCondition=function(t,e,n){var i=n[0]-e[0],r=n[1]-e[1];return i*i+r*r>=this.minArea_},e.prototype.getGeometry=function(){return this.box_.getGeometry()},e.prototype.handleDragEvent=function(t){this.box_.setPixels(this.startPixel_,t.pixel),this.dispatchEvent(new ih("boxdrag",t.coordinate,t))},e.prototype.handleUpEvent=function(t){this.box_.setMap(null);var e=this.boxEndCondition_(t,this.startPixel_,t.pixel);return e&&this.onBoxEnd(t),this.dispatchEvent(new ih(e?"boxend":"boxcancel",t.coordinate,t)),!1},e.prototype.handleDownEvent=function(t){return!!this.condition_(t)&&(this.startPixel_=t.pixel,this.box_.setMap(t.map),this.box_.setPixels(this.startPixel_,this.startPixel_),this.dispatchEvent(new ih("boxstart",t.coordinate,t)),!0)},e.prototype.onBoxEnd=function(t){},e}(Gl),oh=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),sh=function(t){function e(e){var n=this,i=e||{},r=i.condition?i.condition:Kl;return(n=t.call(this,{condition:r,className:i.className||"ol-dragzoom",minArea:i.minArea})||this).duration_=void 0!==i.duration?i.duration:200,n.out_=void 0!==i.out&&i.out,n}return oh(e,t),e.prototype.onBoxEnd=function(t){var e=this.getMap().getView(),n=this.getGeometry();if(this.out_){var i=e.rotatedExtentForGeometry(n),r=e.getResolutionForExtentInternal(i),o=e.getResolution()/r;(n=n.clone()).scale(o*o)}e.fitInternal(n,{duration:this.duration_,easing:xn})},e}(rh),ah=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),lh=function(t){function e(e){var n=t.call(this)||this,i=e||{};return n.defaultCondition_=function(t){return Bl(t)&&Zl(t)},n.condition_=void 0!==i.condition?i.condition:n.defaultCondition_,n.duration_=void 0!==i.duration?i.duration:100,n.pixelDelta_=void 0!==i.pixelDelta?i.pixelDelta:128,n}return ah(e,t),e.prototype.handleEvent=function(t){var e=!1;if(t.type==S){var n=t.originalEvent,i=n.keyCode;if(this.condition_(t)&&(40==i||37==i||39==i||38==i)){var r=t.map.getView(),o=r.getResolution()*this.pixelDelta_,s=0,a=0;40==i?a=-o:37==i?s=-o:39==i?s=o:a=o;var l=[s,a];We(l,r.getRotation()),function(t,e,n){var i=t.getCenterInternal();if(i){var r=[i[0]+e[0],i[1]+e[1]];t.animateInternal({duration:void 0!==n?n:250,easing:wn,center:t.getConstrainedCenter(r)})}}(r,l,this.duration_),n.preventDefault(),e=!0}}return!e},e}(Ll),hh=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),uh=function(t){function e(e){var n=t.call(this)||this,i=e||{};return n.condition_=i.condition?i.condition:Zl,n.delta_=i.delta?i.delta:1,n.duration_=void 0!==i.duration?i.duration:100,n}return hh(e,t),e.prototype.handleEvent=function(t){var e=!1;if(t.type==S||t.type==E){var n=t.originalEvent,i=n.charCode;if(this.condition_(t)&&(i=="+".charCodeAt(0)||i=="-".charCodeAt(0))){var r=t.map,o=i=="+".charCodeAt(0)?this.delta_:-this.delta_;Fl(r.getView(),o,void 0,this.duration_),n.preventDefault(),e=!0}}return!e},e}(Ll),ch=function(){function t(t,e,n){this.decay_=t,this.minVelocity_=e,this.delay_=n,this.points_=[],this.angle_=0,this.initialVelocity_=0}return t.prototype.begin=function(){this.points_.length=0,this.angle_=0,this.initialVelocity_=0},t.prototype.update=function(t,e){this.points_.push(t,e,Date.now())},t.prototype.end=function(){if(this.points_.length<6)return!1;var t=Date.now()-this.delay_,e=this.points_.length-3;if(this.points_[e+2]0&&this.points_[n+2]>t;)n-=3;var i=this.points_[e+2]-this.points_[n+2];if(i<1e3/60)return!1;var r=this.points_[e]-this.points_[n],o=this.points_[e+1]-this.points_[n+1];return this.angle_=Math.atan2(o,r),this.initialVelocity_=Math.sqrt(r*r+o*o)/i,this.initialVelocity_>this.minVelocity_},t.prototype.getDistance=function(){return(this.minVelocity_-this.initialVelocity_)/this.decay_},t.prototype.getAngle=function(){return this.angle_},t}(),ph=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),fh="trackpad",dh=function(t){function e(e){var n=this,i=e||{};(n=t.call(this,i)||this).totalDelta_=0,n.lastDelta_=0,n.maxDelta_=void 0!==i.maxDelta?i.maxDelta:1,n.duration_=void 0!==i.duration?i.duration:250,n.timeout_=void 0!==i.timeout?i.timeout:80,n.useAnchor_=void 0===i.useAnchor||i.useAnchor,n.constrainResolution_=void 0!==i.constrainResolution&&i.constrainResolution;var r=i.condition?i.condition:Nl;return n.condition_=i.onFocusOnly?zl(Xl,r):r,n.lastAnchor_=null,n.startTime_=void 0,n.timeoutId_,n.mode_=void 0,n.trackpadEventGap_=400,n.trackpadTimeoutId_,n.deltaPerZoom_=300,n}return ph(e,t),e.prototype.endInteraction_=function(){this.trackpadTimeoutId_=void 0,this.getMap().getView().endInteraction(void 0,this.lastDelta_?this.lastDelta_>0?1:-1:0,this.lastAnchor_)},e.prototype.handleEvent=function(t){if(!this.condition_(t))return!0;if(t.type!==b)return!0;var e,n=t.map,i=t.originalEvent;if(i.preventDefault(),this.useAnchor_&&(this.lastAnchor_=t.coordinate),t.type==b&&(e=i.deltaY,Y&&i.deltaMode===WheelEvent.DOM_DELTA_PIXEL&&(e/=Z),i.deltaMode===WheelEvent.DOM_DELTA_LINE&&(e*=40)),0===e)return!1;this.lastDelta_=e;var r=Date.now();void 0===this.startTime_&&(this.startTime_=r),(!this.mode_||r-this.startTime_>this.trackpadEventGap_)&&(this.mode_=Math.abs(e)<4?fh:"wheel");var o=n.getView();if(this.mode_===fh&&!o.getConstrainResolution()&&!this.constrainResolution_)return this.trackpadTimeoutId_?clearTimeout(this.trackpadTimeoutId_):(o.getAnimating()&&o.cancelAnimations(),o.beginInteraction()),this.trackpadTimeoutId_=setTimeout(this.endInteraction_.bind(this),this.timeout_),o.adjustZoom(-e/this.deltaPerZoom_,this.lastAnchor_),this.startTime_=r,!1;this.totalDelta_+=e;var s=Math.max(this.timeout_-(r-this.startTime_),0);return clearTimeout(this.timeoutId_),this.timeoutId_=setTimeout(this.handleWheelZoom_.bind(this,n),s),!1},e.prototype.handleWheelZoom_=function(t){var e=t.getView();e.getAnimating()&&e.cancelAnimations();var n=-mt(this.totalDelta_,-this.maxDelta_*this.deltaPerZoom_,this.maxDelta_*this.deltaPerZoom_)/this.deltaPerZoom_;(e.getConstrainResolution()||this.constrainResolution_)&&(n=n?n>0?1:-1:0),Fl(e,n,this.lastAnchor_,this.duration_),this.mode_=void 0,this.totalDelta_=0,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_=void 0},e.prototype.setMouseAnchor=function(t){this.useAnchor_=t,t||(this.lastAnchor_=null)},e}(Ll),gh=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),_h=function(t){function e(e){var n=this,i=e||{},r=i;return r.stopDown||(r.stopDown=c),(n=t.call(this,r)||this).anchor_=null,n.lastAngle_=void 0,n.rotating_=!1,n.rotationDelta_=0,n.threshold_=void 0!==i.threshold?i.threshold:.3,n.duration_=void 0!==i.duration?i.duration:250,n}return gh(e,t),e.prototype.handleDragEvent=function(t){var e=0,n=this.targetPointers[0],i=this.targetPointers[1],r=Math.atan2(i.clientY-n.clientY,i.clientX-n.clientX);if(void 0!==this.lastAngle_){var o=r-this.lastAngle_;this.rotationDelta_+=o,!this.rotating_&&Math.abs(this.rotationDelta_)>this.threshold_&&(this.rotating_=!0),e=o}this.lastAngle_=r;var s=t.map,a=s.getView();if(a.getConstraints().rotation!==gl){var l=s.getViewport().getBoundingClientRect(),h=jl(this.targetPointers);h[0]-=l.left,h[1]-=l.top,this.anchor_=s.getCoordinateFromPixelInternal(h),this.rotating_&&(s.render(),a.adjustRotationInternal(e,this.anchor_))}},e.prototype.handleUpEvent=function(t){return!(this.targetPointers.length<2&&(t.map.getView().endInteraction(this.duration_),1))},e.prototype.handleDownEvent=function(t){if(this.targetPointers.length>=2){var e=t.map;return this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.handlingDownUpSequence||e.getView().beginInteraction(),!0}return!1},e}(Gl),yh=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),vh=function(t){function e(e){var n=this,i=e||{},r=i;return r.stopDown||(r.stopDown=c),(n=t.call(this,r)||this).anchor_=null,n.duration_=void 0!==i.duration?i.duration:400,n.lastDistance_=void 0,n.lastScaleDelta_=1,n}return yh(e,t),e.prototype.handleDragEvent=function(t){var e=1,n=this.targetPointers[0],i=this.targetPointers[1],r=n.clientX-i.clientX,o=n.clientY-i.clientY,s=Math.sqrt(r*r+o*o);void 0!==this.lastDistance_&&(e=this.lastDistance_/s),this.lastDistance_=s;var a=t.map,l=a.getView();1!=e&&(this.lastScaleDelta_=e);var h=a.getViewport().getBoundingClientRect(),u=jl(this.targetPointers);u[0]-=h.left,u[1]-=h.top,this.anchor_=a.getCoordinateFromPixelInternal(u),a.render(),l.adjustResolutionInternal(e,this.anchor_)},e.prototype.handleUpEvent=function(t){if(this.targetPointers.length<2){var e=t.map.getView(),n=this.lastScaleDelta_>1?1:-1;return e.endInteraction(this.duration_,n),!1}return!0},e.prototype.handleDownEvent=function(t){if(this.targetPointers.length>=2){var e=t.map;return this.anchor_=null,this.lastDistance_=void 0,this.lastScaleDelta_=1,this.handlingDownUpSequence||e.getView().beginInteraction(),!0}return!1},e}(Gl),mh=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),xh=function(t){function e(e){return(e=f({},e)).controls||(e.controls=function(t){var e={},n=new Ea;return(void 0===e.zoom||e.zoom)&&n.push(new Tn(e.zoomOptions)),(void 0===e.rotate||e.rotate)&&n.push(new Il(e.rotateOptions)),(void 0===e.attribution||e.attribution)&&n.push(new Wt(e.attributionOptions)),n}()),e.interactions||(e.interactions=function(t){var e={onFocusOnly:!0}||{},n=new Ea,i=new ch(-.005,.05,100);return(void 0===e.altShiftDragRotate||e.altShiftDragRotate)&&n.push(new Ql),(void 0===e.doubleClickZoom||e.doubleClickZoom)&&n.push(new Dl({delta:e.zoomDelta,duration:e.zoomDuration})),(void 0===e.dragPan||e.dragPan)&&n.push(new ql({onFocusOnly:e.onFocusOnly,kinetic:i})),(void 0===e.pinchRotate||e.pinchRotate)&&n.push(new _h),(void 0===e.pinchZoom||e.pinchZoom)&&n.push(new vh({duration:e.zoomDuration})),(void 0===e.keyboard||e.keyboard)&&(n.push(new lh),n.push(new uh({delta:e.zoomDelta,duration:e.zoomDuration}))),(void 0===e.mouseWheelZoom||e.mouseWheelZoom)&&n.push(new dh({onFocusOnly:e.onFocusOnly,duration:e.zoomDuration})),(void 0===e.shiftDragZoom||e.shiftDragZoom)&&n.push(new sh({duration:e.zoomDuration})),n}()),t.call(this,e)||this}return mh(e,t),e.prototype.createRenderer=function(){return new Ya(this)},e}(bl),Ch={control:{Attribution:Wt,MousePosition:vn,Zoom:Tn},coordinate:{createStringXY:function(t){return function(e){return function(t,e){return function(t,e,n){return t?"{x}, {y}".replace("{x}",t[0].toFixed(n)).replace("{y}",t[1].toFixed(n)):""}(t,0,e)}(e,t)}}},extent:{boundingExtent:ue},geom:{LineString:wi,LinearRing:Oi,MultiLineString:Pi,MultiPoint:ki,MultiPolygon:Hi,Point:Li,Polygon:Ki},layer:{Tile:Xr,Vector:Ns},proj:{fromLonLat:function(t,e){return Be(),en(t,"EPSG:4326",void 0!==e?e:"EPSG:3857")},get:Ue,transformExtent:nn},source:{OSM:va,Vector:La},style:{Circle:fo,Fill:go,Stroke:_o,Style:Co,Text:Aa},Feature:ja,Map:xh,View:wl}}(),i.default}()})); //# sourceMappingURL=OpenLayers.js.map diff -Nru phpmyadmin-5.1.3+dfsg1/js/vendor/openlayers/OpenLayers.js.map phpmyadmin-5.1.4+dfsg1/js/vendor/openlayers/OpenLayers.js.map --- phpmyadmin-5.1.3+dfsg1/js/vendor/openlayers/OpenLayers.js.map 2022-02-11 04:20:17.000000000 +0000 +++ phpmyadmin-5.1.4+dfsg1/js/vendor/openlayers/OpenLayers.js.map 2022-05-11 03:26:09.000000000 +0000 @@ -1 +1 @@ -{"version":3,"file":"OpenLayers.js","mappings":"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","sources":["webpack://ol/webpack/universalModuleDefinition","webpack://ol/./node_modules/rbush/rbush.min.js","webpack://ol/webpack/bootstrap","webpack://ol/webpack/runtime/define property getters","webpack://ol/webpack/runtime/hasOwnProperty shorthand","webpack://ol/./node_modules/ol/events/Event.js","webpack://ol/./node_modules/ol/ObjectEventType.js","webpack://ol/./node_modules/ol/Disposable.js","webpack://ol/./node_modules/ol/array.js","webpack://ol/./node_modules/ol/functions.js","webpack://ol/./node_modules/ol/obj.js","webpack://ol/./node_modules/ol/events/Target.js","webpack://ol/./node_modules/ol/events/EventType.js","webpack://ol/./node_modules/ol/events.js","webpack://ol/./node_modules/ol/Observable.js","webpack://ol/./node_modules/ol/util.js","webpack://ol/./node_modules/ol/Object.js","webpack://ol/./node_modules/ol/MapEventType.js","webpack://ol/./node_modules/ol/has.js","webpack://ol/./node_modules/ol/dom.js","webpack://ol/./node_modules/ol/control/Control.js","webpack://ol/./node_modules/ol/css.js","webpack://ol/./node_modules/ol/layer/Property.js","webpack://ol/./node_modules/ol/AssertionError.js","webpack://ol/./node_modules/ol/asserts.js","webpack://ol/./node_modules/ol/math.js","webpack://ol/./node_modules/ol/layer/Base.js","webpack://ol/./node_modules/ol/render/EventType.js","webpack://ol/./node_modules/ol/source/State.js","webpack://ol/./node_modules/ol/layer/Layer.js","webpack://ol/./node_modules/ol/control/Attribution.js","webpack://ol/./node_modules/ol/pointer/EventType.js","webpack://ol/./node_modules/ol/proj/Units.js","webpack://ol/./node_modules/ol/proj/Projection.js","webpack://ol/./node_modules/ol/proj/epsg3857.js","webpack://ol/./node_modules/ol/proj/epsg4326.js","webpack://ol/./node_modules/ol/proj/projections.js","webpack://ol/./node_modules/ol/proj/transforms.js","webpack://ol/./node_modules/ol/extent/Corner.js","webpack://ol/./node_modules/ol/extent.js","webpack://ol/./node_modules/ol/extent/Relationship.js","webpack://ol/./node_modules/ol/sphere.js","webpack://ol/./node_modules/ol/proj.js","webpack://ol/./node_modules/ol/control/MousePosition.js","webpack://ol/./node_modules/ol/easing.js","webpack://ol/./node_modules/ol/control/Zoom.js","webpack://ol/./node_modules/ol/coordinate.js","webpack://ol/./node_modules/ol/geom/GeometryLayout.js","webpack://ol/./node_modules/ol/transform.js","webpack://ol/./node_modules/ol/geom/GeometryType.js","webpack://ol/./node_modules/ol/geom/flat/transform.js","webpack://ol/./node_modules/ol/geom/Geometry.js","webpack://ol/./node_modules/ol/geom/SimpleGeometry.js","webpack://ol/./node_modules/ol/geom/flat/closest.js","webpack://ol/./node_modules/ol/geom/flat/deflate.js","webpack://ol/./node_modules/ol/geom/flat/simplify.js","webpack://ol/./node_modules/ol/geom/flat/segments.js","webpack://ol/./node_modules/ol/geom/flat/inflate.js","webpack://ol/./node_modules/ol/geom/flat/interpolate.js","webpack://ol/./node_modules/ol/geom/flat/contains.js","webpack://ol/./node_modules/ol/geom/flat/intersectsextent.js","webpack://ol/./node_modules/ol/geom/flat/length.js","webpack://ol/./node_modules/ol/geom/LineString.js","webpack://ol/./node_modules/ol/geom/flat/area.js","webpack://ol/./node_modules/ol/geom/LinearRing.js","webpack://ol/./node_modules/ol/geom/MultiLineString.js","webpack://ol/./node_modules/ol/geom/Point.js","webpack://ol/./node_modules/ol/geom/MultiPoint.js","webpack://ol/./node_modules/ol/geom/flat/interiorpoint.js","webpack://ol/./node_modules/ol/geom/flat/reverse.js","webpack://ol/./node_modules/ol/geom/flat/orient.js","webpack://ol/./node_modules/ol/geom/Polygon.js","webpack://ol/./node_modules/ol/geom/MultiPolygon.js","webpack://ol/./node_modules/ol/geom/flat/center.js","webpack://ol/./node_modules/ol/layer/TileProperty.js","webpack://ol/./node_modules/ol/layer/BaseTile.js","webpack://ol/./node_modules/ol/renderer/Layer.js","webpack://ol/./node_modules/ol/ImageState.js","webpack://ol/./node_modules/ol/render/Event.js","webpack://ol/./node_modules/ol/renderer/canvas/Layer.js","webpack://ol/./node_modules/ol/TileRange.js","webpack://ol/./node_modules/ol/renderer/canvas/TileLayer.js","webpack://ol/./node_modules/ol/TileState.js","webpack://ol/./node_modules/ol/layer/Tile.js","webpack://ol/./node_modules/ol/size.js","webpack://ol/./node_modules/ol/style/Image.js","webpack://ol/./node_modules/ol/color.js","webpack://ol/./node_modules/ol/colorlike.js","webpack://ol/./node_modules/ol/render/canvas.js","webpack://ol/./node_modules/ol/style/RegularShape.js","webpack://ol/./node_modules/ol/style/Circle.js","webpack://ol/./node_modules/ol/style/Fill.js","webpack://ol/./node_modules/ol/style/Stroke.js","webpack://ol/./node_modules/ol/style/Style.js","webpack://ol/./node_modules/ol/layer/BaseVector.js","webpack://ol/./node_modules/ol/render/canvas/Instruction.js","webpack://ol/./node_modules/ol/render/VectorContext.js","webpack://ol/./node_modules/ol/render/canvas/Builder.js","webpack://ol/./node_modules/ol/render/canvas/ImageBuilder.js","webpack://ol/./node_modules/ol/render/canvas/LineStringBuilder.js","webpack://ol/./node_modules/ol/render/canvas/PolygonBuilder.js","webpack://ol/./node_modules/ol/geom/flat/straightchunk.js","webpack://ol/./node_modules/ol/render/canvas/TextBuilder.js","webpack://ol/./node_modules/ol/style/TextPlacement.js","webpack://ol/./node_modules/ol/render/canvas/BuilderGroup.js","webpack://ol/./node_modules/ol/render/canvas/BuilderType.js","webpack://ol/./node_modules/ol/geom/flat/textpath.js","webpack://ol/./node_modules/ol/render/canvas/Executor.js","webpack://ol/./node_modules/ol/render/canvas/ExecutorGroup.js","webpack://ol/./node_modules/ol/render/canvas/Immediate.js","webpack://ol/./node_modules/ol/style/IconAnchorUnits.js","webpack://ol/./node_modules/ol/style/IconOrigin.js","webpack://ol/./node_modules/ol/style/IconImageCache.js","webpack://ol/./node_modules/ol/ImageBase.js","webpack://ol/./node_modules/ol/Image.js","webpack://ol/./node_modules/ol/style/IconImage.js","webpack://ol/./node_modules/ol/style/Icon.js","webpack://ol/./node_modules/ol/render/canvas/hitdetect.js","webpack://ol/./node_modules/ol/renderer/vector.js","webpack://ol/./node_modules/ol/renderer/canvas/VectorLayer.js","webpack://ol/./node_modules/ol/reproj.js","webpack://ol/./node_modules/ol/ViewHint.js","webpack://ol/./node_modules/ol/layer/Vector.js","webpack://ol/./node_modules/ol/Tile.js","webpack://ol/./node_modules/ol/ImageTile.js","webpack://ol/./node_modules/ol/reproj/Triangulation.js","webpack://ol/./node_modules/ol/source/common.js","webpack://ol/./node_modules/ol/reproj/Tile.js","webpack://ol/./node_modules/ol/reproj/common.js","webpack://ol/./node_modules/ol/structs/LRUCache.js","webpack://ol/./node_modules/ol/tilecoord.js","webpack://ol/./node_modules/ol/TileCache.js","webpack://ol/./node_modules/ol/source/Source.js","webpack://ol/./node_modules/ol/tilegrid/TileGrid.js","webpack://ol/./node_modules/ol/tilegrid/common.js","webpack://ol/./node_modules/ol/tilegrid.js","webpack://ol/./node_modules/ol/source/Tile.js","webpack://ol/./node_modules/ol/tileurlfunction.js","webpack://ol/./node_modules/ol/source/UrlTile.js","webpack://ol/./node_modules/ol/source/TileEventType.js","webpack://ol/./node_modules/ol/source/TileImage.js","webpack://ol/./node_modules/ol/source/XYZ.js","webpack://ol/./node_modules/ol/source/OSM.js","webpack://ol/./node_modules/ol/CollectionEventType.js","webpack://ol/./node_modules/ol/Collection.js","webpack://ol/./node_modules/ol/structs/RBush.js","webpack://ol/./node_modules/ol/source/VectorEventType.js","webpack://ol/./node_modules/ol/loadingstrategy.js","webpack://ol/./node_modules/ol/format/FormatType.js","webpack://ol/./node_modules/ol/featureloader.js","webpack://ol/./node_modules/ol/source/Vector.js","webpack://ol/./node_modules/ol/style/Text.js","webpack://ol/./node_modules/ol/Feature.js","webpack://ol/./node_modules/ol/renderer/Map.js","webpack://ol/./node_modules/ol/renderer/Composite.js","webpack://ol/./node_modules/ol/layer/Group.js","webpack://ol/./node_modules/ol/MapEvent.js","webpack://ol/./node_modules/ol/MapBrowserEvent.js","webpack://ol/./node_modules/ol/MapBrowserEventType.js","webpack://ol/./node_modules/ol/MapBrowserEventHandler.js","webpack://ol/./node_modules/ol/MapProperty.js","webpack://ol/./node_modules/ol/structs/PriorityQueue.js","webpack://ol/./node_modules/ol/TileQueue.js","webpack://ol/./node_modules/ol/ViewProperty.js","webpack://ol/./node_modules/ol/centerconstraint.js","webpack://ol/./node_modules/ol/resolutionconstraint.js","webpack://ol/./node_modules/ol/rotationconstraint.js","webpack://ol/./node_modules/ol/View.js","webpack://ol/./node_modules/ol/PluggableMap.js","webpack://ol/./node_modules/ol/control/Rotate.js","webpack://ol/./node_modules/ol/interaction/Property.js","webpack://ol/./node_modules/ol/interaction/Interaction.js","webpack://ol/./node_modules/ol/interaction/DoubleClickZoom.js","webpack://ol/./node_modules/ol/interaction/Pointer.js","webpack://ol/./node_modules/ol/events/condition.js","webpack://ol/./node_modules/ol/interaction/DragPan.js","webpack://ol/./node_modules/ol/interaction/DragRotate.js","webpack://ol/./node_modules/ol/render/Box.js","webpack://ol/./node_modules/ol/interaction/DragBox.js","webpack://ol/./node_modules/ol/interaction/DragZoom.js","webpack://ol/./node_modules/ol/interaction/KeyboardPan.js","webpack://ol/./node_modules/ol/events/KeyCode.js","webpack://ol/./node_modules/ol/interaction/KeyboardZoom.js","webpack://ol/./node_modules/ol/Kinetic.js","webpack://ol/./node_modules/ol/interaction/MouseWheelZoom.js","webpack://ol/./node_modules/ol/interaction/PinchRotate.js","webpack://ol/./node_modules/ol/interaction/PinchZoom.js","webpack://ol/./node_modules/ol/Map.js","webpack://ol/./node_modules/ol/control.js","webpack://ol/./node_modules/ol/interaction.js","webpack://ol/./js/src/ol.mjs"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ol\"] = factory();\n\telse\n\t\troot[\"ol\"] = factory();\n})(self, function() {\nreturn ","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=t||self).RBush=i()}(this,function(){\"use strict\";function t(t,r,e,a,h){!function t(n,r,e,a,h){for(;a>e;){if(a-e>600){var o=a-e+1,s=r-e+1,l=Math.log(o),f=.5*Math.exp(2*l/3),u=.5*Math.sqrt(l*f*(o-f)/o)*(s-o/2<0?-1:1),m=Math.max(e,Math.floor(r-s*f/o+u)),c=Math.min(a,Math.floor(r+(o-s)*f/o+u));t(n,r,m,c,h)}var p=n[r],d=e,x=a;for(i(n,e,r),h(n[a],p)>0&&i(n,e,a);d0;)x--}0===h(n[e],p)?i(n,e,x):i(n,++x,a),x<=r&&(e=x+1),r<=x&&(a=x-1)}}(t,r,e||0,a||t.length-1,h||n)}function i(t,i,n){var r=t[i];t[i]=t[n],t[n]=r}function n(t,i){return ti?1:0}var r=function(t){void 0===t&&(t=9),this._maxEntries=Math.max(4,t),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()};function e(t,i,n){if(!n)return i.indexOf(t);for(var r=0;r=t.minX&&i.maxY>=t.minY}function p(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function d(i,n,r,e,a){for(var h=[n,r];h.length;)if(!((r=h.pop())-(n=h.pop())<=e)){var o=n+Math.ceil((r-n)/e/2)*e;t(i,o,n,r,a),h.push(n,o,o,r)}}return r.prototype.all=function(){return this._all(this.data,[])},r.prototype.search=function(t){var i=this.data,n=[];if(!c(t,i))return n;for(var r=this.toBBox,e=[];i;){for(var a=0;a=0&&e[i].children.length>this._maxEntries;)this._split(e,i),i--;this._adjustParentBBoxes(r,e,i)},r.prototype._split=function(t,i){var n=t[i],r=n.children.length,e=this._minEntries;this._chooseSplitAxis(n,e,r);var h=this._chooseSplitIndex(n,e,r),o=p(n.children.splice(h,n.children.length-h));o.height=n.height,o.leaf=n.leaf,a(n,this.toBBox),a(o,this.toBBox),i?t[i-1].children.push(o):this._splitRoot(n,o)},r.prototype._splitRoot=function(t,i){this.data=p([t,i]),this.data.height=t.height+1,this.data.leaf=!1,a(this.data,this.toBBox)},r.prototype._chooseSplitIndex=function(t,i,n){for(var r,e,a,o,s,l,u,m=1/0,c=1/0,p=i;p<=n-i;p++){var d=h(t,0,p,this.toBBox),x=h(t,p,n,this.toBBox),v=(e=d,a=x,o=void 0,s=void 0,l=void 0,u=void 0,o=Math.max(e.minX,a.minX),s=Math.max(e.minY,a.minY),l=Math.min(e.maxX,a.maxX),u=Math.min(e.maxY,a.maxY),Math.max(0,l-o)*Math.max(0,u-s)),M=f(d)+f(x);v=i;c--){var p=t.children[c];o(s,t.leaf?e(p):p),l+=u(s)}return l},r.prototype._adjustParentBBoxes=function(t,i,n){for(var r=n;r>=0;r--)o(i[r],t)},r.prototype._condense=function(t){for(var i=t.length-1,n=void 0;i>=0;i--)0===t[i].children.length?i>0?(n=t[i-1].children).splice(n.indexOf(t[i]),1):this.clear():a(t[i],this.toBBox)},r});\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","/**\n * @module ol/events/Event\n */\n/**\n * @classdesc\n * Stripped down implementation of the W3C DOM Level 2 Event interface.\n * See https://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-interface.\n *\n * This implementation only provides `type` and `target` properties, and\n * `stopPropagation` and `preventDefault` methods. It is meant as base class\n * for higher level events defined in the library, and works with\n * {@link module:ol/events/Target~Target}.\n */\nvar BaseEvent = /** @class */ (function () {\n /**\n * @param {string} type Type.\n */\n function BaseEvent(type) {\n /**\n * @type {boolean}\n */\n this.propagationStopped;\n /**\n * @type {boolean}\n */\n this.defaultPrevented;\n /**\n * The event type.\n * @type {string}\n * @api\n */\n this.type = type;\n /**\n * The event target.\n * @type {Object}\n * @api\n */\n this.target = null;\n }\n /**\n * Prevent default. This means that no emulated `click`, `singleclick` or `doubleclick` events\n * will be fired.\n * @api\n */\n BaseEvent.prototype.preventDefault = function () {\n this.defaultPrevented = true;\n };\n /**\n * Stop event propagation.\n * @api\n */\n BaseEvent.prototype.stopPropagation = function () {\n this.propagationStopped = true;\n };\n return BaseEvent;\n}());\n/**\n * @param {Event|import(\"./Event.js\").default} evt Event\n */\nexport function stopPropagation(evt) {\n evt.stopPropagation();\n}\n/**\n * @param {Event|import(\"./Event.js\").default} evt Event\n */\nexport function preventDefault(evt) {\n evt.preventDefault();\n}\nexport default BaseEvent;\n//# sourceMappingURL=Event.js.map","/**\n * @module ol/ObjectEventType\n */\n/**\n * @enum {string}\n */\nexport default {\n /**\n * Triggered when a property is changed.\n * @event module:ol/Object.ObjectEvent#propertychange\n * @api\n */\n PROPERTYCHANGE: 'propertychange',\n};\n/**\n * @typedef {'propertychange'} Types\n */\n//# sourceMappingURL=ObjectEventType.js.map","/**\n * @module ol/Disposable\n */\n/**\n * @classdesc\n * Objects that need to clean up after themselves.\n */\nvar Disposable = /** @class */ (function () {\n function Disposable() {\n /**\n * The object has already been disposed.\n * @type {boolean}\n * @protected\n */\n this.disposed = false;\n }\n /**\n * Clean up.\n */\n Disposable.prototype.dispose = function () {\n if (!this.disposed) {\n this.disposed = true;\n this.disposeInternal();\n }\n };\n /**\n * Extension point for disposable objects.\n * @protected\n */\n Disposable.prototype.disposeInternal = function () { };\n return Disposable;\n}());\nexport default Disposable;\n//# sourceMappingURL=Disposable.js.map","/**\n * @module ol/array\n */\n/**\n * Performs a binary search on the provided sorted list and returns the index of the item if found. If it can't be found it'll return -1.\n * https://github.com/darkskyapp/binary-search\n *\n * @param {Array<*>} haystack Items to search through.\n * @param {*} needle The item to look for.\n * @param {Function} [opt_comparator] Comparator function.\n * @return {number} The index of the item if found, -1 if not.\n */\nexport function binarySearch(haystack, needle, opt_comparator) {\n var mid, cmp;\n var comparator = opt_comparator || numberSafeCompareFunction;\n var low = 0;\n var high = haystack.length;\n var found = false;\n while (low < high) {\n /* Note that \"(low + high) >>> 1\" may overflow, and results in a typecast\n * to double (which gives the wrong results). */\n mid = low + ((high - low) >> 1);\n cmp = +comparator(haystack[mid], needle);\n if (cmp < 0.0) {\n /* Too low. */\n low = mid + 1;\n }\n else {\n /* Key found or too high */\n high = mid;\n found = !cmp;\n }\n }\n /* Key not found. */\n return found ? low : ~low;\n}\n/**\n * Compare function for array sort that is safe for numbers.\n * @param {*} a The first object to be compared.\n * @param {*} b The second object to be compared.\n * @return {number} A negative number, zero, or a positive number as the first\n * argument is less than, equal to, or greater than the second.\n */\nexport function numberSafeCompareFunction(a, b) {\n return a > b ? 1 : a < b ? -1 : 0;\n}\n/**\n * Whether the array contains the given object.\n * @param {Array<*>} arr The array to test for the presence of the element.\n * @param {*} obj The object for which to test.\n * @return {boolean} The object is in the array.\n */\nexport function includes(arr, obj) {\n return arr.indexOf(obj) >= 0;\n}\n/**\n * {@link module:ol/tilegrid/TileGrid~TileGrid#getZForResolution} can use a function\n * of this type to determine which nearest resolution to use.\n *\n * This function takes a `{number}` representing a value between two array entries,\n * a `{number}` representing the value of the nearest higher entry and\n * a `{number}` representing the value of the nearest lower entry\n * as arguments and returns a `{number}`. If a negative number or zero is returned\n * the lower value will be used, if a positive number is returned the higher value\n * will be used.\n * @typedef {function(number, number, number): number} NearestDirectionFunction\n * @api\n */\n/**\n * @param {Array} arr Array in descending order.\n * @param {number} target Target.\n * @param {number|NearestDirectionFunction} direction\n * 0 means return the nearest,\n * > 0 means return the largest nearest,\n * < 0 means return the smallest nearest.\n * @return {number} Index.\n */\nexport function linearFindNearest(arr, target, direction) {\n var n = arr.length;\n if (arr[0] <= target) {\n return 0;\n }\n else if (target <= arr[n - 1]) {\n return n - 1;\n }\n else {\n var i = void 0;\n if (direction > 0) {\n for (i = 1; i < n; ++i) {\n if (arr[i] < target) {\n return i - 1;\n }\n }\n }\n else if (direction < 0) {\n for (i = 1; i < n; ++i) {\n if (arr[i] <= target) {\n return i;\n }\n }\n }\n else {\n for (i = 1; i < n; ++i) {\n if (arr[i] == target) {\n return i;\n }\n else if (arr[i] < target) {\n if (typeof direction === 'function') {\n if (direction(target, arr[i - 1], arr[i]) > 0) {\n return i - 1;\n }\n else {\n return i;\n }\n }\n else if (arr[i - 1] - target < target - arr[i]) {\n return i - 1;\n }\n else {\n return i;\n }\n }\n }\n }\n return n - 1;\n }\n}\n/**\n * @param {Array<*>} arr Array.\n * @param {number} begin Begin index.\n * @param {number} end End index.\n */\nexport function reverseSubArray(arr, begin, end) {\n while (begin < end) {\n var tmp = arr[begin];\n arr[begin] = arr[end];\n arr[end] = tmp;\n ++begin;\n --end;\n }\n}\n/**\n * @param {Array} arr The array to modify.\n * @param {!Array|VALUE} data The elements or arrays of elements to add to arr.\n * @template VALUE\n */\nexport function extend(arr, data) {\n var extension = Array.isArray(data) ? data : [data];\n var length = extension.length;\n for (var i = 0; i < length; i++) {\n arr[arr.length] = extension[i];\n }\n}\n/**\n * @param {Array} arr The array to modify.\n * @param {VALUE} obj The element to remove.\n * @template VALUE\n * @return {boolean} If the element was removed.\n */\nexport function remove(arr, obj) {\n var i = arr.indexOf(obj);\n var found = i > -1;\n if (found) {\n arr.splice(i, 1);\n }\n return found;\n}\n/**\n * @param {Array} arr The array to search in.\n * @param {function(VALUE, number, ?) : boolean} func The function to compare.\n * @template VALUE\n * @return {VALUE|null} The element found or null.\n */\nexport function find(arr, func) {\n var length = arr.length >>> 0;\n var value;\n for (var i = 0; i < length; i++) {\n value = arr[i];\n if (func(value, i, arr)) {\n return value;\n }\n }\n return null;\n}\n/**\n * @param {Array|Uint8ClampedArray} arr1 The first array to compare.\n * @param {Array|Uint8ClampedArray} arr2 The second array to compare.\n * @return {boolean} Whether the two arrays are equal.\n */\nexport function equals(arr1, arr2) {\n var len1 = arr1.length;\n if (len1 !== arr2.length) {\n return false;\n }\n for (var i = 0; i < len1; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n return true;\n}\n/**\n * Sort the passed array such that the relative order of equal elements is preserved.\n * See https://en.wikipedia.org/wiki/Sorting_algorithm#Stability for details.\n * @param {Array<*>} arr The array to sort (modifies original).\n * @param {!function(*, *): number} compareFnc Comparison function.\n * @api\n */\nexport function stableSort(arr, compareFnc) {\n var length = arr.length;\n var tmp = Array(arr.length);\n var i;\n for (i = 0; i < length; i++) {\n tmp[i] = { index: i, value: arr[i] };\n }\n tmp.sort(function (a, b) {\n return compareFnc(a.value, b.value) || a.index - b.index;\n });\n for (i = 0; i < arr.length; i++) {\n arr[i] = tmp[i].value;\n }\n}\n/**\n * @param {Array<*>} arr The array to search in.\n * @param {Function} func Comparison function.\n * @return {number} Return index.\n */\nexport function findIndex(arr, func) {\n var index;\n var found = !arr.every(function (el, idx) {\n index = idx;\n return !func(el, idx, arr);\n });\n return found ? index : -1;\n}\n/**\n * @param {Array<*>} arr The array to test.\n * @param {Function} [opt_func] Comparison function.\n * @param {boolean} [opt_strict] Strictly sorted (default false).\n * @return {boolean} Return index.\n */\nexport function isSorted(arr, opt_func, opt_strict) {\n var compare = opt_func || numberSafeCompareFunction;\n return arr.every(function (currentVal, index) {\n if (index === 0) {\n return true;\n }\n var res = compare(arr[index - 1], currentVal);\n return !(res > 0 || (opt_strict && res === 0));\n });\n}\n//# sourceMappingURL=array.js.map","/**\n * @module ol/functions\n */\nimport { equals as arrayEquals } from './array.js';\n/**\n * Always returns true.\n * @return {boolean} true.\n */\nexport function TRUE() {\n return true;\n}\n/**\n * Always returns false.\n * @return {boolean} false.\n */\nexport function FALSE() {\n return false;\n}\n/**\n * A reusable function, used e.g. as a default for callbacks.\n *\n * @return {void} Nothing.\n */\nexport function VOID() { }\n/**\n * Wrap a function in another function that remembers the last return. If the\n * returned function is called twice in a row with the same arguments and the same\n * this object, it will return the value from the first call in the second call.\n *\n * @param {function(...any): ReturnType} fn The function to memoize.\n * @return {function(...any): ReturnType} The memoized function.\n * @template ReturnType\n */\nexport function memoizeOne(fn) {\n var called = false;\n /** @type {ReturnType} */\n var lastResult;\n /** @type {Array} */\n var lastArgs;\n var lastThis;\n return function () {\n var nextArgs = Array.prototype.slice.call(arguments);\n if (!called || this !== lastThis || !arrayEquals(nextArgs, lastArgs)) {\n called = true;\n lastThis = this;\n lastArgs = nextArgs;\n lastResult = fn.apply(this, arguments);\n }\n return lastResult;\n };\n}\n//# sourceMappingURL=functions.js.map","/**\n * @module ol/obj\n */\n/**\n * Polyfill for Object.assign(). Assigns enumerable and own properties from\n * one or more source objects to a target object.\n * See https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign.\n *\n * @param {!Object} target The target object.\n * @param {...Object} var_sources The source object(s).\n * @return {!Object} The modified target object.\n */\nexport var assign = typeof Object.assign === 'function'\n ? Object.assign\n : function (target, var_sources) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n var output = Object(target);\n for (var i = 1, ii = arguments.length; i < ii; ++i) {\n var source = arguments[i];\n if (source !== undefined && source !== null) {\n for (var key in source) {\n if (source.hasOwnProperty(key)) {\n output[key] = source[key];\n }\n }\n }\n }\n return output;\n };\n/**\n * Removes all properties from an object.\n * @param {Object} object The object to clear.\n */\nexport function clear(object) {\n for (var property in object) {\n delete object[property];\n }\n}\n/**\n * Polyfill for Object.values(). Get an array of property values from an object.\n * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/values\n *\n * @param {!Object} object The object from which to get the values.\n * @return {!Array} The property values.\n * @template K,V\n */\nexport var getValues = typeof Object.values === 'function'\n ? Object.values\n : function (object) {\n var values = [];\n for (var property in object) {\n values.push(object[property]);\n }\n return values;\n };\n/**\n * Determine if an object has any properties.\n * @param {Object} object The object to check.\n * @return {boolean} The object is empty.\n */\nexport function isEmpty(object) {\n var property;\n for (property in object) {\n return false;\n }\n return !property;\n}\n//# sourceMappingURL=obj.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/events/Target\n */\nimport Disposable from '../Disposable.js';\nimport Event from './Event.js';\nimport { VOID } from '../functions.js';\nimport { clear } from '../obj.js';\n/**\n * @typedef {EventTarget|Target} EventTargetLike\n */\n/**\n * @classdesc\n * A simplified implementation of the W3C DOM Level 2 EventTarget interface.\n * See https://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113/events.html#Events-EventTarget.\n *\n * There are two important simplifications compared to the specification:\n *\n * 1. The handling of `useCapture` in `addEventListener` and\n * `removeEventListener`. There is no real capture model.\n * 2. The handling of `stopPropagation` and `preventDefault` on `dispatchEvent`.\n * There is no event target hierarchy. When a listener calls\n * `stopPropagation` or `preventDefault` on an event object, it means that no\n * more listeners after this one will be called. Same as when the listener\n * returns false.\n */\nvar Target = /** @class */ (function (_super) {\n __extends(Target, _super);\n /**\n * @param {*} [opt_target] Default event target for dispatched events.\n */\n function Target(opt_target) {\n var _this = _super.call(this) || this;\n /**\n * @private\n * @type {*}\n */\n _this.eventTarget_ = opt_target;\n /**\n * @private\n * @type {Object}\n */\n _this.pendingRemovals_ = null;\n /**\n * @private\n * @type {Object}\n */\n _this.dispatching_ = null;\n /**\n * @private\n * @type {Object>}\n */\n _this.listeners_ = null;\n return _this;\n }\n /**\n * @param {string} type Type.\n * @param {import(\"../events.js\").Listener} listener Listener.\n */\n Target.prototype.addEventListener = function (type, listener) {\n if (!type || !listener) {\n return;\n }\n var listeners = this.listeners_ || (this.listeners_ = {});\n var listenersForType = listeners[type] || (listeners[type] = []);\n if (listenersForType.indexOf(listener) === -1) {\n listenersForType.push(listener);\n }\n };\n /**\n * Dispatches an event and calls all listeners listening for events\n * of this type. The event parameter can either be a string or an\n * Object with a `type` property.\n *\n * @param {import(\"./Event.js\").default|string} event Event object.\n * @return {boolean|undefined} `false` if anyone called preventDefault on the\n * event object or if any of the listeners returned false.\n * @api\n */\n Target.prototype.dispatchEvent = function (event) {\n /** @type {import(\"./Event.js\").default|Event} */\n var evt = typeof event === 'string' ? new Event(event) : event;\n var type = evt.type;\n if (!evt.target) {\n evt.target = this.eventTarget_ || this;\n }\n var listeners = this.listeners_ && this.listeners_[type];\n var propagate;\n if (listeners) {\n var dispatching = this.dispatching_ || (this.dispatching_ = {});\n var pendingRemovals = this.pendingRemovals_ || (this.pendingRemovals_ = {});\n if (!(type in dispatching)) {\n dispatching[type] = 0;\n pendingRemovals[type] = 0;\n }\n ++dispatching[type];\n for (var i = 0, ii = listeners.length; i < ii; ++i) {\n if ('handleEvent' in listeners[i]) {\n propagate = /** @type {import(\"../events.js\").ListenerObject} */ (listeners[i]).handleEvent(evt);\n }\n else {\n propagate = /** @type {import(\"../events.js\").ListenerFunction} */ (listeners[i]).call(this, evt);\n }\n if (propagate === false || evt.propagationStopped) {\n propagate = false;\n break;\n }\n }\n --dispatching[type];\n if (dispatching[type] === 0) {\n var pr = pendingRemovals[type];\n delete pendingRemovals[type];\n while (pr--) {\n this.removeEventListener(type, VOID);\n }\n delete dispatching[type];\n }\n return propagate;\n }\n };\n /**\n * Clean up.\n */\n Target.prototype.disposeInternal = function () {\n this.listeners_ && clear(this.listeners_);\n };\n /**\n * Get the listeners for a specified event type. Listeners are returned in the\n * order that they will be called in.\n *\n * @param {string} type Type.\n * @return {Array|undefined} Listeners.\n */\n Target.prototype.getListeners = function (type) {\n return (this.listeners_ && this.listeners_[type]) || undefined;\n };\n /**\n * @param {string} [opt_type] Type. If not provided,\n * `true` will be returned if this event target has any listeners.\n * @return {boolean} Has listeners.\n */\n Target.prototype.hasListener = function (opt_type) {\n if (!this.listeners_) {\n return false;\n }\n return opt_type\n ? opt_type in this.listeners_\n : Object.keys(this.listeners_).length > 0;\n };\n /**\n * @param {string} type Type.\n * @param {import(\"../events.js\").Listener} listener Listener.\n */\n Target.prototype.removeEventListener = function (type, listener) {\n var listeners = this.listeners_ && this.listeners_[type];\n if (listeners) {\n var index = listeners.indexOf(listener);\n if (index !== -1) {\n if (this.pendingRemovals_ && type in this.pendingRemovals_) {\n // make listener a no-op, and remove later in #dispatchEvent()\n listeners[index] = VOID;\n ++this.pendingRemovals_[type];\n }\n else {\n listeners.splice(index, 1);\n if (listeners.length === 0) {\n delete this.listeners_[type];\n }\n }\n }\n }\n };\n return Target;\n}(Disposable));\nexport default Target;\n//# sourceMappingURL=Target.js.map","/**\n * @module ol/events/EventType\n */\n/**\n * @enum {string}\n * @const\n */\nexport default {\n /**\n * Generic change event. Triggered when the revision counter is increased.\n * @event module:ol/events/Event~BaseEvent#change\n * @api\n */\n CHANGE: 'change',\n /**\n * Generic error event. Triggered when an error occurs.\n * @event module:ol/events/Event~BaseEvent#error\n * @api\n */\n ERROR: 'error',\n BLUR: 'blur',\n CLEAR: 'clear',\n CONTEXTMENU: 'contextmenu',\n CLICK: 'click',\n DBLCLICK: 'dblclick',\n DRAGENTER: 'dragenter',\n DRAGOVER: 'dragover',\n DROP: 'drop',\n FOCUS: 'focus',\n KEYDOWN: 'keydown',\n KEYPRESS: 'keypress',\n LOAD: 'load',\n RESIZE: 'resize',\n TOUCHMOVE: 'touchmove',\n WHEEL: 'wheel',\n};\n//# sourceMappingURL=EventType.js.map","/**\n * @module ol/events\n */\nimport { clear } from './obj.js';\n/**\n * Key to use with {@link module:ol/Observable~Observable#unByKey}.\n * @typedef {Object} EventsKey\n * @property {ListenerFunction} listener Listener.\n * @property {import(\"./events/Target.js\").EventTargetLike} target Target.\n * @property {string} type Type.\n * @api\n */\n/**\n * Listener function. This function is called with an event object as argument.\n * When the function returns `false`, event propagation will stop.\n *\n * @typedef {function((Event|import(\"./events/Event.js\").default)): (void|boolean)} ListenerFunction\n * @api\n */\n/**\n * @typedef {Object} ListenerObject\n * @property {ListenerFunction} handleEvent HandleEvent listener function.\n */\n/**\n * @typedef {ListenerFunction|ListenerObject} Listener\n */\n/**\n * Registers an event listener on an event target. Inspired by\n * https://google.github.io/closure-library/api/source/closure/goog/events/events.js.src.html\n *\n * This function efficiently binds a `listener` to a `this` object, and returns\n * a key for use with {@link module:ol/events.unlistenByKey}.\n *\n * @param {import(\"./events/Target.js\").EventTargetLike} target Event target.\n * @param {string} type Event type.\n * @param {ListenerFunction} listener Listener.\n * @param {Object} [opt_this] Object referenced by the `this` keyword in the\n * listener. Default is the `target`.\n * @param {boolean} [opt_once] If true, add the listener as one-off listener.\n * @return {EventsKey} Unique key for the listener.\n */\nexport function listen(target, type, listener, opt_this, opt_once) {\n if (opt_this && opt_this !== target) {\n listener = listener.bind(opt_this);\n }\n if (opt_once) {\n var originalListener_1 = listener;\n listener = function () {\n target.removeEventListener(type, listener);\n originalListener_1.apply(this, arguments);\n };\n }\n var eventsKey = {\n target: target,\n type: type,\n listener: listener,\n };\n target.addEventListener(type, listener);\n return eventsKey;\n}\n/**\n * Registers a one-off event listener on an event target. Inspired by\n * https://google.github.io/closure-library/api/source/closure/goog/events/events.js.src.html\n *\n * This function efficiently binds a `listener` as self-unregistering listener\n * to a `this` object, and returns a key for use with\n * {@link module:ol/events.unlistenByKey} in case the listener needs to be\n * unregistered before it is called.\n *\n * When {@link module:ol/events.listen} is called with the same arguments after this\n * function, the self-unregistering listener will be turned into a permanent\n * listener.\n *\n * @param {import(\"./events/Target.js\").EventTargetLike} target Event target.\n * @param {string} type Event type.\n * @param {ListenerFunction} listener Listener.\n * @param {Object} [opt_this] Object referenced by the `this` keyword in the\n * listener. Default is the `target`.\n * @return {EventsKey} Key for unlistenByKey.\n */\nexport function listenOnce(target, type, listener, opt_this) {\n return listen(target, type, listener, opt_this, true);\n}\n/**\n * Unregisters event listeners on an event target. Inspired by\n * https://google.github.io/closure-library/api/source/closure/goog/events/events.js.src.html\n *\n * The argument passed to this function is the key returned from\n * {@link module:ol/events.listen} or {@link module:ol/events.listenOnce}.\n *\n * @param {EventsKey} key The key.\n */\nexport function unlistenByKey(key) {\n if (key && key.target) {\n key.target.removeEventListener(key.type, key.listener);\n clear(key);\n }\n}\n//# sourceMappingURL=events.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/Observable\n */\nimport EventTarget from './events/Target.js';\nimport EventType from './events/EventType.js';\nimport { listen, listenOnce, unlistenByKey } from './events.js';\n/***\n * @template {string} Type\n * @template {Event|import(\"./events/Event.js\").default} EventClass\n * @template Return\n * @typedef {(type: Type, listener: (event: EventClass) => ?) => Return} OnSignature\n */\n/***\n * @template {string} Type\n * @template Return\n * @typedef {(type: Type[], listener: (event: Event|import(\"./events/Event\").default) => ?) => Return extends void ? void : Return[]} CombinedOnSignature\n */\n/**\n * @typedef {'change'|'error'} EventTypes\n */\n/***\n * @template Return\n * @typedef {OnSignature & CombinedOnSignature} ObservableOnSignature\n */\n/**\n * @classdesc\n * Abstract base class; normally only used for creating subclasses and not\n * instantiated in apps.\n * An event target providing convenient methods for listener registration\n * and unregistration. A generic `change` event is always available through\n * {@link module:ol/Observable~Observable#changed}.\n *\n * @fires import(\"./events/Event.js\").default\n * @api\n */\nvar Observable = /** @class */ (function (_super) {\n __extends(Observable, _super);\n function Observable() {\n var _this = _super.call(this) || this;\n _this.on =\n /** @type {ObservableOnSignature} */ (_this.onInternal);\n _this.once =\n /** @type {ObservableOnSignature} */ (_this.onceInternal);\n _this.un = /** @type {ObservableOnSignature} */ (_this.unInternal);\n /**\n * @private\n * @type {number}\n */\n _this.revision_ = 0;\n return _this;\n }\n /**\n * Increases the revision counter and dispatches a 'change' event.\n * @api\n */\n Observable.prototype.changed = function () {\n ++this.revision_;\n this.dispatchEvent(EventType.CHANGE);\n };\n /**\n * Get the version number for this object. Each time the object is modified,\n * its version number will be incremented.\n * @return {number} Revision.\n * @api\n */\n Observable.prototype.getRevision = function () {\n return this.revision_;\n };\n /**\n * @param {string|Array} type Type.\n * @param {function((Event|import(\"./events/Event\").default)): ?} listener Listener.\n * @return {import(\"./events.js\").EventsKey|Array} Event key.\n * @protected\n */\n Observable.prototype.onInternal = function (type, listener) {\n if (Array.isArray(type)) {\n var len = type.length;\n var keys = new Array(len);\n for (var i = 0; i < len; ++i) {\n keys[i] = listen(this, type[i], listener);\n }\n return keys;\n }\n else {\n return listen(this, /** @type {string} */ (type), listener);\n }\n };\n /**\n * @param {string|Array} type Type.\n * @param {function((Event|import(\"./events/Event\").default)): ?} listener Listener.\n * @return {import(\"./events.js\").EventsKey|Array} Event key.\n * @protected\n */\n Observable.prototype.onceInternal = function (type, listener) {\n var key;\n if (Array.isArray(type)) {\n var len = type.length;\n key = new Array(len);\n for (var i = 0; i < len; ++i) {\n key[i] = listenOnce(this, type[i], listener);\n }\n }\n else {\n key = listenOnce(this, /** @type {string} */ (type), listener);\n }\n /** @type {Object} */ (listener).ol_key = key;\n return key;\n };\n /**\n * Unlisten for a certain type of event.\n * @param {string|Array} type Type.\n * @param {function((Event|import(\"./events/Event\").default)): ?} listener Listener.\n * @protected\n */\n Observable.prototype.unInternal = function (type, listener) {\n var key = /** @type {Object} */ (listener).ol_key;\n if (key) {\n unByKey(key);\n }\n else if (Array.isArray(type)) {\n for (var i = 0, ii = type.length; i < ii; ++i) {\n this.removeEventListener(type[i], listener);\n }\n }\n else {\n this.removeEventListener(type, listener);\n }\n };\n return Observable;\n}(EventTarget));\n/**\n * Listen for a certain type of event.\n * @function\n * @param {string|Array} type The event type or array of event types.\n * @param {function((Event|import(\"./events/Event\").default)): ?} listener The listener function.\n * @return {import(\"./events.js\").EventsKey|Array} Unique key for the listener. If\n * called with an array of event types as the first argument, the return\n * will be an array of keys.\n * @api\n */\nObservable.prototype.on;\n/**\n * Listen once for a certain type of event.\n * @function\n * @param {string|Array} type The event type or array of event types.\n * @param {function((Event|import(\"./events/Event\").default)): ?} listener The listener function.\n * @return {import(\"./events.js\").EventsKey|Array} Unique key for the listener. If\n * called with an array of event types as the first argument, the return\n * will be an array of keys.\n * @api\n */\nObservable.prototype.once;\n/**\n * Unlisten for a certain type of event.\n * @function\n * @param {string|Array} type The event type or array of event types.\n * @param {function((Event|import(\"./events/Event\").default)): ?} listener The listener function.\n * @api\n */\nObservable.prototype.un;\n/**\n * Removes an event listener using the key returned by `on()` or `once()`.\n * @param {import(\"./events.js\").EventsKey|Array} key The key returned by `on()`\n * or `once()` (or an array of keys).\n * @api\n */\nexport function unByKey(key) {\n if (Array.isArray(key)) {\n for (var i = 0, ii = key.length; i < ii; ++i) {\n unlistenByKey(key[i]);\n }\n }\n else {\n unlistenByKey(/** @type {import(\"./events.js\").EventsKey} */ (key));\n }\n}\nexport default Observable;\n//# sourceMappingURL=Observable.js.map","/**\n * @module ol/util\n */\n/**\n * @return {?} Any return.\n */\nexport function abstract() {\n return /** @type {?} */ ((function () {\n throw new Error('Unimplemented abstract method.');\n })());\n}\n/**\n * Counter for getUid.\n * @type {number}\n * @private\n */\nvar uidCounter_ = 0;\n/**\n * Gets a unique ID for an object. This mutates the object so that further calls\n * with the same object as a parameter returns the same value. Unique IDs are generated\n * as a strictly increasing sequence. Adapted from goog.getUid.\n *\n * @param {Object} obj The object to get the unique ID for.\n * @return {string} The unique ID for the object.\n * @api\n */\nexport function getUid(obj) {\n return obj.ol_uid || (obj.ol_uid = String(++uidCounter_));\n}\n/**\n * OpenLayers version.\n * @type {string}\n */\nexport var VERSION = '6.9.0';\n//# sourceMappingURL=util.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/Object\n */\nimport Event from './events/Event.js';\nimport ObjectEventType from './ObjectEventType.js';\nimport Observable from './Observable.js';\nimport { assign, isEmpty } from './obj.js';\nimport { getUid } from './util.js';\n/**\n * @classdesc\n * Events emitted by {@link module:ol/Object~BaseObject} instances are instances of this type.\n */\nvar ObjectEvent = /** @class */ (function (_super) {\n __extends(ObjectEvent, _super);\n /**\n * @param {string} type The event type.\n * @param {string} key The property name.\n * @param {*} oldValue The old value for `key`.\n */\n function ObjectEvent(type, key, oldValue) {\n var _this = _super.call(this, type) || this;\n /**\n * The name of the property whose value is changing.\n * @type {string}\n * @api\n */\n _this.key = key;\n /**\n * The old value. To get the new value use `e.target.get(e.key)` where\n * `e` is the event object.\n * @type {*}\n * @api\n */\n _this.oldValue = oldValue;\n return _this;\n }\n return ObjectEvent;\n}(Event));\nexport { ObjectEvent };\n/***\n * @template Return\n * @typedef {import(\"./Observable\").OnSignature &\n * import(\"./Observable\").OnSignature &\n * import(\"./Observable\").CombinedOnSignature} ObjectOnSignature\n */\n/**\n * @classdesc\n * Abstract base class; normally only used for creating subclasses and not\n * instantiated in apps.\n * Most non-trivial classes inherit from this.\n *\n * This extends {@link module:ol/Observable} with observable\n * properties, where each property is observable as well as the object as a\n * whole.\n *\n * Classes that inherit from this have pre-defined properties, to which you can\n * add your owns. The pre-defined properties are listed in this documentation as\n * 'Observable Properties', and have their own accessors; for example,\n * {@link module:ol/Map~Map} has a `target` property, accessed with\n * `getTarget()` and changed with `setTarget()`. Not all properties are however\n * settable. There are also general-purpose accessors `get()` and `set()`. For\n * example, `get('target')` is equivalent to `getTarget()`.\n *\n * The `set` accessors trigger a change event, and you can monitor this by\n * registering a listener. For example, {@link module:ol/View~View} has a\n * `center` property, so `view.on('change:center', function(evt) {...});` would\n * call the function whenever the value of the center property changes. Within\n * the function, `evt.target` would be the view, so `evt.target.getCenter()`\n * would return the new center.\n *\n * You can add your own observable properties with\n * `object.set('prop', 'value')`, and retrieve that with `object.get('prop')`.\n * You can listen for changes on that property value with\n * `object.on('change:prop', listener)`. You can get a list of all\n * properties with {@link module:ol/Object~BaseObject#getProperties}.\n *\n * Note that the observable properties are separate from standard JS properties.\n * You can, for example, give your map object a title with\n * `map.title='New title'` and with `map.set('title', 'Another title')`. The\n * first will be a `hasOwnProperty`; the second will appear in\n * `getProperties()`. Only the second is observable.\n *\n * Properties can be deleted by using the unset method. E.g.\n * object.unset('foo').\n *\n * @fires ObjectEvent\n * @api\n */\nvar BaseObject = /** @class */ (function (_super) {\n __extends(BaseObject, _super);\n /**\n * @param {Object} [opt_values] An object with key-value pairs.\n */\n function BaseObject(opt_values) {\n var _this = _super.call(this) || this;\n /***\n * @type {ObjectOnSignature}\n */\n _this.on;\n /***\n * @type {ObjectOnSignature}\n */\n _this.once;\n /***\n * @type {ObjectOnSignature}\n */\n _this.un;\n // Call {@link module:ol/util.getUid} to ensure that the order of objects' ids is\n // the same as the order in which they were created. This also helps to\n // ensure that object properties are always added in the same order, which\n // helps many JavaScript engines generate faster code.\n getUid(_this);\n /**\n * @private\n * @type {Object}\n */\n _this.values_ = null;\n if (opt_values !== undefined) {\n _this.setProperties(opt_values);\n }\n return _this;\n }\n /**\n * Gets a value.\n * @param {string} key Key name.\n * @return {*} Value.\n * @api\n */\n BaseObject.prototype.get = function (key) {\n var value;\n if (this.values_ && this.values_.hasOwnProperty(key)) {\n value = this.values_[key];\n }\n return value;\n };\n /**\n * Get a list of object property names.\n * @return {Array} List of property names.\n * @api\n */\n BaseObject.prototype.getKeys = function () {\n return (this.values_ && Object.keys(this.values_)) || [];\n };\n /**\n * Get an object of all property names and values.\n * @return {Object} Object.\n * @api\n */\n BaseObject.prototype.getProperties = function () {\n return (this.values_ && assign({}, this.values_)) || {};\n };\n /**\n * @return {boolean} The object has properties.\n */\n BaseObject.prototype.hasProperties = function () {\n return !!this.values_;\n };\n /**\n * @param {string} key Key name.\n * @param {*} oldValue Old value.\n */\n BaseObject.prototype.notify = function (key, oldValue) {\n var eventType;\n eventType = \"change:\" + key;\n this.dispatchEvent(new ObjectEvent(eventType, key, oldValue));\n eventType = ObjectEventType.PROPERTYCHANGE;\n this.dispatchEvent(new ObjectEvent(eventType, key, oldValue));\n };\n /**\n * @param {string} key Key name.\n * @param {import(\"./events.js\").Listener} listener Listener.\n */\n BaseObject.prototype.addChangeListener = function (key, listener) {\n this.addEventListener(\"change:\" + key, listener);\n };\n /**\n * @param {string} key Key name.\n * @param {import(\"./events.js\").Listener} listener Listener.\n */\n BaseObject.prototype.removeChangeListener = function (key, listener) {\n this.removeEventListener(\"change:\" + key, listener);\n };\n /**\n * Sets a value.\n * @param {string} key Key name.\n * @param {*} value Value.\n * @param {boolean} [opt_silent] Update without triggering an event.\n * @api\n */\n BaseObject.prototype.set = function (key, value, opt_silent) {\n var values = this.values_ || (this.values_ = {});\n if (opt_silent) {\n values[key] = value;\n }\n else {\n var oldValue = values[key];\n values[key] = value;\n if (oldValue !== value) {\n this.notify(key, oldValue);\n }\n }\n };\n /**\n * Sets a collection of key-value pairs. Note that this changes any existing\n * properties and adds new ones (it does not remove any existing properties).\n * @param {Object} values Values.\n * @param {boolean} [opt_silent] Update without triggering an event.\n * @api\n */\n BaseObject.prototype.setProperties = function (values, opt_silent) {\n for (var key in values) {\n this.set(key, values[key], opt_silent);\n }\n };\n /**\n * Apply any properties from another object without triggering events.\n * @param {BaseObject} source The source object.\n * @protected\n */\n BaseObject.prototype.applyProperties = function (source) {\n if (!source.values_) {\n return;\n }\n assign(this.values_ || (this.values_ = {}), source.values_);\n };\n /**\n * Unsets a property.\n * @param {string} key Key name.\n * @param {boolean} [opt_silent] Unset without triggering an event.\n * @api\n */\n BaseObject.prototype.unset = function (key, opt_silent) {\n if (this.values_ && key in this.values_) {\n var oldValue = this.values_[key];\n delete this.values_[key];\n if (isEmpty(this.values_)) {\n this.values_ = null;\n }\n if (!opt_silent) {\n this.notify(key, oldValue);\n }\n }\n };\n return BaseObject;\n}(Observable));\nexport default BaseObject;\n//# sourceMappingURL=Object.js.map","/**\n * @module ol/MapEventType\n */\n/**\n * @enum {string}\n */\nexport default {\n /**\n * Triggered after a map frame is rendered.\n * @event module:ol/MapEvent~MapEvent#postrender\n * @api\n */\n POSTRENDER: 'postrender',\n /**\n * Triggered when the map starts moving.\n * @event module:ol/MapEvent~MapEvent#movestart\n * @api\n */\n MOVESTART: 'movestart',\n /**\n * Triggered after the map is moved.\n * @event module:ol/MapEvent~MapEvent#moveend\n * @api\n */\n MOVEEND: 'moveend',\n};\n/***\n * @typedef {'postrender'|'movestart'|'moveend'} Types\n */\n//# sourceMappingURL=MapEventType.js.map","/**\n * @module ol/has\n */\nvar ua = typeof navigator !== 'undefined' && typeof navigator.userAgent !== 'undefined'\n ? navigator.userAgent.toLowerCase()\n : '';\n/**\n * User agent string says we are dealing with Firefox as browser.\n * @type {boolean}\n */\nexport var FIREFOX = ua.indexOf('firefox') !== -1;\n/**\n * User agent string says we are dealing with Safari as browser.\n * @type {boolean}\n */\nexport var SAFARI = ua.indexOf('safari') !== -1 && ua.indexOf('chrom') == -1;\n/**\n * User agent string says we are dealing with a WebKit engine.\n * @type {boolean}\n */\nexport var WEBKIT = ua.indexOf('webkit') !== -1 && ua.indexOf('edge') == -1;\n/**\n * User agent string says we are dealing with a Mac as platform.\n * @type {boolean}\n */\nexport var MAC = ua.indexOf('macintosh') !== -1;\n/**\n * The ratio between physical pixels and device-independent pixels\n * (dips) on the device (`window.devicePixelRatio`).\n * @const\n * @type {number}\n * @api\n */\nexport var DEVICE_PIXEL_RATIO = typeof devicePixelRatio !== 'undefined' ? devicePixelRatio : 1;\n/**\n * The execution context is a worker with OffscreenCanvas available.\n * @const\n * @type {boolean}\n */\nexport var WORKER_OFFSCREEN_CANVAS = typeof WorkerGlobalScope !== 'undefined' &&\n typeof OffscreenCanvas !== 'undefined' &&\n self instanceof WorkerGlobalScope; //eslint-disable-line\n/**\n * Image.prototype.decode() is supported.\n * @type {boolean}\n */\nexport var IMAGE_DECODE = typeof Image !== 'undefined' && Image.prototype.decode;\n/**\n * @type {boolean}\n */\nexport var PASSIVE_EVENT_LISTENERS = (function () {\n var passive = false;\n try {\n var options = Object.defineProperty({}, 'passive', {\n get: function () {\n passive = true;\n },\n });\n window.addEventListener('_', null, options);\n window.removeEventListener('_', null, options);\n }\n catch (error) {\n // passive not supported\n }\n return passive;\n})();\n//# sourceMappingURL=has.js.map","import { WORKER_OFFSCREEN_CANVAS } from './has.js';\n/**\n * @module ol/dom\n */\n//FIXME Move this function to the canvas module\n/**\n * Create an html canvas element and returns its 2d context.\n * @param {number} [opt_width] Canvas width.\n * @param {number} [opt_height] Canvas height.\n * @param {Array} [opt_canvasPool] Canvas pool to take existing canvas from.\n * @param {CanvasRenderingContext2DSettings} [opt_Context2DSettings] CanvasRenderingContext2DSettings\n * @return {CanvasRenderingContext2D} The context.\n */\nexport function createCanvasContext2D(opt_width, opt_height, opt_canvasPool, opt_Context2DSettings) {\n /** @type {HTMLCanvasElement|OffscreenCanvas} */\n var canvas;\n if (opt_canvasPool && opt_canvasPool.length) {\n canvas = opt_canvasPool.shift();\n }\n else if (WORKER_OFFSCREEN_CANVAS) {\n canvas = new OffscreenCanvas(opt_width || 300, opt_height || 300);\n }\n else {\n canvas = document.createElement('canvas');\n canvas.style.all = 'unset';\n }\n if (opt_width) {\n canvas.width = opt_width;\n }\n if (opt_height) {\n canvas.height = opt_height;\n }\n //FIXME Allow OffscreenCanvasRenderingContext2D as return type\n return /** @type {CanvasRenderingContext2D} */ (canvas.getContext('2d', opt_Context2DSettings));\n}\n/**\n * Get the current computed width for the given element including margin,\n * padding and border.\n * Equivalent to jQuery's `$(el).outerWidth(true)`.\n * @param {!HTMLElement} element Element.\n * @return {number} The width.\n */\nexport function outerWidth(element) {\n var width = element.offsetWidth;\n var style = getComputedStyle(element);\n width += parseInt(style.marginLeft, 10) + parseInt(style.marginRight, 10);\n return width;\n}\n/**\n * Get the current computed height for the given element including margin,\n * padding and border.\n * Equivalent to jQuery's `$(el).outerHeight(true)`.\n * @param {!HTMLElement} element Element.\n * @return {number} The height.\n */\nexport function outerHeight(element) {\n var height = element.offsetHeight;\n var style = getComputedStyle(element);\n height += parseInt(style.marginTop, 10) + parseInt(style.marginBottom, 10);\n return height;\n}\n/**\n * @param {Node} newNode Node to replace old node\n * @param {Node} oldNode The node to be replaced\n */\nexport function replaceNode(newNode, oldNode) {\n var parent = oldNode.parentNode;\n if (parent) {\n parent.replaceChild(newNode, oldNode);\n }\n}\n/**\n * @param {Node} node The node to remove.\n * @return {Node} The node that was removed or null.\n */\nexport function removeNode(node) {\n return node && node.parentNode ? node.parentNode.removeChild(node) : null;\n}\n/**\n * @param {Node} node The node to remove the children from.\n */\nexport function removeChildren(node) {\n while (node.lastChild) {\n node.removeChild(node.lastChild);\n }\n}\n/**\n * Transform the children of a parent node so they match the\n * provided list of children. This function aims to efficiently\n * remove, add, and reorder child nodes while maintaining a simple\n * implementation (it is not guaranteed to minimize DOM operations).\n * @param {Node} node The parent node whose children need reworking.\n * @param {Array} children The desired children.\n */\nexport function replaceChildren(node, children) {\n var oldChildren = node.childNodes;\n for (var i = 0; true; ++i) {\n var oldChild = oldChildren[i];\n var newChild = children[i];\n // check if our work is done\n if (!oldChild && !newChild) {\n break;\n }\n // check if children match\n if (oldChild === newChild) {\n continue;\n }\n // check if a new child needs to be added\n if (!oldChild) {\n node.appendChild(newChild);\n continue;\n }\n // check if an old child needs to be removed\n if (!newChild) {\n node.removeChild(oldChild);\n --i;\n continue;\n }\n // reorder\n node.insertBefore(newChild, oldChild);\n }\n}\n//# sourceMappingURL=dom.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/control/Control\n */\nimport BaseObject from '../Object.js';\nimport MapEventType from '../MapEventType.js';\nimport { VOID } from '../functions.js';\nimport { listen, unlistenByKey } from '../events.js';\nimport { removeNode } from '../dom.js';\n/**\n * @typedef {Object} Options\n * @property {HTMLElement} [element] The element is the control's\n * container element. This only needs to be specified if you're developing\n * a custom control.\n * @property {function(import(\"../MapEvent.js\").default):void} [render] Function called when\n * the control should be re-rendered. This is called in a `requestAnimationFrame`\n * callback.\n * @property {HTMLElement|string} [target] Specify a target if you want\n * the control to be rendered outside of the map's viewport.\n */\n/**\n * @classdesc\n * A control is a visible widget with a DOM element in a fixed position on the\n * screen. They can involve user input (buttons), or be informational only;\n * the position is determined using CSS. By default these are placed in the\n * container with CSS class name `ol-overlaycontainer-stopevent`, but can use\n * any outside DOM element.\n *\n * This is the base class for controls. You can use it for simple custom\n * controls by creating the element with listeners, creating an instance:\n * ```js\n * var myControl = new Control({element: myElement});\n * ```\n * and then adding this to the map.\n *\n * The main advantage of having this as a control rather than a simple separate\n * DOM element is that preventing propagation is handled for you. Controls\n * will also be objects in a {@link module:ol/Collection~Collection}, so you can use their methods.\n *\n * You can also extend this base for your own control class. See\n * examples/custom-controls for an example of how to do this.\n *\n * @api\n */\nvar Control = /** @class */ (function (_super) {\n __extends(Control, _super);\n /**\n * @param {Options} options Control options.\n */\n function Control(options) {\n var _this = _super.call(this) || this;\n var element = options.element;\n if (element && !options.target && !element.style.pointerEvents) {\n element.style.pointerEvents = 'auto';\n }\n /**\n * @protected\n * @type {HTMLElement}\n */\n _this.element = element ? element : null;\n /**\n * @private\n * @type {HTMLElement}\n */\n _this.target_ = null;\n /**\n * @private\n * @type {import(\"../PluggableMap.js\").default}\n */\n _this.map_ = null;\n /**\n * @protected\n * @type {!Array}\n */\n _this.listenerKeys = [];\n if (options.render) {\n _this.render = options.render;\n }\n if (options.target) {\n _this.setTarget(options.target);\n }\n return _this;\n }\n /**\n * Clean up.\n */\n Control.prototype.disposeInternal = function () {\n removeNode(this.element);\n _super.prototype.disposeInternal.call(this);\n };\n /**\n * Get the map associated with this control.\n * @return {import(\"../PluggableMap.js\").default|undefined} Map.\n * @api\n */\n Control.prototype.getMap = function () {\n return this.map_;\n };\n /**\n * Remove the control from its current map and attach it to the new map.\n * Subclasses may set up event handlers to get notified about changes to\n * the map here.\n * @param {import(\"../PluggableMap.js\").default} [map] Map.\n * @api\n */\n Control.prototype.setMap = function (map) {\n if (this.map_) {\n removeNode(this.element);\n }\n for (var i = 0, ii = this.listenerKeys.length; i < ii; ++i) {\n unlistenByKey(this.listenerKeys[i]);\n }\n this.listenerKeys.length = 0;\n this.map_ = map;\n if (this.map_) {\n var target = this.target_\n ? this.target_\n : map.getOverlayContainerStopEvent();\n target.appendChild(this.element);\n if (this.render !== VOID) {\n this.listenerKeys.push(listen(map, MapEventType.POSTRENDER, this.render, this));\n }\n map.render();\n }\n };\n /**\n * Renders the control.\n * @param {import(\"../MapEvent.js\").default} mapEvent Map event.\n * @api\n */\n Control.prototype.render = function (mapEvent) { };\n /**\n * This function is used to set a target element for the control. It has no\n * effect if it is called after the control has been added to the map (i.e.\n * after `setMap` is called on the control). If no `target` is set in the\n * options passed to the control constructor and if `setTarget` is not called\n * then the control is added to the map's overlay container.\n * @param {HTMLElement|string} target Target.\n * @api\n */\n Control.prototype.setTarget = function (target) {\n this.target_ =\n typeof target === 'string' ? document.getElementById(target) : target;\n };\n return Control;\n}(BaseObject));\nexport default Control;\n//# sourceMappingURL=Control.js.map","/**\n * @module ol/css\n */\n/**\n * @typedef {Object} FontParameters\n * @property {string} style Style.\n * @property {string} variant Variant.\n * @property {string} weight Weight.\n * @property {string} size Size.\n * @property {string} lineHeight LineHeight.\n * @property {string} family Family.\n * @property {Array} families Families.\n */\n/**\n * The CSS class for hidden feature.\n *\n * @const\n * @type {string}\n */\nexport var CLASS_HIDDEN = 'ol-hidden';\n/**\n * The CSS class that we'll give the DOM elements to have them selectable.\n *\n * @const\n * @type {string}\n */\nexport var CLASS_SELECTABLE = 'ol-selectable';\n/**\n * The CSS class that we'll give the DOM elements to have them unselectable.\n *\n * @const\n * @type {string}\n */\nexport var CLASS_UNSELECTABLE = 'ol-unselectable';\n/**\n * The CSS class for unsupported feature.\n *\n * @const\n * @type {string}\n */\nexport var CLASS_UNSUPPORTED = 'ol-unsupported';\n/**\n * The CSS class for controls.\n *\n * @const\n * @type {string}\n */\nexport var CLASS_CONTROL = 'ol-control';\n/**\n * The CSS class that we'll give the DOM elements that are collapsed, i.e.\n * to those elements which usually can be expanded.\n *\n * @const\n * @type {string}\n */\nexport var CLASS_COLLAPSED = 'ol-collapsed';\n/**\n * From https://stackoverflow.com/questions/10135697/regex-to-parse-any-css-font\n * @type {RegExp}\n */\nvar fontRegEx = new RegExp([\n '^\\\\s*(?=(?:(?:[-a-z]+\\\\s*){0,2}(italic|oblique))?)',\n '(?=(?:(?:[-a-z]+\\\\s*){0,2}(small-caps))?)',\n '(?=(?:(?:[-a-z]+\\\\s*){0,2}(bold(?:er)?|lighter|[1-9]00 ))?)',\n '(?:(?:normal|\\\\1|\\\\2|\\\\3)\\\\s*){0,3}((?:xx?-)?',\n '(?:small|large)|medium|smaller|larger|[\\\\.\\\\d]+(?:\\\\%|in|[cem]m|ex|p[ctx]))',\n '(?:\\\\s*\\\\/\\\\s*(normal|[\\\\.\\\\d]+(?:\\\\%|in|[cem]m|ex|p[ctx])?))',\n '?\\\\s*([-,\\\\\"\\\\\\'\\\\sa-z]+?)\\\\s*$',\n].join(''), 'i');\nvar fontRegExMatchIndex = [\n 'style',\n 'variant',\n 'weight',\n 'size',\n 'lineHeight',\n 'family',\n];\n/**\n * Get the list of font families from a font spec. Note that this doesn't work\n * for font families that have commas in them.\n * @param {string} fontSpec The CSS font property.\n * @return {FontParameters} The font parameters (or null if the input spec is invalid).\n */\nexport var getFontParameters = function (fontSpec) {\n var match = fontSpec.match(fontRegEx);\n if (!match) {\n return null;\n }\n var style = /** @type {FontParameters} */ ({\n lineHeight: 'normal',\n size: '1.2em',\n style: 'normal',\n weight: 'normal',\n variant: 'normal',\n });\n for (var i = 0, ii = fontRegExMatchIndex.length; i < ii; ++i) {\n var value = match[i + 1];\n if (value !== undefined) {\n style[fontRegExMatchIndex[i]] = value;\n }\n }\n style.families = style.family.split(/,\\s?/);\n return style;\n};\n/**\n * @param {number} opacity Opacity (0..1).\n * @return {string} CSS opacity.\n */\nexport function cssOpacity(opacity) {\n return opacity === 1 ? '' : String(Math.round(opacity * 100) / 100);\n}\n//# sourceMappingURL=css.js.map","/**\n * @module ol/layer/Property\n */\n/**\n * @enum {string}\n */\nexport default {\n OPACITY: 'opacity',\n VISIBLE: 'visible',\n EXTENT: 'extent',\n Z_INDEX: 'zIndex',\n MAX_RESOLUTION: 'maxResolution',\n MIN_RESOLUTION: 'minResolution',\n MAX_ZOOM: 'maxZoom',\n MIN_ZOOM: 'minZoom',\n SOURCE: 'source',\n};\n//# sourceMappingURL=Property.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/AssertionError\n */\nimport { VERSION } from './util.js';\n/**\n * Error object thrown when an assertion failed. This is an ECMA-262 Error,\n * extended with a `code` property.\n * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error.\n */\nvar AssertionError = /** @class */ (function (_super) {\n __extends(AssertionError, _super);\n /**\n * @param {number} code Error code.\n */\n function AssertionError(code) {\n var _this = this;\n var path = VERSION === 'latest' ? VERSION : 'v' + VERSION.split('-')[0];\n var message = 'Assertion failed. See https://openlayers.org/en/' +\n path +\n '/doc/errors/#' +\n code +\n ' for details.';\n _this = _super.call(this, message) || this;\n /**\n * Error code. The meaning of the code can be found on\n * https://openlayers.org/en/latest/doc/errors/ (replace `latest` with\n * the version found in the OpenLayers script's header comment if a version\n * other than the latest is used).\n * @type {number}\n * @api\n */\n _this.code = code;\n /**\n * @type {string}\n */\n _this.name = 'AssertionError';\n // Re-assign message, see https://github.com/Rich-Harris/buble/issues/40\n _this.message = message;\n return _this;\n }\n return AssertionError;\n}(Error));\nexport default AssertionError;\n//# sourceMappingURL=AssertionError.js.map","/**\n * @module ol/asserts\n */\nimport AssertionError from './AssertionError.js';\n/**\n * @param {*} assertion Assertion we expected to be truthy.\n * @param {number} errorCode Error code.\n */\nexport function assert(assertion, errorCode) {\n if (!assertion) {\n throw new AssertionError(errorCode);\n }\n}\n//# sourceMappingURL=asserts.js.map","/**\n * @module ol/math\n */\n/**\n * Takes a number and clamps it to within the provided bounds.\n * @param {number} value The input number.\n * @param {number} min The minimum value to return.\n * @param {number} max The maximum value to return.\n * @return {number} The input number if it is within bounds, or the nearest\n * number within the bounds.\n */\nexport function clamp(value, min, max) {\n return Math.min(Math.max(value, min), max);\n}\n/**\n * Return the hyperbolic cosine of a given number. The method will use the\n * native `Math.cosh` function if it is available, otherwise the hyperbolic\n * cosine will be calculated via the reference implementation of the Mozilla\n * developer network.\n *\n * @param {number} x X.\n * @return {number} Hyperbolic cosine of x.\n */\nexport var cosh = (function () {\n // Wrapped in a iife, to save the overhead of checking for the native\n // implementation on every invocation.\n var cosh;\n if ('cosh' in Math) {\n // The environment supports the native Math.cosh function, use it…\n cosh = Math.cosh;\n }\n else {\n // … else, use the reference implementation of MDN:\n cosh = function (x) {\n var y = /** @type {Math} */ (Math).exp(x);\n return (y + 1 / y) / 2;\n };\n }\n return cosh;\n})();\n/**\n * Return the base 2 logarithm of a given number. The method will use the\n * native `Math.log2` function if it is available, otherwise the base 2\n * logarithm will be calculated via the reference implementation of the\n * Mozilla developer network.\n *\n * @param {number} x X.\n * @return {number} Base 2 logarithm of x.\n */\nexport var log2 = (function () {\n // Wrapped in a iife, to save the overhead of checking for the native\n // implementation on every invocation.\n var log2;\n if ('log2' in Math) {\n // The environment supports the native Math.log2 function, use it…\n log2 = Math.log2;\n }\n else {\n // … else, use the reference implementation of MDN:\n log2 = function (x) {\n return Math.log(x) * Math.LOG2E;\n };\n }\n return log2;\n})();\n/**\n * Returns the square of the closest distance between the point (x, y) and the\n * line segment (x1, y1) to (x2, y2).\n * @param {number} x X.\n * @param {number} y Y.\n * @param {number} x1 X1.\n * @param {number} y1 Y1.\n * @param {number} x2 X2.\n * @param {number} y2 Y2.\n * @return {number} Squared distance.\n */\nexport function squaredSegmentDistance(x, y, x1, y1, x2, y2) {\n var dx = x2 - x1;\n var dy = y2 - y1;\n if (dx !== 0 || dy !== 0) {\n var t = ((x - x1) * dx + (y - y1) * dy) / (dx * dx + dy * dy);\n if (t > 1) {\n x1 = x2;\n y1 = y2;\n }\n else if (t > 0) {\n x1 += dx * t;\n y1 += dy * t;\n }\n }\n return squaredDistance(x, y, x1, y1);\n}\n/**\n * Returns the square of the distance between the points (x1, y1) and (x2, y2).\n * @param {number} x1 X1.\n * @param {number} y1 Y1.\n * @param {number} x2 X2.\n * @param {number} y2 Y2.\n * @return {number} Squared distance.\n */\nexport function squaredDistance(x1, y1, x2, y2) {\n var dx = x2 - x1;\n var dy = y2 - y1;\n return dx * dx + dy * dy;\n}\n/**\n * Solves system of linear equations using Gaussian elimination method.\n *\n * @param {Array>} mat Augmented matrix (n x n + 1 column)\n * in row-major order.\n * @return {Array} The resulting vector.\n */\nexport function solveLinearSystem(mat) {\n var n = mat.length;\n for (var i = 0; i < n; i++) {\n // Find max in the i-th column (ignoring i - 1 first rows)\n var maxRow = i;\n var maxEl = Math.abs(mat[i][i]);\n for (var r = i + 1; r < n; r++) {\n var absValue = Math.abs(mat[r][i]);\n if (absValue > maxEl) {\n maxEl = absValue;\n maxRow = r;\n }\n }\n if (maxEl === 0) {\n return null; // matrix is singular\n }\n // Swap max row with i-th (current) row\n var tmp = mat[maxRow];\n mat[maxRow] = mat[i];\n mat[i] = tmp;\n // Subtract the i-th row to make all the remaining rows 0 in the i-th column\n for (var j = i + 1; j < n; j++) {\n var coef = -mat[j][i] / mat[i][i];\n for (var k = i; k < n + 1; k++) {\n if (i == k) {\n mat[j][k] = 0;\n }\n else {\n mat[j][k] += coef * mat[i][k];\n }\n }\n }\n }\n // Solve Ax=b for upper triangular matrix A (mat)\n var x = new Array(n);\n for (var l = n - 1; l >= 0; l--) {\n x[l] = mat[l][n] / mat[l][l];\n for (var m = l - 1; m >= 0; m--) {\n mat[m][n] -= mat[m][l] * x[l];\n }\n }\n return x;\n}\n/**\n * Converts radians to to degrees.\n *\n * @param {number} angleInRadians Angle in radians.\n * @return {number} Angle in degrees.\n */\nexport function toDegrees(angleInRadians) {\n return (angleInRadians * 180) / Math.PI;\n}\n/**\n * Converts degrees to radians.\n *\n * @param {number} angleInDegrees Angle in degrees.\n * @return {number} Angle in radians.\n */\nexport function toRadians(angleInDegrees) {\n return (angleInDegrees * Math.PI) / 180;\n}\n/**\n * Returns the modulo of a / b, depending on the sign of b.\n *\n * @param {number} a Dividend.\n * @param {number} b Divisor.\n * @return {number} Modulo.\n */\nexport function modulo(a, b) {\n var r = a % b;\n return r * b < 0 ? r + b : r;\n}\n/**\n * Calculates the linearly interpolated value of x between a and b.\n *\n * @param {number} a Number\n * @param {number} b Number\n * @param {number} x Value to be interpolated.\n * @return {number} Interpolated value.\n */\nexport function lerp(a, b, x) {\n return a + x * (b - a);\n}\n//# sourceMappingURL=math.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/layer/Base\n */\nimport BaseObject from '../Object.js';\nimport LayerProperty from './Property.js';\nimport { abstract } from '../util.js';\nimport { assert } from '../asserts.js';\nimport { assign } from '../obj.js';\nimport { clamp } from '../math.js';\n/**\n * @typedef {import(\"../ObjectEventType\").Types|'change:extent'|'change:maxResolution'|'change:maxZoom'|\n * 'change:minResolution'|'change:minZoom'|'change:opacity'|'change:visible'|'change:zIndex'} BaseLayerObjectEventTypes\n */\n/***\n * @template Return\n * @typedef {import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature &\n * import(\"../Observable\").CombinedOnSignature} BaseLayerOnSignature\n */\n/**\n * @typedef {Object} Options\n * @property {string} [className='ol-layer'] A CSS class name to set to the layer element.\n * @property {number} [opacity=1] Opacity (0, 1).\n * @property {boolean} [visible=true] Visibility.\n * @property {import(\"../extent.js\").Extent} [extent] The bounding extent for layer rendering. The layer will not be\n * rendered outside of this extent.\n * @property {number} [zIndex] The z-index for layer rendering. At rendering time, the layers\n * will be ordered, first by Z-index and then by position. When `undefined`, a `zIndex` of 0 is assumed\n * for layers that are added to the map's `layers` collection, or `Infinity` when the layer's `setMap()`\n * method was used.\n * @property {number} [minResolution] The minimum resolution (inclusive) at which this layer will be\n * visible.\n * @property {number} [maxResolution] The maximum resolution (exclusive) below which this layer will\n * be visible.\n * @property {number} [minZoom] The minimum view zoom level (exclusive) above which this layer will be\n * visible.\n * @property {number} [maxZoom] The maximum view zoom level (inclusive) at which this layer will\n * be visible.\n * @property {Object} [properties] Arbitrary observable properties. Can be accessed with `#get()` and `#set()`.\n */\n/**\n * @classdesc\n * Abstract base class; normally only used for creating subclasses and not\n * instantiated in apps.\n * Note that with {@link module:ol/layer/Base} and all its subclasses, any property set in\n * the options is set as a {@link module:ol/Object} property on the layer object, so\n * is observable, and has get/set accessors.\n *\n * @api\n */\nvar BaseLayer = /** @class */ (function (_super) {\n __extends(BaseLayer, _super);\n /**\n * @param {Options} options Layer options.\n */\n function BaseLayer(options) {\n var _this = _super.call(this) || this;\n /***\n * @type {BaseLayerOnSignature}\n */\n _this.on;\n /***\n * @type {BaseLayerOnSignature}\n */\n _this.once;\n /***\n * @type {BaseLayerOnSignature}\n */\n _this.un;\n /**\n * @type {Object}\n */\n var properties = assign({}, options);\n if (typeof options.properties === 'object') {\n delete properties.properties;\n assign(properties, options.properties);\n }\n properties[LayerProperty.OPACITY] =\n options.opacity !== undefined ? options.opacity : 1;\n assert(typeof properties[LayerProperty.OPACITY] === 'number', 64); // Layer opacity must be a number\n properties[LayerProperty.VISIBLE] =\n options.visible !== undefined ? options.visible : true;\n properties[LayerProperty.Z_INDEX] = options.zIndex;\n properties[LayerProperty.MAX_RESOLUTION] =\n options.maxResolution !== undefined ? options.maxResolution : Infinity;\n properties[LayerProperty.MIN_RESOLUTION] =\n options.minResolution !== undefined ? options.minResolution : 0;\n properties[LayerProperty.MIN_ZOOM] =\n options.minZoom !== undefined ? options.minZoom : -Infinity;\n properties[LayerProperty.MAX_ZOOM] =\n options.maxZoom !== undefined ? options.maxZoom : Infinity;\n /**\n * @type {string}\n * @private\n */\n _this.className_ =\n properties.className !== undefined ? options.className : 'ol-layer';\n delete properties.className;\n _this.setProperties(properties);\n /**\n * @type {import(\"./Layer.js\").State}\n * @private\n */\n _this.state_ = null;\n return _this;\n }\n /**\n * @return {string} CSS class name.\n */\n BaseLayer.prototype.getClassName = function () {\n return this.className_;\n };\n /**\n * This method is not meant to be called by layers or layer renderers because the state\n * is incorrect if the layer is included in a layer group.\n *\n * @param {boolean} [opt_managed] Layer is managed.\n * @return {import(\"./Layer.js\").State} Layer state.\n */\n BaseLayer.prototype.getLayerState = function (opt_managed) {\n /** @type {import(\"./Layer.js\").State} */\n var state = this.state_ ||\n /** @type {?} */ ({\n layer: this,\n managed: opt_managed === undefined ? true : opt_managed,\n });\n var zIndex = this.getZIndex();\n state.opacity = clamp(Math.round(this.getOpacity() * 100) / 100, 0, 1);\n state.sourceState = this.getSourceState();\n state.visible = this.getVisible();\n state.extent = this.getExtent();\n state.zIndex = zIndex === undefined && !state.managed ? Infinity : zIndex;\n state.maxResolution = this.getMaxResolution();\n state.minResolution = Math.max(this.getMinResolution(), 0);\n state.minZoom = this.getMinZoom();\n state.maxZoom = this.getMaxZoom();\n this.state_ = state;\n return state;\n };\n /**\n * @abstract\n * @param {Array} [opt_array] Array of layers (to be\n * modified in place).\n * @return {Array} Array of layers.\n */\n BaseLayer.prototype.getLayersArray = function (opt_array) {\n return abstract();\n };\n /**\n * @abstract\n * @param {Array} [opt_states] Optional list of layer\n * states (to be modified in place).\n * @return {Array} List of layer states.\n */\n BaseLayer.prototype.getLayerStatesArray = function (opt_states) {\n return abstract();\n };\n /**\n * Return the {@link module:ol/extent~Extent extent} of the layer or `undefined` if it\n * will be visible regardless of extent.\n * @return {import(\"../extent.js\").Extent|undefined} The layer extent.\n * @observable\n * @api\n */\n BaseLayer.prototype.getExtent = function () {\n return /** @type {import(\"../extent.js\").Extent|undefined} */ (this.get(LayerProperty.EXTENT));\n };\n /**\n * Return the maximum resolution of the layer.\n * @return {number} The maximum resolution of the layer.\n * @observable\n * @api\n */\n BaseLayer.prototype.getMaxResolution = function () {\n return /** @type {number} */ (this.get(LayerProperty.MAX_RESOLUTION));\n };\n /**\n * Return the minimum resolution of the layer.\n * @return {number} The minimum resolution of the layer.\n * @observable\n * @api\n */\n BaseLayer.prototype.getMinResolution = function () {\n return /** @type {number} */ (this.get(LayerProperty.MIN_RESOLUTION));\n };\n /**\n * Return the minimum zoom level of the layer.\n * @return {number} The minimum zoom level of the layer.\n * @observable\n * @api\n */\n BaseLayer.prototype.getMinZoom = function () {\n return /** @type {number} */ (this.get(LayerProperty.MIN_ZOOM));\n };\n /**\n * Return the maximum zoom level of the layer.\n * @return {number} The maximum zoom level of the layer.\n * @observable\n * @api\n */\n BaseLayer.prototype.getMaxZoom = function () {\n return /** @type {number} */ (this.get(LayerProperty.MAX_ZOOM));\n };\n /**\n * Return the opacity of the layer (between 0 and 1).\n * @return {number} The opacity of the layer.\n * @observable\n * @api\n */\n BaseLayer.prototype.getOpacity = function () {\n return /** @type {number} */ (this.get(LayerProperty.OPACITY));\n };\n /**\n * @abstract\n * @return {import(\"../source/State.js\").default} Source state.\n */\n BaseLayer.prototype.getSourceState = function () {\n return abstract();\n };\n /**\n * Return the visibility of the layer (`true` or `false`).\n * @return {boolean} The visibility of the layer.\n * @observable\n * @api\n */\n BaseLayer.prototype.getVisible = function () {\n return /** @type {boolean} */ (this.get(LayerProperty.VISIBLE));\n };\n /**\n * Return the Z-index of the layer, which is used to order layers before\n * rendering. The default Z-index is 0.\n * @return {number} The Z-index of the layer.\n * @observable\n * @api\n */\n BaseLayer.prototype.getZIndex = function () {\n return /** @type {number} */ (this.get(LayerProperty.Z_INDEX));\n };\n /**\n * Set the extent at which the layer is visible. If `undefined`, the layer\n * will be visible at all extents.\n * @param {import(\"../extent.js\").Extent|undefined} extent The extent of the layer.\n * @observable\n * @api\n */\n BaseLayer.prototype.setExtent = function (extent) {\n this.set(LayerProperty.EXTENT, extent);\n };\n /**\n * Set the maximum resolution at which the layer is visible.\n * @param {number} maxResolution The maximum resolution of the layer.\n * @observable\n * @api\n */\n BaseLayer.prototype.setMaxResolution = function (maxResolution) {\n this.set(LayerProperty.MAX_RESOLUTION, maxResolution);\n };\n /**\n * Set the minimum resolution at which the layer is visible.\n * @param {number} minResolution The minimum resolution of the layer.\n * @observable\n * @api\n */\n BaseLayer.prototype.setMinResolution = function (minResolution) {\n this.set(LayerProperty.MIN_RESOLUTION, minResolution);\n };\n /**\n * Set the maximum zoom (exclusive) at which the layer is visible.\n * Note that the zoom levels for layer visibility are based on the\n * view zoom level, which may be different from a tile source zoom level.\n * @param {number} maxZoom The maximum zoom of the layer.\n * @observable\n * @api\n */\n BaseLayer.prototype.setMaxZoom = function (maxZoom) {\n this.set(LayerProperty.MAX_ZOOM, maxZoom);\n };\n /**\n * Set the minimum zoom (inclusive) at which the layer is visible.\n * Note that the zoom levels for layer visibility are based on the\n * view zoom level, which may be different from a tile source zoom level.\n * @param {number} minZoom The minimum zoom of the layer.\n * @observable\n * @api\n */\n BaseLayer.prototype.setMinZoom = function (minZoom) {\n this.set(LayerProperty.MIN_ZOOM, minZoom);\n };\n /**\n * Set the opacity of the layer, allowed values range from 0 to 1.\n * @param {number} opacity The opacity of the layer.\n * @observable\n * @api\n */\n BaseLayer.prototype.setOpacity = function (opacity) {\n assert(typeof opacity === 'number', 64); // Layer opacity must be a number\n this.set(LayerProperty.OPACITY, opacity);\n };\n /**\n * Set the visibility of the layer (`true` or `false`).\n * @param {boolean} visible The visibility of the layer.\n * @observable\n * @api\n */\n BaseLayer.prototype.setVisible = function (visible) {\n this.set(LayerProperty.VISIBLE, visible);\n };\n /**\n * Set Z-index of the layer, which is used to order layers before rendering.\n * The default Z-index is 0.\n * @param {number} zindex The z-index of the layer.\n * @observable\n * @api\n */\n BaseLayer.prototype.setZIndex = function (zindex) {\n this.set(LayerProperty.Z_INDEX, zindex);\n };\n /**\n * Clean up.\n */\n BaseLayer.prototype.disposeInternal = function () {\n if (this.state_) {\n this.state_.layer = null;\n this.state_ = null;\n }\n _super.prototype.disposeInternal.call(this);\n };\n return BaseLayer;\n}(BaseObject));\nexport default BaseLayer;\n//# sourceMappingURL=Base.js.map","/**\n * @module ol/render/EventType\n */\n/**\n * @enum {string}\n */\nexport default {\n /**\n * Triggered before a layer is rendered.\n * @event module:ol/render/Event~RenderEvent#prerender\n * @api\n */\n PRERENDER: 'prerender',\n /**\n * Triggered after a layer is rendered.\n * @event module:ol/render/Event~RenderEvent#postrender\n * @api\n */\n POSTRENDER: 'postrender',\n /**\n * Triggered before layers are rendered.\n * The event object will not have a `context` set.\n * @event module:ol/render/Event~RenderEvent#precompose\n * @api\n */\n PRECOMPOSE: 'precompose',\n /**\n * Triggered after all layers are rendered.\n * The event object will not have a `context` set.\n * @event module:ol/render/Event~RenderEvent#postcompose\n * @api\n */\n POSTCOMPOSE: 'postcompose',\n /**\n * Triggered when rendering is complete, i.e. all sources and tiles have\n * finished loading for the current viewport, and all tiles are faded in.\n * The event object will not have a `context` set.\n * @event module:ol/render/Event~RenderEvent#rendercomplete\n * @api\n */\n RENDERCOMPLETE: 'rendercomplete',\n};\n/**\n * @typedef {'postrender'|'precompose'|'postcompose'|'rendercomplete'} MapRenderEventTypes\n */\n/**\n * @typedef {'postrender'|'prerender'} LayerRenderEventTypes\n */\n//# sourceMappingURL=EventType.js.map","/**\n * @module ol/source/State\n */\n/**\n * @enum {string}\n * State of the source, one of 'undefined', 'loading', 'ready' or 'error'.\n */\nexport default {\n UNDEFINED: 'undefined',\n LOADING: 'loading',\n READY: 'ready',\n ERROR: 'error',\n};\n//# sourceMappingURL=State.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/layer/Layer\n */\nimport BaseLayer from './Base.js';\nimport EventType from '../events/EventType.js';\nimport LayerProperty from './Property.js';\nimport RenderEventType from '../render/EventType.js';\nimport SourceState from '../source/State.js';\nimport { assert } from '../asserts.js';\nimport { assign } from '../obj.js';\nimport { listen, unlistenByKey } from '../events.js';\n/**\n * @typedef {function(import(\"../PluggableMap.js\").FrameState):HTMLElement} RenderFunction\n */\n/***\n * @template Return\n * @typedef {import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature &\n * import(\"../Observable\").CombinedOnSignature} LayerOnSignature\n */\n/**\n * @template {import(\"../source/Source.js\").default} SourceType\n * @typedef {Object} Options\n * @property {string} [className='ol-layer'] A CSS class name to set to the layer element.\n * @property {number} [opacity=1] Opacity (0, 1).\n * @property {boolean} [visible=true] Visibility.\n * @property {import(\"../extent.js\").Extent} [extent] The bounding extent for layer rendering. The layer will not be\n * rendered outside of this extent.\n * @property {number} [zIndex] The z-index for layer rendering. At rendering time, the layers\n * will be ordered, first by Z-index and then by position. When `undefined`, a `zIndex` of 0 is assumed\n * for layers that are added to the map's `layers` collection, or `Infinity` when the layer's `setMap()`\n * method was used.\n * @property {number} [minResolution] The minimum resolution (inclusive) at which this layer will be\n * visible.\n * @property {number} [maxResolution] The maximum resolution (exclusive) below which this layer will\n * be visible.\n * @property {number} [minZoom] The minimum view zoom level (exclusive) above which this layer will be\n * visible.\n * @property {number} [maxZoom] The maximum view zoom level (inclusive) at which this layer will\n * be visible.\n * @property {SourceType} [source] Source for this layer. If not provided to the constructor,\n * the source can be set by calling {@link module:ol/layer/Layer~Layer#setSource layer.setSource(source)} after\n * construction.\n * @property {import(\"../PluggableMap.js\").default} [map] Map.\n * @property {RenderFunction} [render] Render function. Takes the frame state as input and is expected to return an\n * HTML element. Will overwrite the default rendering for the layer.\n * @property {Object} [properties] Arbitrary observable properties. Can be accessed with `#get()` and `#set()`.\n */\n/**\n * @typedef {Object} State\n * @property {import(\"./Layer.js\").default} layer Layer.\n * @property {number} opacity Opacity, the value is rounded to two digits to appear after the decimal point.\n * @property {import(\"../source/State.js\").default} sourceState SourceState.\n * @property {boolean} visible Visible.\n * @property {boolean} managed Managed.\n * @property {import(\"../extent.js\").Extent} [extent] Extent.\n * @property {number} zIndex ZIndex.\n * @property {number} maxResolution Maximum resolution.\n * @property {number} minResolution Minimum resolution.\n * @property {number} minZoom Minimum zoom.\n * @property {number} maxZoom Maximum zoom.\n */\n/**\n * @classdesc\n * Base class from which all layer types are derived. This should only be instantiated\n * in the case where a custom layer is be added to the map with a custom `render` function.\n * Such a function can be specified in the `options` object, and is expected to return an HTML element.\n *\n * A visual representation of raster or vector map data.\n * Layers group together those properties that pertain to how the data is to be\n * displayed, irrespective of the source of that data.\n *\n * Layers are usually added to a map with {@link import(\"../PluggableMap.js\").default#addLayer map.addLayer()}. Components\n * like {@link module:ol/interaction/Draw~Draw} use unmanaged layers\n * internally. These unmanaged layers are associated with the map using\n * {@link module:ol/layer/Layer~Layer#setMap} instead.\n *\n * A generic `change` event is fired when the state of the source changes.\n *\n * Please note that for performance reasons several layers might get rendered to\n * the same HTML element, which will cause {@link import(\"../PluggableMap.js\").default#forEachLayerAtPixel map.forEachLayerAtPixel()} to\n * give false positives. To avoid this, apply different `className` properties to the\n * layers at creation time.\n *\n * @fires import(\"../render/Event.js\").RenderEvent#prerender\n * @fires import(\"../render/Event.js\").RenderEvent#postrender\n *\n * @template {import(\"../source/Source.js\").default} SourceType\n * @api\n */\nvar Layer = /** @class */ (function (_super) {\n __extends(Layer, _super);\n /**\n * @param {Options} options Layer options.\n */\n function Layer(options) {\n var _this = this;\n var baseOptions = assign({}, options);\n delete baseOptions.source;\n _this = _super.call(this, baseOptions) || this;\n /***\n * @type {LayerOnSignature}\n */\n _this.on;\n /***\n * @type {LayerOnSignature}\n */\n _this.once;\n /***\n * @type {LayerOnSignature}\n */\n _this.un;\n /**\n * @private\n * @type {?import(\"../events.js\").EventsKey}\n */\n _this.mapPrecomposeKey_ = null;\n /**\n * @private\n * @type {?import(\"../events.js\").EventsKey}\n */\n _this.mapRenderKey_ = null;\n /**\n * @private\n * @type {?import(\"../events.js\").EventsKey}\n */\n _this.sourceChangeKey_ = null;\n /**\n * @private\n * @type {import(\"../renderer/Layer.js\").default}\n */\n _this.renderer_ = null;\n // Overwrite default render method with a custom one\n if (options.render) {\n _this.render = options.render;\n }\n if (options.map) {\n _this.setMap(options.map);\n }\n _this.addChangeListener(LayerProperty.SOURCE, _this.handleSourcePropertyChange_);\n var source = options.source\n ? /** @type {SourceType} */ (options.source)\n : null;\n _this.setSource(source);\n return _this;\n }\n /**\n * @param {Array} [opt_array] Array of layers (to be modified in place).\n * @return {Array} Array of layers.\n */\n Layer.prototype.getLayersArray = function (opt_array) {\n var array = opt_array ? opt_array : [];\n array.push(this);\n return array;\n };\n /**\n * @param {Array} [opt_states] Optional list of layer states (to be modified in place).\n * @return {Array} List of layer states.\n */\n Layer.prototype.getLayerStatesArray = function (opt_states) {\n var states = opt_states ? opt_states : [];\n states.push(this.getLayerState());\n return states;\n };\n /**\n * Get the layer source.\n * @return {SourceType} The layer source (or `null` if not yet set).\n * @observable\n * @api\n */\n Layer.prototype.getSource = function () {\n return /** @type {SourceType} */ (this.get(LayerProperty.SOURCE)) || null;\n };\n /**\n * @return {import(\"../source/State.js\").default} Source state.\n */\n Layer.prototype.getSourceState = function () {\n var source = this.getSource();\n return !source ? SourceState.UNDEFINED : source.getState();\n };\n /**\n * @private\n */\n Layer.prototype.handleSourceChange_ = function () {\n this.changed();\n };\n /**\n * @private\n */\n Layer.prototype.handleSourcePropertyChange_ = function () {\n if (this.sourceChangeKey_) {\n unlistenByKey(this.sourceChangeKey_);\n this.sourceChangeKey_ = null;\n }\n var source = this.getSource();\n if (source) {\n this.sourceChangeKey_ = listen(source, EventType.CHANGE, this.handleSourceChange_, this);\n }\n this.changed();\n };\n /**\n * @param {import(\"../pixel\").Pixel} pixel Pixel.\n * @return {Promise>} Promise that resolves with\n * an array of features.\n */\n Layer.prototype.getFeatures = function (pixel) {\n if (!this.renderer_) {\n return new Promise(function (resolve) { return resolve([]); });\n }\n return this.renderer_.getFeatures(pixel);\n };\n /**\n * In charge to manage the rendering of the layer. One layer type is\n * bounded with one layer renderer.\n * @param {?import(\"../PluggableMap.js\").FrameState} frameState Frame state.\n * @param {HTMLElement} target Target which the renderer may (but need not) use\n * for rendering its content.\n * @return {HTMLElement} The rendered element.\n */\n Layer.prototype.render = function (frameState, target) {\n var layerRenderer = this.getRenderer();\n if (layerRenderer.prepareFrame(frameState)) {\n return layerRenderer.renderFrame(frameState, target);\n }\n };\n /**\n * Sets the layer to be rendered on top of other layers on a map. The map will\n * not manage this layer in its layers collection, and the callback in\n * {@link module:ol/Map~Map#forEachLayerAtPixel} will receive `null` as layer. This\n * is useful for temporary layers. To remove an unmanaged layer from the map,\n * use `#setMap(null)`.\n *\n * To add the layer to a map and have it managed by the map, use\n * {@link module:ol/Map~Map#addLayer} instead.\n * @param {import(\"../PluggableMap.js\").default} map Map.\n * @api\n */\n Layer.prototype.setMap = function (map) {\n if (this.mapPrecomposeKey_) {\n unlistenByKey(this.mapPrecomposeKey_);\n this.mapPrecomposeKey_ = null;\n }\n if (!map) {\n this.changed();\n }\n if (this.mapRenderKey_) {\n unlistenByKey(this.mapRenderKey_);\n this.mapRenderKey_ = null;\n }\n if (map) {\n this.mapPrecomposeKey_ = listen(map, RenderEventType.PRECOMPOSE, function (evt) {\n var renderEvent = \n /** @type {import(\"../render/Event.js\").default} */ (evt);\n var layerStatesArray = renderEvent.frameState.layerStatesArray;\n var layerState = this.getLayerState(false);\n // A layer can only be added to the map once. Use either `layer.setMap()` or `map.addLayer()`, not both.\n assert(!layerStatesArray.some(function (arrayLayerState) {\n return arrayLayerState.layer === layerState.layer;\n }), 67);\n layerStatesArray.push(layerState);\n }, this);\n this.mapRenderKey_ = listen(this, EventType.CHANGE, map.render, map);\n this.changed();\n }\n };\n /**\n * Set the layer source.\n * @param {SourceType} source The layer source.\n * @observable\n * @api\n */\n Layer.prototype.setSource = function (source) {\n this.set(LayerProperty.SOURCE, source);\n };\n /**\n * Get the renderer for this layer.\n * @return {import(\"../renderer/Layer.js\").default} The layer renderer.\n */\n Layer.prototype.getRenderer = function () {\n if (!this.renderer_) {\n this.renderer_ = this.createRenderer();\n }\n return this.renderer_;\n };\n /**\n * @return {boolean} The layer has a renderer.\n */\n Layer.prototype.hasRenderer = function () {\n return !!this.renderer_;\n };\n /**\n * Create a renderer for this layer.\n * @return {import(\"../renderer/Layer.js\").default} A layer renderer.\n * @protected\n */\n Layer.prototype.createRenderer = function () {\n return null;\n };\n /**\n * Clean up.\n */\n Layer.prototype.disposeInternal = function () {\n if (this.renderer_) {\n this.renderer_.dispose();\n delete this.renderer_;\n }\n this.setSource(null);\n _super.prototype.disposeInternal.call(this);\n };\n return Layer;\n}(BaseLayer));\n/**\n * Return `true` if the layer is visible and if the provided view state\n * has resolution and zoom levels that are in range of the layer's min/max.\n * @param {State} layerState Layer state.\n * @param {import(\"../View.js\").State} viewState View state.\n * @return {boolean} The layer is visible at the given view state.\n */\nexport function inView(layerState, viewState) {\n if (!layerState.visible) {\n return false;\n }\n var resolution = viewState.resolution;\n if (resolution < layerState.minResolution ||\n resolution >= layerState.maxResolution) {\n return false;\n }\n var zoom = viewState.zoom;\n return zoom > layerState.minZoom && zoom <= layerState.maxZoom;\n}\nexport default Layer;\n//# sourceMappingURL=Layer.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/control/Attribution\n */\nimport Control from './Control.js';\nimport EventType from '../events/EventType.js';\nimport { CLASS_COLLAPSED, CLASS_CONTROL, CLASS_UNSELECTABLE } from '../css.js';\nimport { equals } from '../array.js';\nimport { inView } from '../layer/Layer.js';\nimport { removeChildren, replaceNode } from '../dom.js';\n/**\n * @typedef {Object} Options\n * @property {string} [className='ol-attribution'] CSS class name.\n * @property {HTMLElement|string} [target] Specify a target if you\n * want the control to be rendered outside of the map's\n * viewport.\n * @property {boolean} [collapsible] Specify if attributions can\n * be collapsed. If not specified, sources control this behavior with their\n * `attributionsCollapsible` setting.\n * @property {boolean} [collapsed=true] Specify if attributions should\n * be collapsed at startup.\n * @property {string} [tipLabel='Attributions'] Text label to use for the button tip.\n * @property {string|HTMLElement} [label='i'] Text label to use for the\n * collapsed attributions button.\n * Instead of text, also an element (e.g. a `span` element) can be used.\n * @property {string} [expandClassName=className + '-expand'] CSS class name for the\n * collapsed attributions button.\n * @property {string|HTMLElement} [collapseLabel='›'] Text label to use\n * for the expanded attributions button.\n * Instead of text, also an element (e.g. a `span` element) can be used.\n * @property {string} [collapseClassName=className + '-collapse'] CSS class name for the\n * expanded attributions button.\n * @property {function(import(\"../MapEvent.js\").default):void} [render] Function called when\n * the control should be re-rendered. This is called in a `requestAnimationFrame`\n * callback.\n */\n/**\n * @classdesc\n * Control to show all the attributions associated with the layer sources\n * in the map. This control is one of the default controls included in maps.\n * By default it will show in the bottom right portion of the map, but this can\n * be changed by using a css selector for `.ol-attribution`.\n *\n * @api\n */\nvar Attribution = /** @class */ (function (_super) {\n __extends(Attribution, _super);\n /**\n * @param {Options} [opt_options] Attribution options.\n */\n function Attribution(opt_options) {\n var _this = this;\n var options = opt_options ? opt_options : {};\n _this = _super.call(this, {\n element: document.createElement('div'),\n render: options.render,\n target: options.target,\n }) || this;\n /**\n * @private\n * @type {HTMLElement}\n */\n _this.ulElement_ = document.createElement('ul');\n /**\n * @private\n * @type {boolean}\n */\n _this.collapsed_ =\n options.collapsed !== undefined ? options.collapsed : true;\n /**\n * @private\n * @type {boolean}\n */\n _this.userCollapsed_ = _this.collapsed_;\n /**\n * @private\n * @type {boolean}\n */\n _this.overrideCollapsible_ = options.collapsible !== undefined;\n /**\n * @private\n * @type {boolean}\n */\n _this.collapsible_ =\n options.collapsible !== undefined ? options.collapsible : true;\n if (!_this.collapsible_) {\n _this.collapsed_ = false;\n }\n var className = options.className !== undefined ? options.className : 'ol-attribution';\n var tipLabel = options.tipLabel !== undefined ? options.tipLabel : 'Attributions';\n var expandClassName = options.expandClassName !== undefined\n ? options.expandClassName\n : className + '-expand';\n var collapseLabel = options.collapseLabel !== undefined ? options.collapseLabel : '\\u203A';\n var collapseClassName = options.collapseClassName !== undefined\n ? options.collapseClassName\n : className + '-collpase';\n if (typeof collapseLabel === 'string') {\n /**\n * @private\n * @type {HTMLElement}\n */\n _this.collapseLabel_ = document.createElement('span');\n _this.collapseLabel_.textContent = collapseLabel;\n _this.collapseLabel_.className = collapseClassName;\n }\n else {\n _this.collapseLabel_ = collapseLabel;\n }\n var label = options.label !== undefined ? options.label : 'i';\n if (typeof label === 'string') {\n /**\n * @private\n * @type {HTMLElement}\n */\n _this.label_ = document.createElement('span');\n _this.label_.textContent = label;\n _this.label_.className = expandClassName;\n }\n else {\n _this.label_ = label;\n }\n var activeLabel = _this.collapsible_ && !_this.collapsed_ ? _this.collapseLabel_ : _this.label_;\n /**\n * @private\n * @type {HTMLElement}\n */\n _this.toggleButton_ = document.createElement('button');\n _this.toggleButton_.setAttribute('type', 'button');\n _this.toggleButton_.setAttribute('aria-expanded', String(!_this.collapsed_));\n _this.toggleButton_.title = tipLabel;\n _this.toggleButton_.appendChild(activeLabel);\n _this.toggleButton_.addEventListener(EventType.CLICK, _this.handleClick_.bind(_this), false);\n var cssClasses = className +\n ' ' +\n CLASS_UNSELECTABLE +\n ' ' +\n CLASS_CONTROL +\n (_this.collapsed_ && _this.collapsible_ ? ' ' + CLASS_COLLAPSED : '') +\n (_this.collapsible_ ? '' : ' ol-uncollapsible');\n var element = _this.element;\n element.className = cssClasses;\n element.appendChild(_this.toggleButton_);\n element.appendChild(_this.ulElement_);\n /**\n * A list of currently rendered resolutions.\n * @type {Array}\n * @private\n */\n _this.renderedAttributions_ = [];\n /**\n * @private\n * @type {boolean}\n */\n _this.renderedVisible_ = true;\n return _this;\n }\n /**\n * Collect a list of visible attributions and set the collapsible state.\n * @param {import(\"../PluggableMap.js\").FrameState} frameState Frame state.\n * @return {Array} Attributions.\n * @private\n */\n Attribution.prototype.collectSourceAttributions_ = function (frameState) {\n /**\n * Used to determine if an attribution already exists.\n * @type {!Object}\n */\n var lookup = {};\n /**\n * A list of visible attributions.\n * @type {Array}\n */\n var visibleAttributions = [];\n var collapsible = true;\n var layerStatesArray = frameState.layerStatesArray;\n for (var i = 0, ii = layerStatesArray.length; i < ii; ++i) {\n var layerState = layerStatesArray[i];\n if (!inView(layerState, frameState.viewState)) {\n continue;\n }\n var source = /** @type {import(\"../layer/Layer.js\").default} */ (layerState.layer).getSource();\n if (!source) {\n continue;\n }\n var attributionGetter = source.getAttributions();\n if (!attributionGetter) {\n continue;\n }\n var attributions = attributionGetter(frameState);\n if (!attributions) {\n continue;\n }\n collapsible =\n collapsible && source.getAttributionsCollapsible() !== false;\n if (Array.isArray(attributions)) {\n for (var j = 0, jj = attributions.length; j < jj; ++j) {\n if (!(attributions[j] in lookup)) {\n visibleAttributions.push(attributions[j]);\n lookup[attributions[j]] = true;\n }\n }\n }\n else {\n if (!(attributions in lookup)) {\n visibleAttributions.push(attributions);\n lookup[attributions] = true;\n }\n }\n }\n if (!this.overrideCollapsible_) {\n this.setCollapsible(collapsible);\n }\n return visibleAttributions;\n };\n /**\n * @private\n * @param {?import(\"../PluggableMap.js\").FrameState} frameState Frame state.\n */\n Attribution.prototype.updateElement_ = function (frameState) {\n if (!frameState) {\n if (this.renderedVisible_) {\n this.element.style.display = 'none';\n this.renderedVisible_ = false;\n }\n return;\n }\n var attributions = this.collectSourceAttributions_(frameState);\n var visible = attributions.length > 0;\n if (this.renderedVisible_ != visible) {\n this.element.style.display = visible ? '' : 'none';\n this.renderedVisible_ = visible;\n }\n if (equals(attributions, this.renderedAttributions_)) {\n return;\n }\n removeChildren(this.ulElement_);\n // append the attributions\n for (var i = 0, ii = attributions.length; i < ii; ++i) {\n var element = document.createElement('li');\n element.innerHTML = attributions[i];\n this.ulElement_.appendChild(element);\n }\n this.renderedAttributions_ = attributions;\n };\n /**\n * @param {MouseEvent} event The event to handle\n * @private\n */\n Attribution.prototype.handleClick_ = function (event) {\n event.preventDefault();\n this.handleToggle_();\n this.userCollapsed_ = this.collapsed_;\n };\n /**\n * @private\n */\n Attribution.prototype.handleToggle_ = function () {\n this.element.classList.toggle(CLASS_COLLAPSED);\n if (this.collapsed_) {\n replaceNode(this.collapseLabel_, this.label_);\n }\n else {\n replaceNode(this.label_, this.collapseLabel_);\n }\n this.collapsed_ = !this.collapsed_;\n this.toggleButton_.setAttribute('aria-expanded', String(!this.collapsed_));\n };\n /**\n * Return `true` if the attribution is collapsible, `false` otherwise.\n * @return {boolean} True if the widget is collapsible.\n * @api\n */\n Attribution.prototype.getCollapsible = function () {\n return this.collapsible_;\n };\n /**\n * Set whether the attribution should be collapsible.\n * @param {boolean} collapsible True if the widget is collapsible.\n * @api\n */\n Attribution.prototype.setCollapsible = function (collapsible) {\n if (this.collapsible_ === collapsible) {\n return;\n }\n this.collapsible_ = collapsible;\n this.element.classList.toggle('ol-uncollapsible');\n if (this.userCollapsed_) {\n this.handleToggle_();\n }\n };\n /**\n * Collapse or expand the attribution according to the passed parameter. Will\n * not do anything if the attribution isn't collapsible or if the current\n * collapsed state is already the one requested.\n * @param {boolean} collapsed True if the widget is collapsed.\n * @api\n */\n Attribution.prototype.setCollapsed = function (collapsed) {\n this.userCollapsed_ = collapsed;\n if (!this.collapsible_ || this.collapsed_ === collapsed) {\n return;\n }\n this.handleToggle_();\n };\n /**\n * Return `true` when the attribution is currently collapsed or `false`\n * otherwise.\n * @return {boolean} True if the widget is collapsed.\n * @api\n */\n Attribution.prototype.getCollapsed = function () {\n return this.collapsed_;\n };\n /**\n * Update the attribution element.\n * @param {import(\"../MapEvent.js\").default} mapEvent Map event.\n * @override\n */\n Attribution.prototype.render = function (mapEvent) {\n this.updateElement_(mapEvent.frameState);\n };\n return Attribution;\n}(Control));\nexport default Attribution;\n//# sourceMappingURL=Attribution.js.map","/**\n * @module ol/pointer/EventType\n */\n/**\n * Constants for event names.\n * @enum {string}\n */\nexport default {\n POINTERMOVE: 'pointermove',\n POINTERDOWN: 'pointerdown',\n POINTERUP: 'pointerup',\n POINTEROVER: 'pointerover',\n POINTEROUT: 'pointerout',\n POINTERENTER: 'pointerenter',\n POINTERLEAVE: 'pointerleave',\n POINTERCANCEL: 'pointercancel',\n};\n//# sourceMappingURL=EventType.js.map","/**\n * @module ol/proj/Units\n */\n/**\n * Projection units: `'degrees'`, `'ft'`, `'m'`, `'pixels'`, `'tile-pixels'` or\n * `'us-ft'`.\n * @enum {string}\n */\nvar Units = {\n /**\n * Radians\n * @api\n */\n RADIANS: 'radians',\n /**\n * Degrees\n * @api\n */\n DEGREES: 'degrees',\n /**\n * Feet\n * @api\n */\n FEET: 'ft',\n /**\n * Meters\n * @api\n */\n METERS: 'm',\n /**\n * Pixels\n * @api\n */\n PIXELS: 'pixels',\n /**\n * Tile Pixels\n * @api\n */\n TILE_PIXELS: 'tile-pixels',\n /**\n * US Feet\n * @api\n */\n USFEET: 'us-ft',\n};\n/**\n * See http://duff.ess.washington.edu/data/raster/drg/docs/geotiff.txt\n * @type {Object}\n */\nvar unitByCode = {\n '9001': Units.METERS,\n '9002': Units.FEET,\n '9003': Units.USFEET,\n '9101': Units.RADIANS,\n '9102': Units.DEGREES,\n};\n/**\n * @param {number} code Unit code.\n * @return {Units} Units.\n */\nexport function fromCode(code) {\n return unitByCode[code];\n}\n/**\n * Meters per unit lookup table.\n * @const\n * @type {Object}\n * @api\n */\nexport var METERS_PER_UNIT = {};\n// use the radius of the Normal sphere\nMETERS_PER_UNIT[Units.RADIANS] = 6370997 / (2 * Math.PI);\nMETERS_PER_UNIT[Units.DEGREES] = (2 * Math.PI * 6370997) / 360;\nMETERS_PER_UNIT[Units.FEET] = 0.3048;\nMETERS_PER_UNIT[Units.METERS] = 1;\nMETERS_PER_UNIT[Units.USFEET] = 1200 / 3937;\nexport default Units;\n//# sourceMappingURL=Units.js.map","/**\n * @module ol/proj/Projection\n */\nimport { METERS_PER_UNIT } from './Units.js';\n/**\n * @typedef {Object} Options\n * @property {string} code The SRS identifier code, e.g. `EPSG:4326`.\n * @property {import(\"./Units.js\").default|string} [units] Units. Required unless a\n * proj4 projection is defined for `code`.\n * @property {import(\"../extent.js\").Extent} [extent] The validity extent for the SRS.\n * @property {string} [axisOrientation='enu'] The axis orientation as specified in Proj4.\n * @property {boolean} [global=false] Whether the projection is valid for the whole globe.\n * @property {number} [metersPerUnit] The meters per unit for the SRS.\n * If not provided, the `units` are used to get the meters per unit from the {@link module:ol/proj/Units~METERS_PER_UNIT}\n * lookup table.\n * @property {import(\"../extent.js\").Extent} [worldExtent] The world extent for the SRS.\n * @property {function(number, import(\"../coordinate.js\").Coordinate):number} [getPointResolution]\n * Function to determine resolution at a point. The function is called with a\n * `number` view resolution and a {@link module:ol/coordinate~Coordinate Coordinate} as arguments, and returns\n * the `number` resolution in projection units at the passed coordinate. If this is `undefined`,\n * the default {@link module:ol/proj.getPointResolution getPointResolution()} function will be used.\n */\n/**\n * @classdesc\n * Projection definition class. One of these is created for each projection\n * supported in the application and stored in the {@link module:ol/proj} namespace.\n * You can use these in applications, but this is not required, as API params\n * and options use {@link module:ol/proj~ProjectionLike} which means the simple string\n * code will suffice.\n *\n * You can use {@link module:ol/proj.get} to retrieve the object for a particular\n * projection.\n *\n * The library includes definitions for `EPSG:4326` and `EPSG:3857`, together\n * with the following aliases:\n * * `EPSG:4326`: CRS:84, urn:ogc:def:crs:EPSG:6.6:4326,\n * urn:ogc:def:crs:OGC:1.3:CRS84, urn:ogc:def:crs:OGC:2:84,\n * http://www.opengis.net/gml/srs/epsg.xml#4326,\n * urn:x-ogc:def:crs:EPSG:4326\n * * `EPSG:3857`: EPSG:102100, EPSG:102113, EPSG:900913,\n * urn:ogc:def:crs:EPSG:6.18:3:3857,\n * http://www.opengis.net/gml/srs/epsg.xml#3857\n *\n * If you use [proj4js](https://github.com/proj4js/proj4js), aliases can\n * be added using `proj4.defs()`. After all required projection definitions are\n * added, call the {@link module:ol/proj/proj4.register} function.\n *\n * @api\n */\nvar Projection = /** @class */ (function () {\n /**\n * @param {Options} options Projection options.\n */\n function Projection(options) {\n /**\n * @private\n * @type {string}\n */\n this.code_ = options.code;\n /**\n * Units of projected coordinates. When set to `TILE_PIXELS`, a\n * `this.extent_` and `this.worldExtent_` must be configured properly for each\n * tile.\n * @private\n * @type {import(\"./Units.js\").default}\n */\n this.units_ = /** @type {import(\"./Units.js\").default} */ (options.units);\n /**\n * Validity extent of the projection in projected coordinates. For projections\n * with `TILE_PIXELS` units, this is the extent of the tile in\n * tile pixel space.\n * @private\n * @type {import(\"../extent.js\").Extent}\n */\n this.extent_ = options.extent !== undefined ? options.extent : null;\n /**\n * Extent of the world in EPSG:4326. For projections with\n * `TILE_PIXELS` units, this is the extent of the tile in\n * projected coordinate space.\n * @private\n * @type {import(\"../extent.js\").Extent}\n */\n this.worldExtent_ =\n options.worldExtent !== undefined ? options.worldExtent : null;\n /**\n * @private\n * @type {string}\n */\n this.axisOrientation_ =\n options.axisOrientation !== undefined ? options.axisOrientation : 'enu';\n /**\n * @private\n * @type {boolean}\n */\n this.global_ = options.global !== undefined ? options.global : false;\n /**\n * @private\n * @type {boolean}\n */\n this.canWrapX_ = !!(this.global_ && this.extent_);\n /**\n * @private\n * @type {function(number, import(\"../coordinate.js\").Coordinate):number|undefined}\n */\n this.getPointResolutionFunc_ = options.getPointResolution;\n /**\n * @private\n * @type {import(\"../tilegrid/TileGrid.js\").default}\n */\n this.defaultTileGrid_ = null;\n /**\n * @private\n * @type {number|undefined}\n */\n this.metersPerUnit_ = options.metersPerUnit;\n }\n /**\n * @return {boolean} The projection is suitable for wrapping the x-axis\n */\n Projection.prototype.canWrapX = function () {\n return this.canWrapX_;\n };\n /**\n * Get the code for this projection, e.g. 'EPSG:4326'.\n * @return {string} Code.\n * @api\n */\n Projection.prototype.getCode = function () {\n return this.code_;\n };\n /**\n * Get the validity extent for this projection.\n * @return {import(\"../extent.js\").Extent} Extent.\n * @api\n */\n Projection.prototype.getExtent = function () {\n return this.extent_;\n };\n /**\n * Get the units of this projection.\n * @return {import(\"./Units.js\").default} Units.\n * @api\n */\n Projection.prototype.getUnits = function () {\n return this.units_;\n };\n /**\n * Get the amount of meters per unit of this projection. If the projection is\n * not configured with `metersPerUnit` or a units identifier, the return is\n * `undefined`.\n * @return {number|undefined} Meters.\n * @api\n */\n Projection.prototype.getMetersPerUnit = function () {\n return this.metersPerUnit_ || METERS_PER_UNIT[this.units_];\n };\n /**\n * Get the world extent for this projection.\n * @return {import(\"../extent.js\").Extent} Extent.\n * @api\n */\n Projection.prototype.getWorldExtent = function () {\n return this.worldExtent_;\n };\n /**\n * Get the axis orientation of this projection.\n * Example values are:\n * enu - the default easting, northing, elevation.\n * neu - northing, easting, up - useful for \"lat/long\" geographic coordinates,\n * or south orientated transverse mercator.\n * wnu - westing, northing, up - some planetary coordinate systems have\n * \"west positive\" coordinate systems\n * @return {string} Axis orientation.\n * @api\n */\n Projection.prototype.getAxisOrientation = function () {\n return this.axisOrientation_;\n };\n /**\n * Is this projection a global projection which spans the whole world?\n * @return {boolean} Whether the projection is global.\n * @api\n */\n Projection.prototype.isGlobal = function () {\n return this.global_;\n };\n /**\n * Set if the projection is a global projection which spans the whole world\n * @param {boolean} global Whether the projection is global.\n * @api\n */\n Projection.prototype.setGlobal = function (global) {\n this.global_ = global;\n this.canWrapX_ = !!(global && this.extent_);\n };\n /**\n * @return {import(\"../tilegrid/TileGrid.js\").default} The default tile grid.\n */\n Projection.prototype.getDefaultTileGrid = function () {\n return this.defaultTileGrid_;\n };\n /**\n * @param {import(\"../tilegrid/TileGrid.js\").default} tileGrid The default tile grid.\n */\n Projection.prototype.setDefaultTileGrid = function (tileGrid) {\n this.defaultTileGrid_ = tileGrid;\n };\n /**\n * Set the validity extent for this projection.\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @api\n */\n Projection.prototype.setExtent = function (extent) {\n this.extent_ = extent;\n this.canWrapX_ = !!(this.global_ && extent);\n };\n /**\n * Set the world extent for this projection.\n * @param {import(\"../extent.js\").Extent} worldExtent World extent\n * [minlon, minlat, maxlon, maxlat].\n * @api\n */\n Projection.prototype.setWorldExtent = function (worldExtent) {\n this.worldExtent_ = worldExtent;\n };\n /**\n * Set the getPointResolution function (see {@link module:ol/proj.getPointResolution}\n * for this projection.\n * @param {function(number, import(\"../coordinate.js\").Coordinate):number} func Function\n * @api\n */\n Projection.prototype.setGetPointResolution = function (func) {\n this.getPointResolutionFunc_ = func;\n };\n /**\n * Get the custom point resolution function for this projection (if set).\n * @return {function(number, import(\"../coordinate.js\").Coordinate):number|undefined} The custom point\n * resolution function (if set).\n */\n Projection.prototype.getPointResolutionFunc = function () {\n return this.getPointResolutionFunc_;\n };\n return Projection;\n}());\nexport default Projection;\n//# sourceMappingURL=Projection.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/proj/epsg3857\n */\nimport Projection from './Projection.js';\nimport Units from './Units.js';\nimport { cosh } from '../math.js';\n/**\n * Radius of WGS84 sphere\n *\n * @const\n * @type {number}\n */\nexport var RADIUS = 6378137;\n/**\n * @const\n * @type {number}\n */\nexport var HALF_SIZE = Math.PI * RADIUS;\n/**\n * @const\n * @type {import(\"../extent.js\").Extent}\n */\nexport var EXTENT = [-HALF_SIZE, -HALF_SIZE, HALF_SIZE, HALF_SIZE];\n/**\n * @const\n * @type {import(\"../extent.js\").Extent}\n */\nexport var WORLD_EXTENT = [-180, -85, 180, 85];\n/**\n * Maximum safe value in y direction\n * @const\n * @type {number}\n */\nexport var MAX_SAFE_Y = RADIUS * Math.log(Math.tan(Math.PI / 2));\n/**\n * @classdesc\n * Projection object for web/spherical Mercator (EPSG:3857).\n */\nvar EPSG3857Projection = /** @class */ (function (_super) {\n __extends(EPSG3857Projection, _super);\n /**\n * @param {string} code Code.\n */\n function EPSG3857Projection(code) {\n return _super.call(this, {\n code: code,\n units: Units.METERS,\n extent: EXTENT,\n global: true,\n worldExtent: WORLD_EXTENT,\n getPointResolution: function (resolution, point) {\n return resolution / cosh(point[1] / RADIUS);\n },\n }) || this;\n }\n return EPSG3857Projection;\n}(Projection));\n/**\n * Projections equal to EPSG:3857.\n *\n * @const\n * @type {Array}\n */\nexport var PROJECTIONS = [\n new EPSG3857Projection('EPSG:3857'),\n new EPSG3857Projection('EPSG:102100'),\n new EPSG3857Projection('EPSG:102113'),\n new EPSG3857Projection('EPSG:900913'),\n new EPSG3857Projection('http://www.opengis.net/def/crs/EPSG/0/3857'),\n new EPSG3857Projection('http://www.opengis.net/gml/srs/epsg.xml#3857'),\n];\n/**\n * Transformation from EPSG:4326 to EPSG:3857.\n *\n * @param {Array} input Input array of coordinate values.\n * @param {Array} [opt_output] Output array of coordinate values.\n * @param {number} [opt_dimension] Dimension (default is `2`).\n * @return {Array} Output array of coordinate values.\n */\nexport function fromEPSG4326(input, opt_output, opt_dimension) {\n var length = input.length;\n var dimension = opt_dimension > 1 ? opt_dimension : 2;\n var output = opt_output;\n if (output === undefined) {\n if (dimension > 2) {\n // preserve values beyond second dimension\n output = input.slice();\n }\n else {\n output = new Array(length);\n }\n }\n for (var i = 0; i < length; i += dimension) {\n output[i] = (HALF_SIZE * input[i]) / 180;\n var y = RADIUS * Math.log(Math.tan((Math.PI * (+input[i + 1] + 90)) / 360));\n if (y > MAX_SAFE_Y) {\n y = MAX_SAFE_Y;\n }\n else if (y < -MAX_SAFE_Y) {\n y = -MAX_SAFE_Y;\n }\n output[i + 1] = y;\n }\n return output;\n}\n/**\n * Transformation from EPSG:3857 to EPSG:4326.\n *\n * @param {Array} input Input array of coordinate values.\n * @param {Array} [opt_output] Output array of coordinate values.\n * @param {number} [opt_dimension] Dimension (default is `2`).\n * @return {Array} Output array of coordinate values.\n */\nexport function toEPSG4326(input, opt_output, opt_dimension) {\n var length = input.length;\n var dimension = opt_dimension > 1 ? opt_dimension : 2;\n var output = opt_output;\n if (output === undefined) {\n if (dimension > 2) {\n // preserve values beyond second dimension\n output = input.slice();\n }\n else {\n output = new Array(length);\n }\n }\n for (var i = 0; i < length; i += dimension) {\n output[i] = (180 * input[i]) / HALF_SIZE;\n output[i + 1] =\n (360 * Math.atan(Math.exp(input[i + 1] / RADIUS))) / Math.PI - 90;\n }\n return output;\n}\n//# sourceMappingURL=epsg3857.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/proj/epsg4326\n */\nimport Projection from './Projection.js';\nimport Units from './Units.js';\n/**\n * Semi-major radius of the WGS84 ellipsoid.\n *\n * @const\n * @type {number}\n */\nexport var RADIUS = 6378137;\n/**\n * Extent of the EPSG:4326 projection which is the whole world.\n *\n * @const\n * @type {import(\"../extent.js\").Extent}\n */\nexport var EXTENT = [-180, -90, 180, 90];\n/**\n * @const\n * @type {number}\n */\nexport var METERS_PER_UNIT = (Math.PI * RADIUS) / 180;\n/**\n * @classdesc\n * Projection object for WGS84 geographic coordinates (EPSG:4326).\n *\n * Note that OpenLayers does not strictly comply with the EPSG definition.\n * The EPSG registry defines 4326 as a CRS for Latitude,Longitude (y,x).\n * OpenLayers treats EPSG:4326 as a pseudo-projection, with x,y coordinates.\n */\nvar EPSG4326Projection = /** @class */ (function (_super) {\n __extends(EPSG4326Projection, _super);\n /**\n * @param {string} code Code.\n * @param {string} [opt_axisOrientation] Axis orientation.\n */\n function EPSG4326Projection(code, opt_axisOrientation) {\n return _super.call(this, {\n code: code,\n units: Units.DEGREES,\n extent: EXTENT,\n axisOrientation: opt_axisOrientation,\n global: true,\n metersPerUnit: METERS_PER_UNIT,\n worldExtent: EXTENT,\n }) || this;\n }\n return EPSG4326Projection;\n}(Projection));\n/**\n * Projections equal to EPSG:4326.\n *\n * @const\n * @type {Array}\n */\nexport var PROJECTIONS = [\n new EPSG4326Projection('CRS:84'),\n new EPSG4326Projection('EPSG:4326', 'neu'),\n new EPSG4326Projection('urn:ogc:def:crs:OGC:1.3:CRS84'),\n new EPSG4326Projection('urn:ogc:def:crs:OGC:2:84'),\n new EPSG4326Projection('http://www.opengis.net/def/crs/OGC/1.3/CRS84', 'neu'),\n new EPSG4326Projection('http://www.opengis.net/gml/srs/epsg.xml#4326', 'neu'),\n new EPSG4326Projection('http://www.opengis.net/def/crs/EPSG/0/4326', 'neu'),\n];\n//# sourceMappingURL=epsg4326.js.map","/**\n * @module ol/proj/projections\n */\n/**\n * @type {Object}\n */\nvar cache = {};\n/**\n * Clear the projections cache.\n */\nexport function clear() {\n cache = {};\n}\n/**\n * Get a cached projection by code.\n * @param {string} code The code for the projection.\n * @return {import(\"./Projection.js\").default} The projection (if cached).\n */\nexport function get(code) {\n return (cache[code] ||\n cache[code.replace(/urn:(x-)?ogc:def:crs:EPSG:(.*:)?(\\w+)$/, 'EPSG:$3')] ||\n null);\n}\n/**\n * Add a projection to the cache.\n * @param {string} code The projection code.\n * @param {import(\"./Projection.js\").default} projection The projection to cache.\n */\nexport function add(code, projection) {\n cache[code] = projection;\n}\n//# sourceMappingURL=projections.js.map","/**\n * @module ol/proj/transforms\n */\nimport { isEmpty } from '../obj.js';\n/**\n * @private\n * @type {!Object>}\n */\nvar transforms = {};\n/**\n * Clear the transform cache.\n */\nexport function clear() {\n transforms = {};\n}\n/**\n * Registers a conversion function to convert coordinates from the source\n * projection to the destination projection.\n *\n * @param {import(\"./Projection.js\").default} source Source.\n * @param {import(\"./Projection.js\").default} destination Destination.\n * @param {import(\"../proj.js\").TransformFunction} transformFn Transform.\n */\nexport function add(source, destination, transformFn) {\n var sourceCode = source.getCode();\n var destinationCode = destination.getCode();\n if (!(sourceCode in transforms)) {\n transforms[sourceCode] = {};\n }\n transforms[sourceCode][destinationCode] = transformFn;\n}\n/**\n * Unregisters the conversion function to convert coordinates from the source\n * projection to the destination projection. This method is used to clean up\n * cached transforms during testing.\n *\n * @param {import(\"./Projection.js\").default} source Source projection.\n * @param {import(\"./Projection.js\").default} destination Destination projection.\n * @return {import(\"../proj.js\").TransformFunction} transformFn The unregistered transform.\n */\nexport function remove(source, destination) {\n var sourceCode = source.getCode();\n var destinationCode = destination.getCode();\n var transform = transforms[sourceCode][destinationCode];\n delete transforms[sourceCode][destinationCode];\n if (isEmpty(transforms[sourceCode])) {\n delete transforms[sourceCode];\n }\n return transform;\n}\n/**\n * Get a transform given a source code and a destination code.\n * @param {string} sourceCode The code for the source projection.\n * @param {string} destinationCode The code for the destination projection.\n * @return {import(\"../proj.js\").TransformFunction|undefined} The transform function (if found).\n */\nexport function get(sourceCode, destinationCode) {\n var transform;\n if (sourceCode in transforms && destinationCode in transforms[sourceCode]) {\n transform = transforms[sourceCode][destinationCode];\n }\n return transform;\n}\n//# sourceMappingURL=transforms.js.map","/**\n * @module ol/extent/Corner\n */\n/**\n * Extent corner.\n * @enum {string}\n */\nexport default {\n BOTTOM_LEFT: 'bottom-left',\n BOTTOM_RIGHT: 'bottom-right',\n TOP_LEFT: 'top-left',\n TOP_RIGHT: 'top-right',\n};\n//# sourceMappingURL=Corner.js.map","/**\n * @module ol/extent\n */\nimport Corner from './extent/Corner.js';\nimport Relationship from './extent/Relationship.js';\nimport { assert } from './asserts.js';\n/**\n * An array of numbers representing an extent: `[minx, miny, maxx, maxy]`.\n * @typedef {Array} Extent\n * @api\n */\n/**\n * Build an extent that includes all given coordinates.\n *\n * @param {Array} coordinates Coordinates.\n * @return {Extent} Bounding extent.\n * @api\n */\nexport function boundingExtent(coordinates) {\n var extent = createEmpty();\n for (var i = 0, ii = coordinates.length; i < ii; ++i) {\n extendCoordinate(extent, coordinates[i]);\n }\n return extent;\n}\n/**\n * @param {Array} xs Xs.\n * @param {Array} ys Ys.\n * @param {Extent} [opt_extent] Destination extent.\n * @private\n * @return {Extent} Extent.\n */\nfunction _boundingExtentXYs(xs, ys, opt_extent) {\n var minX = Math.min.apply(null, xs);\n var minY = Math.min.apply(null, ys);\n var maxX = Math.max.apply(null, xs);\n var maxY = Math.max.apply(null, ys);\n return createOrUpdate(minX, minY, maxX, maxY, opt_extent);\n}\n/**\n * Return extent increased by the provided value.\n * @param {Extent} extent Extent.\n * @param {number} value The amount by which the extent should be buffered.\n * @param {Extent} [opt_extent] Extent.\n * @return {Extent} Extent.\n * @api\n */\nexport function buffer(extent, value, opt_extent) {\n if (opt_extent) {\n opt_extent[0] = extent[0] - value;\n opt_extent[1] = extent[1] - value;\n opt_extent[2] = extent[2] + value;\n opt_extent[3] = extent[3] + value;\n return opt_extent;\n }\n else {\n return [\n extent[0] - value,\n extent[1] - value,\n extent[2] + value,\n extent[3] + value,\n ];\n }\n}\n/**\n * Creates a clone of an extent.\n *\n * @param {Extent} extent Extent to clone.\n * @param {Extent} [opt_extent] Extent.\n * @return {Extent} The clone.\n */\nexport function clone(extent, opt_extent) {\n if (opt_extent) {\n opt_extent[0] = extent[0];\n opt_extent[1] = extent[1];\n opt_extent[2] = extent[2];\n opt_extent[3] = extent[3];\n return opt_extent;\n }\n else {\n return extent.slice();\n }\n}\n/**\n * @param {Extent} extent Extent.\n * @param {number} x X.\n * @param {number} y Y.\n * @return {number} Closest squared distance.\n */\nexport function closestSquaredDistanceXY(extent, x, y) {\n var dx, dy;\n if (x < extent[0]) {\n dx = extent[0] - x;\n }\n else if (extent[2] < x) {\n dx = x - extent[2];\n }\n else {\n dx = 0;\n }\n if (y < extent[1]) {\n dy = extent[1] - y;\n }\n else if (extent[3] < y) {\n dy = y - extent[3];\n }\n else {\n dy = 0;\n }\n return dx * dx + dy * dy;\n}\n/**\n * Check if the passed coordinate is contained or on the edge of the extent.\n *\n * @param {Extent} extent Extent.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate.\n * @return {boolean} The coordinate is contained in the extent.\n * @api\n */\nexport function containsCoordinate(extent, coordinate) {\n return containsXY(extent, coordinate[0], coordinate[1]);\n}\n/**\n * Check if one extent contains another.\n *\n * An extent is deemed contained if it lies completely within the other extent,\n * including if they share one or more edges.\n *\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @return {boolean} The second extent is contained by or on the edge of the\n * first.\n * @api\n */\nexport function containsExtent(extent1, extent2) {\n return (extent1[0] <= extent2[0] &&\n extent2[2] <= extent1[2] &&\n extent1[1] <= extent2[1] &&\n extent2[3] <= extent1[3]);\n}\n/**\n * Check if the passed coordinate is contained or on the edge of the extent.\n *\n * @param {Extent} extent Extent.\n * @param {number} x X coordinate.\n * @param {number} y Y coordinate.\n * @return {boolean} The x, y values are contained in the extent.\n * @api\n */\nexport function containsXY(extent, x, y) {\n return extent[0] <= x && x <= extent[2] && extent[1] <= y && y <= extent[3];\n}\n/**\n * Get the relationship between a coordinate and extent.\n * @param {Extent} extent The extent.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate The coordinate.\n * @return {import(\"./extent/Relationship.js\").default} The relationship (bitwise compare with\n * import(\"./extent/Relationship.js\").Relationship).\n */\nexport function coordinateRelationship(extent, coordinate) {\n var minX = extent[0];\n var minY = extent[1];\n var maxX = extent[2];\n var maxY = extent[3];\n var x = coordinate[0];\n var y = coordinate[1];\n var relationship = Relationship.UNKNOWN;\n if (x < minX) {\n relationship = relationship | Relationship.LEFT;\n }\n else if (x > maxX) {\n relationship = relationship | Relationship.RIGHT;\n }\n if (y < minY) {\n relationship = relationship | Relationship.BELOW;\n }\n else if (y > maxY) {\n relationship = relationship | Relationship.ABOVE;\n }\n if (relationship === Relationship.UNKNOWN) {\n relationship = Relationship.INTERSECTING;\n }\n return relationship;\n}\n/**\n * Create an empty extent.\n * @return {Extent} Empty extent.\n * @api\n */\nexport function createEmpty() {\n return [Infinity, Infinity, -Infinity, -Infinity];\n}\n/**\n * Create a new extent or update the provided extent.\n * @param {number} minX Minimum X.\n * @param {number} minY Minimum Y.\n * @param {number} maxX Maximum X.\n * @param {number} maxY Maximum Y.\n * @param {Extent} [opt_extent] Destination extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdate(minX, minY, maxX, maxY, opt_extent) {\n if (opt_extent) {\n opt_extent[0] = minX;\n opt_extent[1] = minY;\n opt_extent[2] = maxX;\n opt_extent[3] = maxY;\n return opt_extent;\n }\n else {\n return [minX, minY, maxX, maxY];\n }\n}\n/**\n * Create a new empty extent or make the provided one empty.\n * @param {Extent} [opt_extent] Extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdateEmpty(opt_extent) {\n return createOrUpdate(Infinity, Infinity, -Infinity, -Infinity, opt_extent);\n}\n/**\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate.\n * @param {Extent} [opt_extent] Extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdateFromCoordinate(coordinate, opt_extent) {\n var x = coordinate[0];\n var y = coordinate[1];\n return createOrUpdate(x, y, x, y, opt_extent);\n}\n/**\n * @param {Array} coordinates Coordinates.\n * @param {Extent} [opt_extent] Extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdateFromCoordinates(coordinates, opt_extent) {\n var extent = createOrUpdateEmpty(opt_extent);\n return extendCoordinates(extent, coordinates);\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {Extent} [opt_extent] Extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdateFromFlatCoordinates(flatCoordinates, offset, end, stride, opt_extent) {\n var extent = createOrUpdateEmpty(opt_extent);\n return extendFlatCoordinates(extent, flatCoordinates, offset, end, stride);\n}\n/**\n * @param {Array>} rings Rings.\n * @param {Extent} [opt_extent] Extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdateFromRings(rings, opt_extent) {\n var extent = createOrUpdateEmpty(opt_extent);\n return extendRings(extent, rings);\n}\n/**\n * Determine if two extents are equivalent.\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @return {boolean} The two extents are equivalent.\n * @api\n */\nexport function equals(extent1, extent2) {\n return (extent1[0] == extent2[0] &&\n extent1[2] == extent2[2] &&\n extent1[1] == extent2[1] &&\n extent1[3] == extent2[3]);\n}\n/**\n * Determine if two extents are approximately equivalent.\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @param {number} tolerance Tolerance in extent coordinate units.\n * @return {boolean} The two extents differ by less than the tolerance.\n */\nexport function approximatelyEquals(extent1, extent2, tolerance) {\n return (Math.abs(extent1[0] - extent2[0]) < tolerance &&\n Math.abs(extent1[2] - extent2[2]) < tolerance &&\n Math.abs(extent1[1] - extent2[1]) < tolerance &&\n Math.abs(extent1[3] - extent2[3]) < tolerance);\n}\n/**\n * Modify an extent to include another extent.\n * @param {Extent} extent1 The extent to be modified.\n * @param {Extent} extent2 The extent that will be included in the first.\n * @return {Extent} A reference to the first (extended) extent.\n * @api\n */\nexport function extend(extent1, extent2) {\n if (extent2[0] < extent1[0]) {\n extent1[0] = extent2[0];\n }\n if (extent2[2] > extent1[2]) {\n extent1[2] = extent2[2];\n }\n if (extent2[1] < extent1[1]) {\n extent1[1] = extent2[1];\n }\n if (extent2[3] > extent1[3]) {\n extent1[3] = extent2[3];\n }\n return extent1;\n}\n/**\n * @param {Extent} extent Extent.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate.\n */\nexport function extendCoordinate(extent, coordinate) {\n if (coordinate[0] < extent[0]) {\n extent[0] = coordinate[0];\n }\n if (coordinate[0] > extent[2]) {\n extent[2] = coordinate[0];\n }\n if (coordinate[1] < extent[1]) {\n extent[1] = coordinate[1];\n }\n if (coordinate[1] > extent[3]) {\n extent[3] = coordinate[1];\n }\n}\n/**\n * @param {Extent} extent Extent.\n * @param {Array} coordinates Coordinates.\n * @return {Extent} Extent.\n */\nexport function extendCoordinates(extent, coordinates) {\n for (var i = 0, ii = coordinates.length; i < ii; ++i) {\n extendCoordinate(extent, coordinates[i]);\n }\n return extent;\n}\n/**\n * @param {Extent} extent Extent.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @return {Extent} Extent.\n */\nexport function extendFlatCoordinates(extent, flatCoordinates, offset, end, stride) {\n for (; offset < end; offset += stride) {\n extendXY(extent, flatCoordinates[offset], flatCoordinates[offset + 1]);\n }\n return extent;\n}\n/**\n * @param {Extent} extent Extent.\n * @param {Array>} rings Rings.\n * @return {Extent} Extent.\n */\nexport function extendRings(extent, rings) {\n for (var i = 0, ii = rings.length; i < ii; ++i) {\n extendCoordinates(extent, rings[i]);\n }\n return extent;\n}\n/**\n * @param {Extent} extent Extent.\n * @param {number} x X.\n * @param {number} y Y.\n */\nexport function extendXY(extent, x, y) {\n extent[0] = Math.min(extent[0], x);\n extent[1] = Math.min(extent[1], y);\n extent[2] = Math.max(extent[2], x);\n extent[3] = Math.max(extent[3], y);\n}\n/**\n * This function calls `callback` for each corner of the extent. If the\n * callback returns a truthy value the function returns that value\n * immediately. Otherwise the function returns `false`.\n * @param {Extent} extent Extent.\n * @param {function(import(\"./coordinate.js\").Coordinate): S} callback Callback.\n * @return {S|boolean} Value.\n * @template S\n */\nexport function forEachCorner(extent, callback) {\n var val;\n val = callback(getBottomLeft(extent));\n if (val) {\n return val;\n }\n val = callback(getBottomRight(extent));\n if (val) {\n return val;\n }\n val = callback(getTopRight(extent));\n if (val) {\n return val;\n }\n val = callback(getTopLeft(extent));\n if (val) {\n return val;\n }\n return false;\n}\n/**\n * Get the size of an extent.\n * @param {Extent} extent Extent.\n * @return {number} Area.\n * @api\n */\nexport function getArea(extent) {\n var area = 0;\n if (!isEmpty(extent)) {\n area = getWidth(extent) * getHeight(extent);\n }\n return area;\n}\n/**\n * Get the bottom left coordinate of an extent.\n * @param {Extent} extent Extent.\n * @return {import(\"./coordinate.js\").Coordinate} Bottom left coordinate.\n * @api\n */\nexport function getBottomLeft(extent) {\n return [extent[0], extent[1]];\n}\n/**\n * Get the bottom right coordinate of an extent.\n * @param {Extent} extent Extent.\n * @return {import(\"./coordinate.js\").Coordinate} Bottom right coordinate.\n * @api\n */\nexport function getBottomRight(extent) {\n return [extent[2], extent[1]];\n}\n/**\n * Get the center coordinate of an extent.\n * @param {Extent} extent Extent.\n * @return {import(\"./coordinate.js\").Coordinate} Center.\n * @api\n */\nexport function getCenter(extent) {\n return [(extent[0] + extent[2]) / 2, (extent[1] + extent[3]) / 2];\n}\n/**\n * Get a corner coordinate of an extent.\n * @param {Extent} extent Extent.\n * @param {import(\"./extent/Corner.js\").default} corner Corner.\n * @return {import(\"./coordinate.js\").Coordinate} Corner coordinate.\n */\nexport function getCorner(extent, corner) {\n var coordinate;\n if (corner === Corner.BOTTOM_LEFT) {\n coordinate = getBottomLeft(extent);\n }\n else if (corner === Corner.BOTTOM_RIGHT) {\n coordinate = getBottomRight(extent);\n }\n else if (corner === Corner.TOP_LEFT) {\n coordinate = getTopLeft(extent);\n }\n else if (corner === Corner.TOP_RIGHT) {\n coordinate = getTopRight(extent);\n }\n else {\n assert(false, 13); // Invalid corner\n }\n return coordinate;\n}\n/**\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @return {number} Enlarged area.\n */\nexport function getEnlargedArea(extent1, extent2) {\n var minX = Math.min(extent1[0], extent2[0]);\n var minY = Math.min(extent1[1], extent2[1]);\n var maxX = Math.max(extent1[2], extent2[2]);\n var maxY = Math.max(extent1[3], extent2[3]);\n return (maxX - minX) * (maxY - minY);\n}\n/**\n * @param {import(\"./coordinate.js\").Coordinate} center Center.\n * @param {number} resolution Resolution.\n * @param {number} rotation Rotation.\n * @param {import(\"./size.js\").Size} size Size.\n * @param {Extent} [opt_extent] Destination extent.\n * @return {Extent} Extent.\n */\nexport function getForViewAndSize(center, resolution, rotation, size, opt_extent) {\n var dx = (resolution * size[0]) / 2;\n var dy = (resolution * size[1]) / 2;\n var cosRotation = Math.cos(rotation);\n var sinRotation = Math.sin(rotation);\n var xCos = dx * cosRotation;\n var xSin = dx * sinRotation;\n var yCos = dy * cosRotation;\n var ySin = dy * sinRotation;\n var x = center[0];\n var y = center[1];\n var x0 = x - xCos + ySin;\n var x1 = x - xCos - ySin;\n var x2 = x + xCos - ySin;\n var x3 = x + xCos + ySin;\n var y0 = y - xSin - yCos;\n var y1 = y - xSin + yCos;\n var y2 = y + xSin + yCos;\n var y3 = y + xSin - yCos;\n return createOrUpdate(Math.min(x0, x1, x2, x3), Math.min(y0, y1, y2, y3), Math.max(x0, x1, x2, x3), Math.max(y0, y1, y2, y3), opt_extent);\n}\n/**\n * Get the height of an extent.\n * @param {Extent} extent Extent.\n * @return {number} Height.\n * @api\n */\nexport function getHeight(extent) {\n return extent[3] - extent[1];\n}\n/**\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @return {number} Intersection area.\n */\nexport function getIntersectionArea(extent1, extent2) {\n var intersection = getIntersection(extent1, extent2);\n return getArea(intersection);\n}\n/**\n * Get the intersection of two extents.\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @param {Extent} [opt_extent] Optional extent to populate with intersection.\n * @return {Extent} Intersecting extent.\n * @api\n */\nexport function getIntersection(extent1, extent2, opt_extent) {\n var intersection = opt_extent ? opt_extent : createEmpty();\n if (intersects(extent1, extent2)) {\n if (extent1[0] > extent2[0]) {\n intersection[0] = extent1[0];\n }\n else {\n intersection[0] = extent2[0];\n }\n if (extent1[1] > extent2[1]) {\n intersection[1] = extent1[1];\n }\n else {\n intersection[1] = extent2[1];\n }\n if (extent1[2] < extent2[2]) {\n intersection[2] = extent1[2];\n }\n else {\n intersection[2] = extent2[2];\n }\n if (extent1[3] < extent2[3]) {\n intersection[3] = extent1[3];\n }\n else {\n intersection[3] = extent2[3];\n }\n }\n else {\n createOrUpdateEmpty(intersection);\n }\n return intersection;\n}\n/**\n * @param {Extent} extent Extent.\n * @return {number} Margin.\n */\nexport function getMargin(extent) {\n return getWidth(extent) + getHeight(extent);\n}\n/**\n * Get the size (width, height) of an extent.\n * @param {Extent} extent The extent.\n * @return {import(\"./size.js\").Size} The extent size.\n * @api\n */\nexport function getSize(extent) {\n return [extent[2] - extent[0], extent[3] - extent[1]];\n}\n/**\n * Get the top left coordinate of an extent.\n * @param {Extent} extent Extent.\n * @return {import(\"./coordinate.js\").Coordinate} Top left coordinate.\n * @api\n */\nexport function getTopLeft(extent) {\n return [extent[0], extent[3]];\n}\n/**\n * Get the top right coordinate of an extent.\n * @param {Extent} extent Extent.\n * @return {import(\"./coordinate.js\").Coordinate} Top right coordinate.\n * @api\n */\nexport function getTopRight(extent) {\n return [extent[2], extent[3]];\n}\n/**\n * Get the width of an extent.\n * @param {Extent} extent Extent.\n * @return {number} Width.\n * @api\n */\nexport function getWidth(extent) {\n return extent[2] - extent[0];\n}\n/**\n * Determine if one extent intersects another.\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent.\n * @return {boolean} The two extents intersect.\n * @api\n */\nexport function intersects(extent1, extent2) {\n return (extent1[0] <= extent2[2] &&\n extent1[2] >= extent2[0] &&\n extent1[1] <= extent2[3] &&\n extent1[3] >= extent2[1]);\n}\n/**\n * Determine if an extent is empty.\n * @param {Extent} extent Extent.\n * @return {boolean} Is empty.\n * @api\n */\nexport function isEmpty(extent) {\n return extent[2] < extent[0] || extent[3] < extent[1];\n}\n/**\n * @param {Extent} extent Extent.\n * @param {Extent} [opt_extent] Extent.\n * @return {Extent} Extent.\n */\nexport function returnOrUpdate(extent, opt_extent) {\n if (opt_extent) {\n opt_extent[0] = extent[0];\n opt_extent[1] = extent[1];\n opt_extent[2] = extent[2];\n opt_extent[3] = extent[3];\n return opt_extent;\n }\n else {\n return extent;\n }\n}\n/**\n * @param {Extent} extent Extent.\n * @param {number} value Value.\n */\nexport function scaleFromCenter(extent, value) {\n var deltaX = ((extent[2] - extent[0]) / 2) * (value - 1);\n var deltaY = ((extent[3] - extent[1]) / 2) * (value - 1);\n extent[0] -= deltaX;\n extent[2] += deltaX;\n extent[1] -= deltaY;\n extent[3] += deltaY;\n}\n/**\n * Determine if the segment between two coordinates intersects (crosses,\n * touches, or is contained by) the provided extent.\n * @param {Extent} extent The extent.\n * @param {import(\"./coordinate.js\").Coordinate} start Segment start coordinate.\n * @param {import(\"./coordinate.js\").Coordinate} end Segment end coordinate.\n * @return {boolean} The segment intersects the extent.\n */\nexport function intersectsSegment(extent, start, end) {\n var intersects = false;\n var startRel = coordinateRelationship(extent, start);\n var endRel = coordinateRelationship(extent, end);\n if (startRel === Relationship.INTERSECTING ||\n endRel === Relationship.INTERSECTING) {\n intersects = true;\n }\n else {\n var minX = extent[0];\n var minY = extent[1];\n var maxX = extent[2];\n var maxY = extent[3];\n var startX = start[0];\n var startY = start[1];\n var endX = end[0];\n var endY = end[1];\n var slope = (endY - startY) / (endX - startX);\n var x = void 0, y = void 0;\n if (!!(endRel & Relationship.ABOVE) && !(startRel & Relationship.ABOVE)) {\n // potentially intersects top\n x = endX - (endY - maxY) / slope;\n intersects = x >= minX && x <= maxX;\n }\n if (!intersects &&\n !!(endRel & Relationship.RIGHT) &&\n !(startRel & Relationship.RIGHT)) {\n // potentially intersects right\n y = endY - (endX - maxX) * slope;\n intersects = y >= minY && y <= maxY;\n }\n if (!intersects &&\n !!(endRel & Relationship.BELOW) &&\n !(startRel & Relationship.BELOW)) {\n // potentially intersects bottom\n x = endX - (endY - minY) / slope;\n intersects = x >= minX && x <= maxX;\n }\n if (!intersects &&\n !!(endRel & Relationship.LEFT) &&\n !(startRel & Relationship.LEFT)) {\n // potentially intersects left\n y = endY - (endX - minX) * slope;\n intersects = y >= minY && y <= maxY;\n }\n }\n return intersects;\n}\n/**\n * Apply a transform function to the extent.\n * @param {Extent} extent Extent.\n * @param {import(\"./proj.js\").TransformFunction} transformFn Transform function.\n * Called with `[minX, minY, maxX, maxY]` extent coordinates.\n * @param {Extent} [opt_extent] Destination extent.\n * @param {number} [opt_stops] Number of stops per side used for the transform.\n * By default only the corners are used.\n * @return {Extent} Extent.\n * @api\n */\nexport function applyTransform(extent, transformFn, opt_extent, opt_stops) {\n var coordinates = [];\n if (opt_stops > 1) {\n var width = extent[2] - extent[0];\n var height = extent[3] - extent[1];\n for (var i = 0; i < opt_stops; ++i) {\n coordinates.push(extent[0] + (width * i) / opt_stops, extent[1], extent[2], extent[1] + (height * i) / opt_stops, extent[2] - (width * i) / opt_stops, extent[3], extent[0], extent[3] - (height * i) / opt_stops);\n }\n }\n else {\n coordinates = [\n extent[0],\n extent[1],\n extent[2],\n extent[1],\n extent[2],\n extent[3],\n extent[0],\n extent[3],\n ];\n }\n transformFn(coordinates, coordinates, 2);\n var xs = [];\n var ys = [];\n for (var i = 0, l = coordinates.length; i < l; i += 2) {\n xs.push(coordinates[i]);\n ys.push(coordinates[i + 1]);\n }\n return _boundingExtentXYs(xs, ys, opt_extent);\n}\n/**\n * Modifies the provided extent in-place to be within the real world\n * extent.\n *\n * @param {Extent} extent Extent.\n * @param {import(\"./proj/Projection.js\").default} projection Projection\n * @return {Extent} The extent within the real world extent.\n */\nexport function wrapX(extent, projection) {\n var projectionExtent = projection.getExtent();\n var center = getCenter(extent);\n if (projection.canWrapX() &&\n (center[0] < projectionExtent[0] || center[0] >= projectionExtent[2])) {\n var worldWidth = getWidth(projectionExtent);\n var worldsAway = Math.floor((center[0] - projectionExtent[0]) / worldWidth);\n var offset = worldsAway * worldWidth;\n extent[0] -= offset;\n extent[2] -= offset;\n }\n return extent;\n}\n//# sourceMappingURL=extent.js.map","/**\n * @module ol/extent/Relationship\n */\n/**\n * Relationship to an extent.\n * @enum {number}\n */\nexport default {\n UNKNOWN: 0,\n INTERSECTING: 1,\n ABOVE: 2,\n RIGHT: 4,\n BELOW: 8,\n LEFT: 16,\n};\n//# sourceMappingURL=Relationship.js.map","/**\n * @module ol/sphere\n */\nimport GeometryType from './geom/GeometryType.js';\nimport { toDegrees, toRadians } from './math.js';\n/**\n * Object literal with options for the {@link getLength} or {@link getArea}\n * functions.\n * @typedef {Object} SphereMetricOptions\n * @property {import(\"./proj.js\").ProjectionLike} [projection='EPSG:3857']\n * Projection of the geometry. By default, the geometry is assumed to be in\n * Web Mercator.\n * @property {number} [radius=6371008.8] Sphere radius. By default, the\n * [mean Earth radius](https://en.wikipedia.org/wiki/Earth_radius#Mean_radius)\n * for the WGS84 ellipsoid is used.\n */\n/**\n * The mean Earth radius (1/3 * (2a + b)) for the WGS84 ellipsoid.\n * https://en.wikipedia.org/wiki/Earth_radius#Mean_radius\n * @type {number}\n */\nexport var DEFAULT_RADIUS = 6371008.8;\n/**\n * Get the great circle distance (in meters) between two geographic coordinates.\n * @param {Array} c1 Starting coordinate.\n * @param {Array} c2 Ending coordinate.\n * @param {number} [opt_radius] The sphere radius to use. Defaults to the Earth's\n * mean radius using the WGS84 ellipsoid.\n * @return {number} The great circle distance between the points (in meters).\n * @api\n */\nexport function getDistance(c1, c2, opt_radius) {\n var radius = opt_radius || DEFAULT_RADIUS;\n var lat1 = toRadians(c1[1]);\n var lat2 = toRadians(c2[1]);\n var deltaLatBy2 = (lat2 - lat1) / 2;\n var deltaLonBy2 = toRadians(c2[0] - c1[0]) / 2;\n var a = Math.sin(deltaLatBy2) * Math.sin(deltaLatBy2) +\n Math.sin(deltaLonBy2) *\n Math.sin(deltaLonBy2) *\n Math.cos(lat1) *\n Math.cos(lat2);\n return 2 * radius * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n}\n/**\n * Get the cumulative great circle length of linestring coordinates (geographic).\n * @param {Array} coordinates Linestring coordinates.\n * @param {number} radius The sphere radius to use.\n * @return {number} The length (in meters).\n */\nfunction getLengthInternal(coordinates, radius) {\n var length = 0;\n for (var i = 0, ii = coordinates.length; i < ii - 1; ++i) {\n length += getDistance(coordinates[i], coordinates[i + 1], radius);\n }\n return length;\n}\n/**\n * Get the spherical length of a geometry. This length is the sum of the\n * great circle distances between coordinates. For polygons, the length is\n * the sum of all rings. For points, the length is zero. For multi-part\n * geometries, the length is the sum of the length of each part.\n * @param {import(\"./geom/Geometry.js\").default} geometry A geometry.\n * @param {SphereMetricOptions} [opt_options] Options for the\n * length calculation. By default, geometries are assumed to be in 'EPSG:3857'.\n * You can change this by providing a `projection` option.\n * @return {number} The spherical length (in meters).\n * @api\n */\nexport function getLength(geometry, opt_options) {\n var options = opt_options || {};\n var radius = options.radius || DEFAULT_RADIUS;\n var projection = options.projection || 'EPSG:3857';\n var type = geometry.getType();\n if (type !== GeometryType.GEOMETRY_COLLECTION) {\n geometry = geometry.clone().transform(projection, 'EPSG:4326');\n }\n var length = 0;\n var coordinates, coords, i, ii, j, jj;\n switch (type) {\n case GeometryType.POINT:\n case GeometryType.MULTI_POINT: {\n break;\n }\n case GeometryType.LINE_STRING:\n case GeometryType.LINEAR_RING: {\n coordinates = /** @type {import(\"./geom/SimpleGeometry.js\").default} */ (geometry).getCoordinates();\n length = getLengthInternal(coordinates, radius);\n break;\n }\n case GeometryType.MULTI_LINE_STRING:\n case GeometryType.POLYGON: {\n coordinates = /** @type {import(\"./geom/SimpleGeometry.js\").default} */ (geometry).getCoordinates();\n for (i = 0, ii = coordinates.length; i < ii; ++i) {\n length += getLengthInternal(coordinates[i], radius);\n }\n break;\n }\n case GeometryType.MULTI_POLYGON: {\n coordinates = /** @type {import(\"./geom/SimpleGeometry.js\").default} */ (geometry).getCoordinates();\n for (i = 0, ii = coordinates.length; i < ii; ++i) {\n coords = coordinates[i];\n for (j = 0, jj = coords.length; j < jj; ++j) {\n length += getLengthInternal(coords[j], radius);\n }\n }\n break;\n }\n case GeometryType.GEOMETRY_COLLECTION: {\n var geometries = \n /** @type {import(\"./geom/GeometryCollection.js\").default} */ (geometry).getGeometries();\n for (i = 0, ii = geometries.length; i < ii; ++i) {\n length += getLength(geometries[i], opt_options);\n }\n break;\n }\n default: {\n throw new Error('Unsupported geometry type: ' + type);\n }\n }\n return length;\n}\n/**\n * Returns the spherical area for a list of coordinates.\n *\n * [Reference](https://trs.jpl.nasa.gov/handle/2014/40409)\n * Robert. G. Chamberlain and William H. Duquette, \"Some Algorithms for\n * Polygons on a Sphere\", JPL Publication 07-03, Jet Propulsion\n * Laboratory, Pasadena, CA, June 2007\n *\n * @param {Array} coordinates List of coordinates of a linear\n * ring. If the ring is oriented clockwise, the area will be positive,\n * otherwise it will be negative.\n * @param {number} radius The sphere radius.\n * @return {number} Area (in square meters).\n */\nfunction getAreaInternal(coordinates, radius) {\n var area = 0;\n var len = coordinates.length;\n var x1 = coordinates[len - 1][0];\n var y1 = coordinates[len - 1][1];\n for (var i = 0; i < len; i++) {\n var x2 = coordinates[i][0];\n var y2 = coordinates[i][1];\n area +=\n toRadians(x2 - x1) *\n (2 + Math.sin(toRadians(y1)) + Math.sin(toRadians(y2)));\n x1 = x2;\n y1 = y2;\n }\n return (area * radius * radius) / 2.0;\n}\n/**\n * Get the spherical area of a geometry. This is the area (in meters) assuming\n * that polygon edges are segments of great circles on a sphere.\n * @param {import(\"./geom/Geometry.js\").default} geometry A geometry.\n * @param {SphereMetricOptions} [opt_options] Options for the area\n * calculation. By default, geometries are assumed to be in 'EPSG:3857'.\n * You can change this by providing a `projection` option.\n * @return {number} The spherical area (in square meters).\n * @api\n */\nexport function getArea(geometry, opt_options) {\n var options = opt_options || {};\n var radius = options.radius || DEFAULT_RADIUS;\n var projection = options.projection || 'EPSG:3857';\n var type = geometry.getType();\n if (type !== GeometryType.GEOMETRY_COLLECTION) {\n geometry = geometry.clone().transform(projection, 'EPSG:4326');\n }\n var area = 0;\n var coordinates, coords, i, ii, j, jj;\n switch (type) {\n case GeometryType.POINT:\n case GeometryType.MULTI_POINT:\n case GeometryType.LINE_STRING:\n case GeometryType.MULTI_LINE_STRING:\n case GeometryType.LINEAR_RING: {\n break;\n }\n case GeometryType.POLYGON: {\n coordinates = /** @type {import(\"./geom/Polygon.js\").default} */ (geometry).getCoordinates();\n area = Math.abs(getAreaInternal(coordinates[0], radius));\n for (i = 1, ii = coordinates.length; i < ii; ++i) {\n area -= Math.abs(getAreaInternal(coordinates[i], radius));\n }\n break;\n }\n case GeometryType.MULTI_POLYGON: {\n coordinates = /** @type {import(\"./geom/SimpleGeometry.js\").default} */ (geometry).getCoordinates();\n for (i = 0, ii = coordinates.length; i < ii; ++i) {\n coords = coordinates[i];\n area += Math.abs(getAreaInternal(coords[0], radius));\n for (j = 1, jj = coords.length; j < jj; ++j) {\n area -= Math.abs(getAreaInternal(coords[j], radius));\n }\n }\n break;\n }\n case GeometryType.GEOMETRY_COLLECTION: {\n var geometries = \n /** @type {import(\"./geom/GeometryCollection.js\").default} */ (geometry).getGeometries();\n for (i = 0, ii = geometries.length; i < ii; ++i) {\n area += getArea(geometries[i], opt_options);\n }\n break;\n }\n default: {\n throw new Error('Unsupported geometry type: ' + type);\n }\n }\n return area;\n}\n/**\n * Returns the coordinate at the given distance and bearing from `c1`.\n *\n * @param {import(\"./coordinate.js\").Coordinate} c1 The origin point (`[lon, lat]` in degrees).\n * @param {number} distance The great-circle distance between the origin\n * point and the target point.\n * @param {number} bearing The bearing (in radians).\n * @param {number} [opt_radius] The sphere radius to use. Defaults to the Earth's\n * mean radius using the WGS84 ellipsoid.\n * @return {import(\"./coordinate.js\").Coordinate} The target point.\n */\nexport function offset(c1, distance, bearing, opt_radius) {\n var radius = opt_radius || DEFAULT_RADIUS;\n var lat1 = toRadians(c1[1]);\n var lon1 = toRadians(c1[0]);\n var dByR = distance / radius;\n var lat = Math.asin(Math.sin(lat1) * Math.cos(dByR) +\n Math.cos(lat1) * Math.sin(dByR) * Math.cos(bearing));\n var lon = lon1 +\n Math.atan2(Math.sin(bearing) * Math.sin(dByR) * Math.cos(lat1), Math.cos(dByR) - Math.sin(lat1) * Math.sin(lat));\n return [toDegrees(lon), toDegrees(lat)];\n}\n//# sourceMappingURL=sphere.js.map","/**\n * @module ol/proj\n */\n/**\n * The ol/proj module stores:\n * * a list of {@link module:ol/proj/Projection}\n * objects, one for each projection supported by the application\n * * a list of transform functions needed to convert coordinates in one projection\n * into another.\n *\n * The static functions are the methods used to maintain these.\n * Each transform function can handle not only simple coordinate pairs, but also\n * large arrays of coordinates such as vector geometries.\n *\n * When loaded, the library adds projection objects for EPSG:4326 (WGS84\n * geographic coordinates) and EPSG:3857 (Web or Spherical Mercator, as used\n * for example by Bing Maps or OpenStreetMap), together with the relevant\n * transform functions.\n *\n * Additional transforms may be added by using the http://proj4js.org/\n * library (version 2.2 or later). You can use the full build supplied by\n * Proj4js, or create a custom build to support those projections you need; see\n * the Proj4js website for how to do this. You also need the Proj4js definitions\n * for the required projections. These definitions can be obtained from\n * https://epsg.io/, and are a JS function, so can be loaded in a script\n * tag (as in the examples) or pasted into your application.\n *\n * After all required projection definitions are added to proj4's registry (by\n * using `proj4.defs()`), simply call `register(proj4)` from the `ol/proj/proj4`\n * package. Existing transforms are not changed by this function. See\n * examples/wms-image-custom-proj for an example of this.\n *\n * Additional projection definitions can be registered with `proj4.defs()` any\n * time. Just make sure to call `register(proj4)` again; for example, with user-supplied data where you don't\n * know in advance what projections are needed, you can initially load minimal\n * support and then load whichever are requested.\n *\n * Note that Proj4js does not support projection extents. If you want to add\n * one for creating default tile grids, you can add it after the Projection\n * object has been created with `setExtent`, for example,\n * `get('EPSG:1234').setExtent(extent)`.\n *\n * In addition to Proj4js support, any transform functions can be added with\n * {@link module:ol/proj.addCoordinateTransforms}. To use this, you must first create\n * a {@link module:ol/proj/Projection} object for the new projection and add it with\n * {@link module:ol/proj.addProjection}. You can then add the forward and inverse\n * functions with {@link module:ol/proj.addCoordinateTransforms}. See\n * examples/wms-custom-proj for an example of this.\n *\n * Note that if no transforms are needed and you only need to define the\n * projection, just add a {@link module:ol/proj/Projection} with\n * {@link module:ol/proj.addProjection}. See examples/wms-no-proj for an example of\n * this.\n */\nimport Projection from './proj/Projection.js';\nimport Units, { METERS_PER_UNIT } from './proj/Units.js';\nimport { PROJECTIONS as EPSG3857_PROJECTIONS, fromEPSG4326, toEPSG4326, } from './proj/epsg3857.js';\nimport { PROJECTIONS as EPSG4326_PROJECTIONS } from './proj/epsg4326.js';\nimport { add as addProj, clear as clearProj, get as getProj, } from './proj/projections.js';\nimport { add as addTransformFunc, clear as clearTransformFuncs, get as getTransformFunc, } from './proj/transforms.js';\nimport { applyTransform, getWidth } from './extent.js';\nimport { clamp, modulo } from './math.js';\nimport { getDistance } from './sphere.js';\nimport { getWorldsAway } from './coordinate.js';\n/**\n * A projection as {@link module:ol/proj/Projection}, SRS identifier\n * string or undefined.\n * @typedef {Projection|string|undefined} ProjectionLike\n * @api\n */\n/**\n * A transform function accepts an array of input coordinate values, an optional\n * output array, and an optional dimension (default should be 2). The function\n * transforms the input coordinate values, populates the output array, and\n * returns the output array.\n *\n * @typedef {function(Array, Array=, number=): Array} TransformFunction\n * @api\n */\nexport { METERS_PER_UNIT };\nexport { Projection };\n/**\n * @param {Array} input Input coordinate array.\n * @param {Array} [opt_output] Output array of coordinate values.\n * @param {number} [opt_dimension] Dimension.\n * @return {Array} Output coordinate array (new array, same coordinate\n * values).\n */\nexport function cloneTransform(input, opt_output, opt_dimension) {\n var output;\n if (opt_output !== undefined) {\n for (var i = 0, ii = input.length; i < ii; ++i) {\n opt_output[i] = input[i];\n }\n output = opt_output;\n }\n else {\n output = input.slice();\n }\n return output;\n}\n/**\n * @param {Array} input Input coordinate array.\n * @param {Array} [opt_output] Output array of coordinate values.\n * @param {number} [opt_dimension] Dimension.\n * @return {Array} Input coordinate array (same array as input).\n */\nexport function identityTransform(input, opt_output, opt_dimension) {\n if (opt_output !== undefined && input !== opt_output) {\n for (var i = 0, ii = input.length; i < ii; ++i) {\n opt_output[i] = input[i];\n }\n input = opt_output;\n }\n return input;\n}\n/**\n * Add a Projection object to the list of supported projections that can be\n * looked up by their code.\n *\n * @param {Projection} projection Projection instance.\n * @api\n */\nexport function addProjection(projection) {\n addProj(projection.getCode(), projection);\n addTransformFunc(projection, projection, cloneTransform);\n}\n/**\n * @param {Array} projections Projections.\n */\nexport function addProjections(projections) {\n projections.forEach(addProjection);\n}\n/**\n * Fetches a Projection object for the code specified.\n *\n * @param {ProjectionLike} projectionLike Either a code string which is\n * a combination of authority and identifier such as \"EPSG:4326\", or an\n * existing projection object, or undefined.\n * @return {Projection} Projection object, or null if not in list.\n * @api\n */\nexport function get(projectionLike) {\n return typeof projectionLike === 'string'\n ? getProj(/** @type {string} */ (projectionLike))\n : /** @type {Projection} */ (projectionLike) || null;\n}\n/**\n * Get the resolution of the point in degrees or distance units.\n * For projections with degrees as the unit this will simply return the\n * provided resolution. For other projections the point resolution is\n * by default estimated by transforming the 'point' pixel to EPSG:4326,\n * measuring its width and height on the normal sphere,\n * and taking the average of the width and height.\n * A custom function can be provided for a specific projection, either\n * by setting the `getPointResolution` option in the\n * {@link module:ol/proj/Projection~Projection} constructor or by using\n * {@link module:ol/proj/Projection~Projection#setGetPointResolution} to change an existing\n * projection object.\n * @param {ProjectionLike} projection The projection.\n * @param {number} resolution Nominal resolution in projection units.\n * @param {import(\"./coordinate.js\").Coordinate} point Point to find adjusted resolution at.\n * @param {import(\"./proj/Units.js\").default} [opt_units] Units to get the point resolution in.\n * Default is the projection's units.\n * @return {number} Point resolution.\n * @api\n */\nexport function getPointResolution(projection, resolution, point, opt_units) {\n projection = get(projection);\n var pointResolution;\n var getter = projection.getPointResolutionFunc();\n if (getter) {\n pointResolution = getter(resolution, point);\n if (opt_units && opt_units !== projection.getUnits()) {\n var metersPerUnit = projection.getMetersPerUnit();\n if (metersPerUnit) {\n pointResolution =\n (pointResolution * metersPerUnit) / METERS_PER_UNIT[opt_units];\n }\n }\n }\n else {\n var units = projection.getUnits();\n if ((units == Units.DEGREES && !opt_units) || opt_units == Units.DEGREES) {\n pointResolution = resolution;\n }\n else {\n // Estimate point resolution by transforming the center pixel to EPSG:4326,\n // measuring its width and height on the normal sphere, and taking the\n // average of the width and height.\n var toEPSG4326_1 = getTransformFromProjections(projection, get('EPSG:4326'));\n if (toEPSG4326_1 === identityTransform && units !== Units.DEGREES) {\n // no transform is available\n pointResolution = resolution * projection.getMetersPerUnit();\n }\n else {\n var vertices = [\n point[0] - resolution / 2,\n point[1],\n point[0] + resolution / 2,\n point[1],\n point[0],\n point[1] - resolution / 2,\n point[0],\n point[1] + resolution / 2,\n ];\n vertices = toEPSG4326_1(vertices, vertices, 2);\n var width = getDistance(vertices.slice(0, 2), vertices.slice(2, 4));\n var height = getDistance(vertices.slice(4, 6), vertices.slice(6, 8));\n pointResolution = (width + height) / 2;\n }\n var metersPerUnit = opt_units\n ? METERS_PER_UNIT[opt_units]\n : projection.getMetersPerUnit();\n if (metersPerUnit !== undefined) {\n pointResolution /= metersPerUnit;\n }\n }\n }\n return pointResolution;\n}\n/**\n * Registers transformation functions that don't alter coordinates. Those allow\n * to transform between projections with equal meaning.\n *\n * @param {Array} projections Projections.\n * @api\n */\nexport function addEquivalentProjections(projections) {\n addProjections(projections);\n projections.forEach(function (source) {\n projections.forEach(function (destination) {\n if (source !== destination) {\n addTransformFunc(source, destination, cloneTransform);\n }\n });\n });\n}\n/**\n * Registers transformation functions to convert coordinates in any projection\n * in projection1 to any projection in projection2.\n *\n * @param {Array} projections1 Projections with equal\n * meaning.\n * @param {Array} projections2 Projections with equal\n * meaning.\n * @param {TransformFunction} forwardTransform Transformation from any\n * projection in projection1 to any projection in projection2.\n * @param {TransformFunction} inverseTransform Transform from any projection\n * in projection2 to any projection in projection1..\n */\nexport function addEquivalentTransforms(projections1, projections2, forwardTransform, inverseTransform) {\n projections1.forEach(function (projection1) {\n projections2.forEach(function (projection2) {\n addTransformFunc(projection1, projection2, forwardTransform);\n addTransformFunc(projection2, projection1, inverseTransform);\n });\n });\n}\n/**\n * Clear all cached projections and transforms.\n */\nexport function clearAllProjections() {\n clearProj();\n clearTransformFuncs();\n}\n/**\n * @param {Projection|string|undefined} projection Projection.\n * @param {string} defaultCode Default code.\n * @return {Projection} Projection.\n */\nexport function createProjection(projection, defaultCode) {\n if (!projection) {\n return get(defaultCode);\n }\n else if (typeof projection === 'string') {\n return get(projection);\n }\n else {\n return /** @type {Projection} */ (projection);\n }\n}\n/**\n * Creates a {@link module:ol/proj~TransformFunction} from a simple 2D coordinate transform\n * function.\n * @param {function(import(\"./coordinate.js\").Coordinate): import(\"./coordinate.js\").Coordinate} coordTransform Coordinate\n * transform.\n * @return {TransformFunction} Transform function.\n */\nexport function createTransformFromCoordinateTransform(coordTransform) {\n return (\n /**\n * @param {Array} input Input.\n * @param {Array} [opt_output] Output.\n * @param {number} [opt_dimension] Dimension.\n * @return {Array} Output.\n */\n function (input, opt_output, opt_dimension) {\n var length = input.length;\n var dimension = opt_dimension !== undefined ? opt_dimension : 2;\n var output = opt_output !== undefined ? opt_output : new Array(length);\n for (var i = 0; i < length; i += dimension) {\n var point = coordTransform([input[i], input[i + 1]]);\n output[i] = point[0];\n output[i + 1] = point[1];\n for (var j = dimension - 1; j >= 2; --j) {\n output[i + j] = input[i + j];\n }\n }\n return output;\n });\n}\n/**\n * Registers coordinate transform functions to convert coordinates between the\n * source projection and the destination projection.\n * The forward and inverse functions convert coordinate pairs; this function\n * converts these into the functions used internally which also handle\n * extents and coordinate arrays.\n *\n * @param {ProjectionLike} source Source projection.\n * @param {ProjectionLike} destination Destination projection.\n * @param {function(import(\"./coordinate.js\").Coordinate): import(\"./coordinate.js\").Coordinate} forward The forward transform\n * function (that is, from the source projection to the destination\n * projection) that takes a {@link module:ol/coordinate~Coordinate} as argument and returns\n * the transformed {@link module:ol/coordinate~Coordinate}.\n * @param {function(import(\"./coordinate.js\").Coordinate): import(\"./coordinate.js\").Coordinate} inverse The inverse transform\n * function (that is, from the destination projection to the source\n * projection) that takes a {@link module:ol/coordinate~Coordinate} as argument and returns\n * the transformed {@link module:ol/coordinate~Coordinate}.\n * @api\n */\nexport function addCoordinateTransforms(source, destination, forward, inverse) {\n var sourceProj = get(source);\n var destProj = get(destination);\n addTransformFunc(sourceProj, destProj, createTransformFromCoordinateTransform(forward));\n addTransformFunc(destProj, sourceProj, createTransformFromCoordinateTransform(inverse));\n}\n/**\n * Transforms a coordinate from longitude/latitude to a different projection.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate as longitude and latitude, i.e.\n * an array with longitude as 1st and latitude as 2nd element.\n * @param {ProjectionLike} [opt_projection] Target projection. The\n * default is Web Mercator, i.e. 'EPSG:3857'.\n * @return {import(\"./coordinate.js\").Coordinate} Coordinate projected to the target projection.\n * @api\n */\nexport function fromLonLat(coordinate, opt_projection) {\n return transform(coordinate, 'EPSG:4326', opt_projection !== undefined ? opt_projection : 'EPSG:3857');\n}\n/**\n * Transforms a coordinate to longitude/latitude.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Projected coordinate.\n * @param {ProjectionLike} [opt_projection] Projection of the coordinate.\n * The default is Web Mercator, i.e. 'EPSG:3857'.\n * @return {import(\"./coordinate.js\").Coordinate} Coordinate as longitude and latitude, i.e. an array\n * with longitude as 1st and latitude as 2nd element.\n * @api\n */\nexport function toLonLat(coordinate, opt_projection) {\n var lonLat = transform(coordinate, opt_projection !== undefined ? opt_projection : 'EPSG:3857', 'EPSG:4326');\n var lon = lonLat[0];\n if (lon < -180 || lon > 180) {\n lonLat[0] = modulo(lon + 180, 360) - 180;\n }\n return lonLat;\n}\n/**\n * Checks if two projections are the same, that is every coordinate in one\n * projection does represent the same geographic point as the same coordinate in\n * the other projection.\n *\n * @param {Projection} projection1 Projection 1.\n * @param {Projection} projection2 Projection 2.\n * @return {boolean} Equivalent.\n * @api\n */\nexport function equivalent(projection1, projection2) {\n if (projection1 === projection2) {\n return true;\n }\n var equalUnits = projection1.getUnits() === projection2.getUnits();\n if (projection1.getCode() === projection2.getCode()) {\n return equalUnits;\n }\n else {\n var transformFunc = getTransformFromProjections(projection1, projection2);\n return transformFunc === cloneTransform && equalUnits;\n }\n}\n/**\n * Searches in the list of transform functions for the function for converting\n * coordinates from the source projection to the destination projection.\n *\n * @param {Projection} sourceProjection Source Projection object.\n * @param {Projection} destinationProjection Destination Projection\n * object.\n * @return {TransformFunction} Transform function.\n */\nexport function getTransformFromProjections(sourceProjection, destinationProjection) {\n var sourceCode = sourceProjection.getCode();\n var destinationCode = destinationProjection.getCode();\n var transformFunc = getTransformFunc(sourceCode, destinationCode);\n if (!transformFunc) {\n transformFunc = identityTransform;\n }\n return transformFunc;\n}\n/**\n * Given the projection-like objects, searches for a transformation\n * function to convert a coordinates array from the source projection to the\n * destination projection.\n *\n * @param {ProjectionLike} source Source.\n * @param {ProjectionLike} destination Destination.\n * @return {TransformFunction} Transform function.\n * @api\n */\nexport function getTransform(source, destination) {\n var sourceProjection = get(source);\n var destinationProjection = get(destination);\n return getTransformFromProjections(sourceProjection, destinationProjection);\n}\n/**\n * Transforms a coordinate from source projection to destination projection.\n * This returns a new coordinate (and does not modify the original).\n *\n * See {@link module:ol/proj.transformExtent} for extent transformation.\n * See the transform method of {@link module:ol/geom/Geometry~Geometry} and its\n * subclasses for geometry transforms.\n *\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate.\n * @param {ProjectionLike} source Source projection-like.\n * @param {ProjectionLike} destination Destination projection-like.\n * @return {import(\"./coordinate.js\").Coordinate} Coordinate.\n * @api\n */\nexport function transform(coordinate, source, destination) {\n var transformFunc = getTransform(source, destination);\n return transformFunc(coordinate, undefined, coordinate.length);\n}\n/**\n * Transforms an extent from source projection to destination projection. This\n * returns a new extent (and does not modify the original).\n *\n * @param {import(\"./extent.js\").Extent} extent The extent to transform.\n * @param {ProjectionLike} source Source projection-like.\n * @param {ProjectionLike} destination Destination projection-like.\n * @param {number} [opt_stops] Number of stops per side used for the transform.\n * By default only the corners are used.\n * @return {import(\"./extent.js\").Extent} The transformed extent.\n * @api\n */\nexport function transformExtent(extent, source, destination, opt_stops) {\n var transformFunc = getTransform(source, destination);\n return applyTransform(extent, transformFunc, undefined, opt_stops);\n}\n/**\n * Transforms the given point to the destination projection.\n *\n * @param {import(\"./coordinate.js\").Coordinate} point Point.\n * @param {Projection} sourceProjection Source projection.\n * @param {Projection} destinationProjection Destination projection.\n * @return {import(\"./coordinate.js\").Coordinate} Point.\n */\nexport function transformWithProjections(point, sourceProjection, destinationProjection) {\n var transformFunc = getTransformFromProjections(sourceProjection, destinationProjection);\n return transformFunc(point);\n}\n/**\n * @type {?Projection}\n */\nvar userProjection = null;\n/**\n * Set the projection for coordinates supplied from and returned by API methods.\n * Note that this method is not yet a part of the stable API. Support for user\n * projections is not yet complete and should be considered experimental.\n * @param {ProjectionLike} projection The user projection.\n */\nexport function setUserProjection(projection) {\n userProjection = get(projection);\n}\n/**\n * Clear the user projection if set. Note that this method is not yet a part of\n * the stable API. Support for user projections is not yet complete and should\n * be considered experimental.\n */\nexport function clearUserProjection() {\n userProjection = null;\n}\n/**\n * Get the projection for coordinates supplied from and returned by API methods.\n * Note that this method is not yet a part of the stable API. Support for user\n * projections is not yet complete and should be considered experimental.\n * @return {?Projection} The user projection (or null if not set).\n */\nexport function getUserProjection() {\n return userProjection;\n}\n/**\n * Use geographic coordinates (WGS-84 datum) in API methods. Note that this\n * method is not yet a part of the stable API. Support for user projections is\n * not yet complete and should be considered experimental.\n */\nexport function useGeographic() {\n setUserProjection('EPSG:4326');\n}\n/**\n * Return a coordinate transformed into the user projection. If no user projection\n * is set, the original coordinate is returned.\n * @param {Array} coordinate Input coordinate.\n * @param {ProjectionLike} sourceProjection The input coordinate projection.\n * @return {Array} The input coordinate in the user projection.\n */\nexport function toUserCoordinate(coordinate, sourceProjection) {\n if (!userProjection) {\n return coordinate;\n }\n return transform(coordinate, sourceProjection, userProjection);\n}\n/**\n * Return a coordinate transformed from the user projection. If no user projection\n * is set, the original coordinate is returned.\n * @param {Array} coordinate Input coordinate.\n * @param {ProjectionLike} destProjection The destination projection.\n * @return {Array} The input coordinate transformed.\n */\nexport function fromUserCoordinate(coordinate, destProjection) {\n if (!userProjection) {\n return coordinate;\n }\n return transform(coordinate, userProjection, destProjection);\n}\n/**\n * Return an extent transformed into the user projection. If no user projection\n * is set, the original extent is returned.\n * @param {import(\"./extent.js\").Extent} extent Input extent.\n * @param {ProjectionLike} sourceProjection The input extent projection.\n * @return {import(\"./extent.js\").Extent} The input extent in the user projection.\n */\nexport function toUserExtent(extent, sourceProjection) {\n if (!userProjection) {\n return extent;\n }\n return transformExtent(extent, sourceProjection, userProjection);\n}\n/**\n * Return an extent transformed from the user projection. If no user projection\n * is set, the original extent is returned.\n * @param {import(\"./extent.js\").Extent} extent Input extent.\n * @param {ProjectionLike} destProjection The destination projection.\n * @return {import(\"./extent.js\").Extent} The input extent transformed.\n */\nexport function fromUserExtent(extent, destProjection) {\n if (!userProjection) {\n return extent;\n }\n return transformExtent(extent, userProjection, destProjection);\n}\n/**\n * Return the resolution in user projection units per pixel. If no user projection\n * is set, or source or user projection are missing units, the original resolution\n * is returned.\n * @param {number} resolution Resolution in input projection units per pixel.\n * @param {ProjectionLike} sourceProjection The input projection.\n * @return {number} Resolution in user projection units per pixel.\n */\nexport function toUserResolution(resolution, sourceProjection) {\n if (!userProjection) {\n return resolution;\n }\n var sourceUnits = get(sourceProjection).getUnits();\n var userUnits = userProjection.getUnits();\n return sourceUnits && userUnits\n ? (resolution * METERS_PER_UNIT[sourceUnits]) / METERS_PER_UNIT[userUnits]\n : resolution;\n}\n/**\n * Return the resolution in user projection units per pixel. If no user projection\n * is set, or source or user projection are missing units, the original resolution\n * is returned.\n * @param {number} resolution Resolution in user projection units per pixel.\n * @param {ProjectionLike} destProjection The destination projection.\n * @return {number} Resolution in destination projection units per pixel.\n */\nexport function fromUserResolution(resolution, destProjection) {\n if (!userProjection) {\n return resolution;\n }\n var sourceUnits = get(destProjection).getUnits();\n var userUnits = userProjection.getUnits();\n return sourceUnits && userUnits\n ? (resolution * METERS_PER_UNIT[userUnits]) / METERS_PER_UNIT[sourceUnits]\n : resolution;\n}\n/**\n * Creates a safe coordinate transform function from a coordinate transform function.\n * \"Safe\" means that it can handle wrapping of x-coordinates for global projections,\n * and that coordinates exceeding the source projection validity extent's range will be\n * clamped to the validity range.\n * @param {Projection} sourceProj Source projection.\n * @param {Projection} destProj Destination projection.\n * @param {function(import(\"./coordinate.js\").Coordinate): import(\"./coordinate.js\").Coordinate} transform Transform function (source to destiation).\n * @return {function(import(\"./coordinate.js\").Coordinate): import(\"./coordinate.js\").Coordinate} Safe transform function (source to destiation).\n */\nexport function createSafeCoordinateTransform(sourceProj, destProj, transform) {\n return function (coord) {\n var sourceX = coord[0];\n var sourceY = coord[1];\n var transformed, worldsAway;\n if (sourceProj.canWrapX()) {\n var sourceExtent = sourceProj.getExtent();\n var sourceExtentWidth = getWidth(sourceExtent);\n worldsAway = getWorldsAway(coord, sourceProj, sourceExtentWidth);\n if (worldsAway) {\n // Move x to the real world\n sourceX = sourceX - worldsAway * sourceExtentWidth;\n }\n sourceX = clamp(sourceX, sourceExtent[0], sourceExtent[2]);\n sourceY = clamp(sourceY, sourceExtent[1], sourceExtent[3]);\n transformed = transform([sourceX, sourceY]);\n }\n else {\n transformed = transform(coord);\n }\n if (worldsAway && destProj.canWrapX()) {\n // Move transformed coordinate back to the offset world\n transformed[0] += worldsAway * getWidth(destProj.getExtent());\n }\n return transformed;\n };\n}\n/**\n * Add transforms to and from EPSG:4326 and EPSG:3857. This function is called\n * by when this module is executed and should only need to be called again after\n * `clearAllProjections()` is called (e.g. in tests).\n */\nexport function addCommon() {\n // Add transformations that don't alter coordinates to convert within set of\n // projections with equal meaning.\n addEquivalentProjections(EPSG3857_PROJECTIONS);\n addEquivalentProjections(EPSG4326_PROJECTIONS);\n // Add transformations to convert EPSG:4326 like coordinates to EPSG:3857 like\n // coordinates and back.\n addEquivalentTransforms(EPSG4326_PROJECTIONS, EPSG3857_PROJECTIONS, fromEPSG4326, toEPSG4326);\n}\naddCommon();\n//# sourceMappingURL=proj.js.map","/**\n * @module ol/control/MousePosition\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport Control from './Control.js';\nimport EventType from '../pointer/EventType.js';\nimport { get as getProjection, getTransformFromProjections, getUserProjection, identityTransform, } from '../proj.js';\nimport { listen } from '../events.js';\n/**\n * @type {string}\n */\nvar PROJECTION = 'projection';\n/**\n * @type {string}\n */\nvar COORDINATE_FORMAT = 'coordinateFormat';\n/***\n * @template Return\n * @typedef {import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature &\n * import(\"../Observable\").CombinedOnSignature} MousePositionOnSignature\n */\n/**\n * @typedef {Object} Options\n * @property {string} [className='ol-mouse-position'] CSS class name.\n * @property {import(\"../coordinate.js\").CoordinateFormat} [coordinateFormat] Coordinate format.\n * @property {import(\"../proj.js\").ProjectionLike} [projection] Projection. Default is the view projection.\n * @property {function(import(\"../MapEvent.js\").default):void} [render] Function called when the\n * control should be re-rendered. This is called in a `requestAnimationFrame`\n * callback.\n * @property {HTMLElement|string} [target] Specify a target if you want the\n * control to be rendered outside of the map's viewport.\n * @property {string|boolean} [placeholder] Markup to show when the mouse position is not\n * available (e.g. when the pointer leaves the map viewport). By default, a non-breaking space\n * is rendered when the mouse leaves the viewport. To render something else, provide a string\n * to be used as the text content (e.g. 'no position' or '' for an empty string). Set the placeholder\n * to `false` to retain the last position when the mouse leaves the viewport. In a future release, this\n * will be the default behavior.\n * @property {string} [undefinedHTML=' '] This option is deprecated. Use the `placeholder` option instead.\n */\n/**\n * @classdesc\n * A control to show the 2D coordinates of the mouse cursor. By default, these\n * are in the view projection, but can be in any supported projection.\n * By default the control is shown in the top right corner of the map, but this\n * can be changed by using the css selector `.ol-mouse-position`.\n *\n * On touch devices, which usually do not have a mouse cursor, the coordinates\n * of the currently touched position are shown.\n *\n * @api\n */\nvar MousePosition = /** @class */ (function (_super) {\n __extends(MousePosition, _super);\n /**\n * @param {Options} [opt_options] Mouse position options.\n */\n function MousePosition(opt_options) {\n var _this = this;\n var options = opt_options ? opt_options : {};\n var element = document.createElement('div');\n element.className =\n options.className !== undefined ? options.className : 'ol-mouse-position';\n _this = _super.call(this, {\n element: element,\n render: options.render,\n target: options.target,\n }) || this;\n /***\n * @type {MousePositionOnSignature}\n */\n _this.on;\n /***\n * @type {MousePositionOnSignature}\n */\n _this.once;\n /***\n * @type {MousePositionOnSignature}\n */\n _this.un;\n _this.addChangeListener(PROJECTION, _this.handleProjectionChanged_);\n if (options.coordinateFormat) {\n _this.setCoordinateFormat(options.coordinateFormat);\n }\n if (options.projection) {\n _this.setProjection(options.projection);\n }\n /**\n * Change this to `false` when removing the deprecated `undefinedHTML` option.\n * @type {boolean}\n */\n var renderOnMouseOut = true;\n /**\n * @type {string}\n */\n var placeholder = ' ';\n if ('undefinedHTML' in options) {\n // deprecated behavior\n if (options.undefinedHTML !== undefined) {\n placeholder = options.undefinedHTML;\n }\n renderOnMouseOut = !!placeholder;\n }\n else if ('placeholder' in options) {\n if (options.placeholder === false) {\n renderOnMouseOut = false;\n }\n else {\n placeholder = String(options.placeholder);\n }\n }\n /**\n * @private\n * @type {string}\n */\n _this.placeholder_ = placeholder;\n /**\n * @private\n * @type {boolean}\n */\n _this.renderOnMouseOut_ = renderOnMouseOut;\n /**\n * @private\n * @type {string}\n */\n _this.renderedHTML_ = element.innerHTML;\n /**\n * @private\n * @type {?import(\"../proj/Projection.js\").default}\n */\n _this.mapProjection_ = null;\n /**\n * @private\n * @type {?import(\"../proj.js\").TransformFunction}\n */\n _this.transform_ = null;\n return _this;\n }\n /**\n * @private\n */\n MousePosition.prototype.handleProjectionChanged_ = function () {\n this.transform_ = null;\n };\n /**\n * Return the coordinate format type used to render the current position or\n * undefined.\n * @return {import(\"../coordinate.js\").CoordinateFormat|undefined} The format to render the current\n * position in.\n * @observable\n * @api\n */\n MousePosition.prototype.getCoordinateFormat = function () {\n return /** @type {import(\"../coordinate.js\").CoordinateFormat|undefined} */ (this.get(COORDINATE_FORMAT));\n };\n /**\n * Return the projection that is used to report the mouse position.\n * @return {import(\"../proj/Projection.js\").default|undefined} The projection to report mouse\n * position in.\n * @observable\n * @api\n */\n MousePosition.prototype.getProjection = function () {\n return /** @type {import(\"../proj/Projection.js\").default|undefined} */ (this.get(PROJECTION));\n };\n /**\n * @param {MouseEvent} event Browser event.\n * @protected\n */\n MousePosition.prototype.handleMouseMove = function (event) {\n var map = this.getMap();\n this.updateHTML_(map.getEventPixel(event));\n };\n /**\n * @param {Event} event Browser event.\n * @protected\n */\n MousePosition.prototype.handleMouseOut = function (event) {\n this.updateHTML_(null);\n };\n /**\n * Remove the control from its current map and attach it to the new map.\n * Subclasses may set up event handlers to get notified about changes to\n * the map here.\n * @param {import(\"../PluggableMap.js\").default} map Map.\n * @api\n */\n MousePosition.prototype.setMap = function (map) {\n _super.prototype.setMap.call(this, map);\n if (map) {\n var viewport = map.getViewport();\n this.listenerKeys.push(listen(viewport, EventType.POINTERMOVE, this.handleMouseMove, this));\n if (this.renderOnMouseOut_) {\n this.listenerKeys.push(listen(viewport, EventType.POINTEROUT, this.handleMouseOut, this));\n }\n this.updateHTML_(null);\n }\n };\n /**\n * Set the coordinate format type used to render the current position.\n * @param {import(\"../coordinate.js\").CoordinateFormat} format The format to render the current\n * position in.\n * @observable\n * @api\n */\n MousePosition.prototype.setCoordinateFormat = function (format) {\n this.set(COORDINATE_FORMAT, format);\n };\n /**\n * Set the projection that is used to report the mouse position.\n * @param {import(\"../proj.js\").ProjectionLike} projection The projection to report mouse\n * position in.\n * @observable\n * @api\n */\n MousePosition.prototype.setProjection = function (projection) {\n this.set(PROJECTION, getProjection(projection));\n };\n /**\n * @param {?import(\"../pixel.js\").Pixel} pixel Pixel.\n * @private\n */\n MousePosition.prototype.updateHTML_ = function (pixel) {\n var html = this.placeholder_;\n if (pixel && this.mapProjection_) {\n if (!this.transform_) {\n var projection = this.getProjection();\n if (projection) {\n this.transform_ = getTransformFromProjections(this.mapProjection_, projection);\n }\n else {\n this.transform_ = identityTransform;\n }\n }\n var map = this.getMap();\n var coordinate = map.getCoordinateFromPixelInternal(pixel);\n if (coordinate) {\n var userProjection = getUserProjection();\n if (userProjection) {\n this.transform_ = getTransformFromProjections(this.mapProjection_, userProjection);\n }\n this.transform_(coordinate, coordinate);\n var coordinateFormat = this.getCoordinateFormat();\n if (coordinateFormat) {\n html = coordinateFormat(coordinate);\n }\n else {\n html = coordinate.toString();\n }\n }\n }\n if (!this.renderedHTML_ || html !== this.renderedHTML_) {\n this.element.innerHTML = html;\n this.renderedHTML_ = html;\n }\n };\n /**\n * Update the projection. Rendering of the coordinates is done in\n * `handleMouseMove` and `handleMouseUp`.\n * @param {import(\"../MapEvent.js\").default} mapEvent Map event.\n * @override\n */\n MousePosition.prototype.render = function (mapEvent) {\n var frameState = mapEvent.frameState;\n if (!frameState) {\n this.mapProjection_ = null;\n }\n else {\n if (this.mapProjection_ != frameState.viewState.projection) {\n this.mapProjection_ = frameState.viewState.projection;\n this.transform_ = null;\n }\n }\n };\n return MousePosition;\n}(Control));\nexport default MousePosition;\n//# sourceMappingURL=MousePosition.js.map","/**\n * @module ol/easing\n */\n/**\n * Start slow and speed up.\n * @param {number} t Input between 0 and 1.\n * @return {number} Output between 0 and 1.\n * @api\n */\nexport function easeIn(t) {\n return Math.pow(t, 3);\n}\n/**\n * Start fast and slow down.\n * @param {number} t Input between 0 and 1.\n * @return {number} Output between 0 and 1.\n * @api\n */\nexport function easeOut(t) {\n return 1 - easeIn(1 - t);\n}\n/**\n * Start slow, speed up, and then slow down again.\n * @param {number} t Input between 0 and 1.\n * @return {number} Output between 0 and 1.\n * @api\n */\nexport function inAndOut(t) {\n return 3 * t * t - 2 * t * t * t;\n}\n/**\n * Maintain a constant speed over time.\n * @param {number} t Input between 0 and 1.\n * @return {number} Output between 0 and 1.\n * @api\n */\nexport function linear(t) {\n return t;\n}\n/**\n * Start slow, speed up, and at the very end slow down again. This has the\n * same general behavior as {@link module:ol/easing.inAndOut}, but the final\n * slowdown is delayed.\n * @param {number} t Input between 0 and 1.\n * @return {number} Output between 0 and 1.\n * @api\n */\nexport function upAndDown(t) {\n if (t < 0.5) {\n return inAndOut(2 * t);\n }\n else {\n return 1 - inAndOut(2 * (t - 0.5));\n }\n}\n//# sourceMappingURL=easing.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/control/Zoom\n */\nimport Control from './Control.js';\nimport EventType from '../events/EventType.js';\nimport { CLASS_CONTROL, CLASS_UNSELECTABLE } from '../css.js';\nimport { easeOut } from '../easing.js';\n/**\n * @typedef {Object} Options\n * @property {number} [duration=250] Animation duration in milliseconds.\n * @property {string} [className='ol-zoom'] CSS class name.\n * @property {string} [zoomInClassName=className + '-in'] CSS class name for the zoom-in button.\n * @property {string} [zoomOutClassName=className + '-out'] CSS class name for the zoom-out button.\n * @property {string|HTMLElement} [zoomInLabel='+'] Text label to use for the zoom-in\n * button. Instead of text, also an element (e.g. a `span` element) can be used.\n * @property {string|HTMLElement} [zoomOutLabel='–'] Text label to use for the zoom-out button.\n * Instead of text, also an element (e.g. a `span` element) can be used.\n * @property {string} [zoomInTipLabel='Zoom in'] Text label to use for the button tip.\n * @property {string} [zoomOutTipLabel='Zoom out'] Text label to use for the button tip.\n * @property {number} [delta=1] The zoom delta applied on each click.\n * @property {HTMLElement|string} [target] Specify a target if you want the control to be\n * rendered outside of the map's viewport.\n */\n/**\n * @classdesc\n * A control with 2 buttons, one for zoom in and one for zoom out.\n * This control is one of the default controls of a map. To style this control\n * use css selectors `.ol-zoom-in` and `.ol-zoom-out`.\n *\n * @api\n */\nvar Zoom = /** @class */ (function (_super) {\n __extends(Zoom, _super);\n /**\n * @param {Options} [opt_options] Zoom options.\n */\n function Zoom(opt_options) {\n var _this = this;\n var options = opt_options ? opt_options : {};\n _this = _super.call(this, {\n element: document.createElement('div'),\n target: options.target,\n }) || this;\n var className = options.className !== undefined ? options.className : 'ol-zoom';\n var delta = options.delta !== undefined ? options.delta : 1;\n var zoomInClassName = options.zoomInClassName !== undefined\n ? options.zoomInClassName\n : className + '-in';\n var zoomOutClassName = options.zoomOutClassName !== undefined\n ? options.zoomOutClassName\n : className + '-out';\n var zoomInLabel = options.zoomInLabel !== undefined ? options.zoomInLabel : '+';\n var zoomOutLabel = options.zoomOutLabel !== undefined ? options.zoomOutLabel : '\\u2013';\n var zoomInTipLabel = options.zoomInTipLabel !== undefined ? options.zoomInTipLabel : 'Zoom in';\n var zoomOutTipLabel = options.zoomOutTipLabel !== undefined\n ? options.zoomOutTipLabel\n : 'Zoom out';\n var inElement = document.createElement('button');\n inElement.className = zoomInClassName;\n inElement.setAttribute('type', 'button');\n inElement.title = zoomInTipLabel;\n inElement.appendChild(typeof zoomInLabel === 'string'\n ? document.createTextNode(zoomInLabel)\n : zoomInLabel);\n inElement.addEventListener(EventType.CLICK, _this.handleClick_.bind(_this, delta), false);\n var outElement = document.createElement('button');\n outElement.className = zoomOutClassName;\n outElement.setAttribute('type', 'button');\n outElement.title = zoomOutTipLabel;\n outElement.appendChild(typeof zoomOutLabel === 'string'\n ? document.createTextNode(zoomOutLabel)\n : zoomOutLabel);\n outElement.addEventListener(EventType.CLICK, _this.handleClick_.bind(_this, -delta), false);\n var cssClasses = className + ' ' + CLASS_UNSELECTABLE + ' ' + CLASS_CONTROL;\n var element = _this.element;\n element.className = cssClasses;\n element.appendChild(inElement);\n element.appendChild(outElement);\n /**\n * @type {number}\n * @private\n */\n _this.duration_ = options.duration !== undefined ? options.duration : 250;\n return _this;\n }\n /**\n * @param {number} delta Zoom delta.\n * @param {MouseEvent} event The event to handle\n * @private\n */\n Zoom.prototype.handleClick_ = function (delta, event) {\n event.preventDefault();\n this.zoomByDelta_(delta);\n };\n /**\n * @param {number} delta Zoom delta.\n * @private\n */\n Zoom.prototype.zoomByDelta_ = function (delta) {\n var map = this.getMap();\n var view = map.getView();\n if (!view) {\n // the map does not have a view, so we can't act\n // upon it\n return;\n }\n var currentZoom = view.getZoom();\n if (currentZoom !== undefined) {\n var newZoom = view.getConstrainedZoom(currentZoom + delta);\n if (this.duration_ > 0) {\n if (view.getAnimating()) {\n view.cancelAnimations();\n }\n view.animate({\n zoom: newZoom,\n duration: this.duration_,\n easing: easeOut,\n });\n }\n else {\n view.setZoom(newZoom);\n }\n }\n };\n return Zoom;\n}(Control));\nexport default Zoom;\n//# sourceMappingURL=Zoom.js.map","/**\n * @module ol/coordinate\n */\nimport { getWidth } from './extent.js';\nimport { modulo } from './math.js';\nimport { padNumber } from './string.js';\n/**\n * An array of numbers representing an xy coordinate. Example: `[16, 48]`.\n * @typedef {Array} Coordinate\n * @api\n */\n/**\n * A function that takes a {@link module:ol/coordinate~Coordinate} and\n * transforms it into a `{string}`.\n *\n * @typedef {function((Coordinate|undefined)): string} CoordinateFormat\n * @api\n */\n/**\n * Add `delta` to `coordinate`. `coordinate` is modified in place and returned\n * by the function.\n *\n * Example:\n *\n * import {add} from 'ol/coordinate';\n *\n * var coord = [7.85, 47.983333];\n * add(coord, [-2, 4]);\n * // coord is now [5.85, 51.983333]\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {Coordinate} delta Delta.\n * @return {Coordinate} The input coordinate adjusted by\n * the given delta.\n * @api\n */\nexport function add(coordinate, delta) {\n coordinate[0] += +delta[0];\n coordinate[1] += +delta[1];\n return coordinate;\n}\n/**\n * Calculates the point closest to the passed coordinate on the passed circle.\n *\n * @param {Coordinate} coordinate The coordinate.\n * @param {import(\"./geom/Circle.js\").default} circle The circle.\n * @return {Coordinate} Closest point on the circumference.\n */\nexport function closestOnCircle(coordinate, circle) {\n var r = circle.getRadius();\n var center = circle.getCenter();\n var x0 = center[0];\n var y0 = center[1];\n var x1 = coordinate[0];\n var y1 = coordinate[1];\n var dx = x1 - x0;\n var dy = y1 - y0;\n if (dx === 0 && dy === 0) {\n dx = 1;\n }\n var d = Math.sqrt(dx * dx + dy * dy);\n var x = x0 + (r * dx) / d;\n var y = y0 + (r * dy) / d;\n return [x, y];\n}\n/**\n * Calculates the point closest to the passed coordinate on the passed segment.\n * This is the foot of the perpendicular of the coordinate to the segment when\n * the foot is on the segment, or the closest segment coordinate when the foot\n * is outside the segment.\n *\n * @param {Coordinate} coordinate The coordinate.\n * @param {Array} segment The two coordinates\n * of the segment.\n * @return {Coordinate} The foot of the perpendicular of\n * the coordinate to the segment.\n */\nexport function closestOnSegment(coordinate, segment) {\n var x0 = coordinate[0];\n var y0 = coordinate[1];\n var start = segment[0];\n var end = segment[1];\n var x1 = start[0];\n var y1 = start[1];\n var x2 = end[0];\n var y2 = end[1];\n var dx = x2 - x1;\n var dy = y2 - y1;\n var along = dx === 0 && dy === 0\n ? 0\n : (dx * (x0 - x1) + dy * (y0 - y1)) / (dx * dx + dy * dy || 0);\n var x, y;\n if (along <= 0) {\n x = x1;\n y = y1;\n }\n else if (along >= 1) {\n x = x2;\n y = y2;\n }\n else {\n x = x1 + along * dx;\n y = y1 + along * dy;\n }\n return [x, y];\n}\n/**\n * Returns a {@link module:ol/coordinate~CoordinateFormat} function that can be\n * used to format\n * a {Coordinate} to a string.\n *\n * Example without specifying the fractional digits:\n *\n * import {createStringXY} from 'ol/coordinate';\n *\n * var coord = [7.85, 47.983333];\n * var stringifyFunc = createStringXY();\n * var out = stringifyFunc(coord);\n * // out is now '8, 48'\n *\n * Example with explicitly specifying 2 fractional digits:\n *\n * import {createStringXY} from 'ol/coordinate';\n *\n * var coord = [7.85, 47.983333];\n * var stringifyFunc = createStringXY(2);\n * var out = stringifyFunc(coord);\n * // out is now '7.85, 47.98'\n *\n * @param {number} [opt_fractionDigits] The number of digits to include\n * after the decimal point. Default is `0`.\n * @return {CoordinateFormat} Coordinate format.\n * @api\n */\nexport function createStringXY(opt_fractionDigits) {\n return (\n /**\n * @param {Coordinate} coordinate Coordinate.\n * @return {string} String XY.\n */\n function (coordinate) {\n return toStringXY(coordinate, opt_fractionDigits);\n });\n}\n/**\n * @param {string} hemispheres Hemispheres.\n * @param {number} degrees Degrees.\n * @param {number} [opt_fractionDigits] The number of digits to include\n * after the decimal point. Default is `0`.\n * @return {string} String.\n */\nexport function degreesToStringHDMS(hemispheres, degrees, opt_fractionDigits) {\n var normalizedDegrees = modulo(degrees + 180, 360) - 180;\n var x = Math.abs(3600 * normalizedDegrees);\n var dflPrecision = opt_fractionDigits || 0;\n var precision = Math.pow(10, dflPrecision);\n var deg = Math.floor(x / 3600);\n var min = Math.floor((x - deg * 3600) / 60);\n var sec = x - deg * 3600 - min * 60;\n sec = Math.ceil(sec * precision) / precision;\n if (sec >= 60) {\n sec = 0;\n min += 1;\n }\n if (min >= 60) {\n min = 0;\n deg += 1;\n }\n return (deg +\n '\\u00b0 ' +\n padNumber(min, 2) +\n '\\u2032 ' +\n padNumber(sec, 2, dflPrecision) +\n '\\u2033' +\n (normalizedDegrees == 0\n ? ''\n : ' ' + hemispheres.charAt(normalizedDegrees < 0 ? 1 : 0)));\n}\n/**\n * Transforms the given {@link module:ol/coordinate~Coordinate} to a string\n * using the given string template. The strings `{x}` and `{y}` in the template\n * will be replaced with the first and second coordinate values respectively.\n *\n * Example without specifying the fractional digits:\n *\n * import {format} from 'ol/coordinate';\n *\n * var coord = [7.85, 47.983333];\n * var template = 'Coordinate is ({x}|{y}).';\n * var out = format(coord, template);\n * // out is now 'Coordinate is (8|48).'\n *\n * Example explicitly specifying the fractional digits:\n *\n * import {format} from 'ol/coordinate';\n *\n * var coord = [7.85, 47.983333];\n * var template = 'Coordinate is ({x}|{y}).';\n * var out = format(coord, template, 2);\n * // out is now 'Coordinate is (7.85|47.98).'\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {string} template A template string with `{x}` and `{y}` placeholders\n * that will be replaced by first and second coordinate values.\n * @param {number} [opt_fractionDigits] The number of digits to include\n * after the decimal point. Default is `0`.\n * @return {string} Formatted coordinate.\n * @api\n */\nexport function format(coordinate, template, opt_fractionDigits) {\n if (coordinate) {\n return template\n .replace('{x}', coordinate[0].toFixed(opt_fractionDigits))\n .replace('{y}', coordinate[1].toFixed(opt_fractionDigits));\n }\n else {\n return '';\n }\n}\n/**\n * @param {Coordinate} coordinate1 First coordinate.\n * @param {Coordinate} coordinate2 Second coordinate.\n * @return {boolean} The two coordinates are equal.\n */\nexport function equals(coordinate1, coordinate2) {\n var equals = true;\n for (var i = coordinate1.length - 1; i >= 0; --i) {\n if (coordinate1[i] != coordinate2[i]) {\n equals = false;\n break;\n }\n }\n return equals;\n}\n/**\n * Rotate `coordinate` by `angle`. `coordinate` is modified in place and\n * returned by the function.\n *\n * Example:\n *\n * import {rotate} from 'ol/coordinate';\n *\n * var coord = [7.85, 47.983333];\n * var rotateRadians = Math.PI / 2; // 90 degrees\n * rotate(coord, rotateRadians);\n * // coord is now [-47.983333, 7.85]\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {number} angle Angle in radian.\n * @return {Coordinate} Coordinate.\n * @api\n */\nexport function rotate(coordinate, angle) {\n var cosAngle = Math.cos(angle);\n var sinAngle = Math.sin(angle);\n var x = coordinate[0] * cosAngle - coordinate[1] * sinAngle;\n var y = coordinate[1] * cosAngle + coordinate[0] * sinAngle;\n coordinate[0] = x;\n coordinate[1] = y;\n return coordinate;\n}\n/**\n * Scale `coordinate` by `scale`. `coordinate` is modified in place and returned\n * by the function.\n *\n * Example:\n *\n * import {scale as scaleCoordinate} from 'ol/coordinate';\n *\n * var coord = [7.85, 47.983333];\n * var scale = 1.2;\n * scaleCoordinate(coord, scale);\n * // coord is now [9.42, 57.5799996]\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {number} scale Scale factor.\n * @return {Coordinate} Coordinate.\n */\nexport function scale(coordinate, scale) {\n coordinate[0] *= scale;\n coordinate[1] *= scale;\n return coordinate;\n}\n/**\n * @param {Coordinate} coord1 First coordinate.\n * @param {Coordinate} coord2 Second coordinate.\n * @return {number} Squared distance between coord1 and coord2.\n */\nexport function squaredDistance(coord1, coord2) {\n var dx = coord1[0] - coord2[0];\n var dy = coord1[1] - coord2[1];\n return dx * dx + dy * dy;\n}\n/**\n * @param {Coordinate} coord1 First coordinate.\n * @param {Coordinate} coord2 Second coordinate.\n * @return {number} Distance between coord1 and coord2.\n */\nexport function distance(coord1, coord2) {\n return Math.sqrt(squaredDistance(coord1, coord2));\n}\n/**\n * Calculate the squared distance from a coordinate to a line segment.\n *\n * @param {Coordinate} coordinate Coordinate of the point.\n * @param {Array} segment Line segment (2\n * coordinates).\n * @return {number} Squared distance from the point to the line segment.\n */\nexport function squaredDistanceToSegment(coordinate, segment) {\n return squaredDistance(coordinate, closestOnSegment(coordinate, segment));\n}\n/**\n * Format a geographic coordinate with the hemisphere, degrees, minutes, and\n * seconds.\n *\n * Example without specifying fractional digits:\n *\n * import {toStringHDMS} from 'ol/coordinate';\n *\n * var coord = [7.85, 47.983333];\n * var out = toStringHDMS(coord);\n * // out is now '47° 58′ 60″ N 7° 50′ 60″ E'\n *\n * Example explicitly specifying 1 fractional digit:\n *\n * import {toStringHDMS} from 'ol/coordinate';\n *\n * var coord = [7.85, 47.983333];\n * var out = toStringHDMS(coord, 1);\n * // out is now '47° 58′ 60.0″ N 7° 50′ 60.0″ E'\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {number} [opt_fractionDigits] The number of digits to include\n * after the decimal point. Default is `0`.\n * @return {string} Hemisphere, degrees, minutes and seconds.\n * @api\n */\nexport function toStringHDMS(coordinate, opt_fractionDigits) {\n if (coordinate) {\n return (degreesToStringHDMS('NS', coordinate[1], opt_fractionDigits) +\n ' ' +\n degreesToStringHDMS('EW', coordinate[0], opt_fractionDigits));\n }\n else {\n return '';\n }\n}\n/**\n * Format a coordinate as a comma delimited string.\n *\n * Example without specifying fractional digits:\n *\n * import {toStringXY} from 'ol/coordinate';\n *\n * var coord = [7.85, 47.983333];\n * var out = toStringXY(coord);\n * // out is now '8, 48'\n *\n * Example explicitly specifying 1 fractional digit:\n *\n * import {toStringXY} from 'ol/coordinate';\n *\n * var coord = [7.85, 47.983333];\n * var out = toStringXY(coord, 1);\n * // out is now '7.8, 48.0'\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {number} [opt_fractionDigits] The number of digits to include\n * after the decimal point. Default is `0`.\n * @return {string} XY.\n * @api\n */\nexport function toStringXY(coordinate, opt_fractionDigits) {\n return format(coordinate, '{x}, {y}', opt_fractionDigits);\n}\n/**\n * Modifies the provided coordinate in-place to be within the real world\n * extent. The lower projection extent boundary is inclusive, the upper one\n * exclusive.\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {import(\"./proj/Projection.js\").default} projection Projection.\n * @return {Coordinate} The coordinate within the real world extent.\n */\nexport function wrapX(coordinate, projection) {\n if (projection.canWrapX()) {\n var worldWidth = getWidth(projection.getExtent());\n var worldsAway = getWorldsAway(coordinate, projection, worldWidth);\n if (worldsAway) {\n coordinate[0] -= worldsAway * worldWidth;\n }\n }\n return coordinate;\n}\n/**\n * @param {Coordinate} coordinate Coordinate.\n * @param {import(\"./proj/Projection.js\").default} projection Projection.\n * @param {number} [opt_sourceExtentWidth] Width of the source extent.\n * @return {number} Offset in world widths.\n */\nexport function getWorldsAway(coordinate, projection, opt_sourceExtentWidth) {\n var projectionExtent = projection.getExtent();\n var worldsAway = 0;\n if (projection.canWrapX() &&\n (coordinate[0] < projectionExtent[0] || coordinate[0] > projectionExtent[2])) {\n var sourceExtentWidth = opt_sourceExtentWidth || getWidth(projectionExtent);\n worldsAway = Math.floor((coordinate[0] - projectionExtent[0]) / sourceExtentWidth);\n }\n return worldsAway;\n}\n//# sourceMappingURL=coordinate.js.map","/**\n * @module ol/geom/GeometryLayout\n */\n/**\n * The coordinate layout for geometries, indicating whether a 3rd or 4th z ('Z')\n * or measure ('M') coordinate is available. Supported values are `'XY'`,\n * `'XYZ'`, `'XYM'`, `'XYZM'`.\n * @enum {string}\n */\nexport default {\n XY: 'XY',\n XYZ: 'XYZ',\n XYM: 'XYM',\n XYZM: 'XYZM',\n};\n//# sourceMappingURL=GeometryLayout.js.map","/**\n * @module ol/transform\n */\nimport { WORKER_OFFSCREEN_CANVAS } from './has.js';\nimport { assert } from './asserts.js';\n/**\n * An array representing an affine 2d transformation for use with\n * {@link module:ol/transform} functions. The array has 6 elements.\n * @typedef {!Array} Transform\n * @api\n */\n/**\n * Collection of affine 2d transformation functions. The functions work on an\n * array of 6 elements. The element order is compatible with the [SVGMatrix\n * interface](https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix) and is\n * a subset (elements a to f) of a 3×3 matrix:\n * ```\n * [ a c e ]\n * [ b d f ]\n * [ 0 0 1 ]\n * ```\n */\n/**\n * @private\n * @type {Transform}\n */\nvar tmp_ = new Array(6);\n/**\n * Create an identity transform.\n * @return {!Transform} Identity transform.\n */\nexport function create() {\n return [1, 0, 0, 1, 0, 0];\n}\n/**\n * Resets the given transform to an identity transform.\n * @param {!Transform} transform Transform.\n * @return {!Transform} Transform.\n */\nexport function reset(transform) {\n return set(transform, 1, 0, 0, 1, 0, 0);\n}\n/**\n * Multiply the underlying matrices of two transforms and return the result in\n * the first transform.\n * @param {!Transform} transform1 Transform parameters of matrix 1.\n * @param {!Transform} transform2 Transform parameters of matrix 2.\n * @return {!Transform} transform1 multiplied with transform2.\n */\nexport function multiply(transform1, transform2) {\n var a1 = transform1[0];\n var b1 = transform1[1];\n var c1 = transform1[2];\n var d1 = transform1[3];\n var e1 = transform1[4];\n var f1 = transform1[5];\n var a2 = transform2[0];\n var b2 = transform2[1];\n var c2 = transform2[2];\n var d2 = transform2[3];\n var e2 = transform2[4];\n var f2 = transform2[5];\n transform1[0] = a1 * a2 + c1 * b2;\n transform1[1] = b1 * a2 + d1 * b2;\n transform1[2] = a1 * c2 + c1 * d2;\n transform1[3] = b1 * c2 + d1 * d2;\n transform1[4] = a1 * e2 + c1 * f2 + e1;\n transform1[5] = b1 * e2 + d1 * f2 + f1;\n return transform1;\n}\n/**\n * Set the transform components a-f on a given transform.\n * @param {!Transform} transform Transform.\n * @param {number} a The a component of the transform.\n * @param {number} b The b component of the transform.\n * @param {number} c The c component of the transform.\n * @param {number} d The d component of the transform.\n * @param {number} e The e component of the transform.\n * @param {number} f The f component of the transform.\n * @return {!Transform} Matrix with transform applied.\n */\nexport function set(transform, a, b, c, d, e, f) {\n transform[0] = a;\n transform[1] = b;\n transform[2] = c;\n transform[3] = d;\n transform[4] = e;\n transform[5] = f;\n return transform;\n}\n/**\n * Set transform on one matrix from another matrix.\n * @param {!Transform} transform1 Matrix to set transform to.\n * @param {!Transform} transform2 Matrix to set transform from.\n * @return {!Transform} transform1 with transform from transform2 applied.\n */\nexport function setFromArray(transform1, transform2) {\n transform1[0] = transform2[0];\n transform1[1] = transform2[1];\n transform1[2] = transform2[2];\n transform1[3] = transform2[3];\n transform1[4] = transform2[4];\n transform1[5] = transform2[5];\n return transform1;\n}\n/**\n * Transforms the given coordinate with the given transform returning the\n * resulting, transformed coordinate. The coordinate will be modified in-place.\n *\n * @param {Transform} transform The transformation.\n * @param {import(\"./coordinate.js\").Coordinate|import(\"./pixel.js\").Pixel} coordinate The coordinate to transform.\n * @return {import(\"./coordinate.js\").Coordinate|import(\"./pixel.js\").Pixel} return coordinate so that operations can be\n * chained together.\n */\nexport function apply(transform, coordinate) {\n var x = coordinate[0];\n var y = coordinate[1];\n coordinate[0] = transform[0] * x + transform[2] * y + transform[4];\n coordinate[1] = transform[1] * x + transform[3] * y + transform[5];\n return coordinate;\n}\n/**\n * Applies rotation to the given transform.\n * @param {!Transform} transform Transform.\n * @param {number} angle Angle in radians.\n * @return {!Transform} The rotated transform.\n */\nexport function rotate(transform, angle) {\n var cos = Math.cos(angle);\n var sin = Math.sin(angle);\n return multiply(transform, set(tmp_, cos, sin, -sin, cos, 0, 0));\n}\n/**\n * Applies scale to a given transform.\n * @param {!Transform} transform Transform.\n * @param {number} x Scale factor x.\n * @param {number} y Scale factor y.\n * @return {!Transform} The scaled transform.\n */\nexport function scale(transform, x, y) {\n return multiply(transform, set(tmp_, x, 0, 0, y, 0, 0));\n}\n/**\n * Creates a scale transform.\n * @param {!Transform} target Transform to overwrite.\n * @param {number} x Scale factor x.\n * @param {number} y Scale factor y.\n * @return {!Transform} The scale transform.\n */\nexport function makeScale(target, x, y) {\n return set(target, x, 0, 0, y, 0, 0);\n}\n/**\n * Applies translation to the given transform.\n * @param {!Transform} transform Transform.\n * @param {number} dx Translation x.\n * @param {number} dy Translation y.\n * @return {!Transform} The translated transform.\n */\nexport function translate(transform, dx, dy) {\n return multiply(transform, set(tmp_, 1, 0, 0, 1, dx, dy));\n}\n/**\n * Creates a composite transform given an initial translation, scale, rotation, and\n * final translation (in that order only, not commutative).\n * @param {!Transform} transform The transform (will be modified in place).\n * @param {number} dx1 Initial translation x.\n * @param {number} dy1 Initial translation y.\n * @param {number} sx Scale factor x.\n * @param {number} sy Scale factor y.\n * @param {number} angle Rotation (in counter-clockwise radians).\n * @param {number} dx2 Final translation x.\n * @param {number} dy2 Final translation y.\n * @return {!Transform} The composite transform.\n */\nexport function compose(transform, dx1, dy1, sx, sy, angle, dx2, dy2) {\n var sin = Math.sin(angle);\n var cos = Math.cos(angle);\n transform[0] = sx * cos;\n transform[1] = sy * sin;\n transform[2] = -sx * sin;\n transform[3] = sy * cos;\n transform[4] = dx2 * sx * cos - dy2 * sx * sin + dx1;\n transform[5] = dx2 * sy * sin + dy2 * sy * cos + dy1;\n return transform;\n}\n/**\n * Creates a composite transform given an initial translation, scale, rotation, and\n * final translation (in that order only, not commutative). The resulting transform\n * string can be applied as `transform` property of an HTMLElement's style.\n * @param {number} dx1 Initial translation x.\n * @param {number} dy1 Initial translation y.\n * @param {number} sx Scale factor x.\n * @param {number} sy Scale factor y.\n * @param {number} angle Rotation (in counter-clockwise radians).\n * @param {number} dx2 Final translation x.\n * @param {number} dy2 Final translation y.\n * @return {string} The composite css transform.\n * @api\n */\nexport function composeCssTransform(dx1, dy1, sx, sy, angle, dx2, dy2) {\n return toString(compose(create(), dx1, dy1, sx, sy, angle, dx2, dy2));\n}\n/**\n * Invert the given transform.\n * @param {!Transform} source The source transform to invert.\n * @return {!Transform} The inverted (source) transform.\n */\nexport function invert(source) {\n return makeInverse(source, source);\n}\n/**\n * Invert the given transform.\n * @param {!Transform} target Transform to be set as the inverse of\n * the source transform.\n * @param {!Transform} source The source transform to invert.\n * @return {!Transform} The inverted (target) transform.\n */\nexport function makeInverse(target, source) {\n var det = determinant(source);\n assert(det !== 0, 32); // Transformation matrix cannot be inverted\n var a = source[0];\n var b = source[1];\n var c = source[2];\n var d = source[3];\n var e = source[4];\n var f = source[5];\n target[0] = d / det;\n target[1] = -b / det;\n target[2] = -c / det;\n target[3] = a / det;\n target[4] = (c * f - d * e) / det;\n target[5] = -(a * f - b * e) / det;\n return target;\n}\n/**\n * Returns the determinant of the given matrix.\n * @param {!Transform} mat Matrix.\n * @return {number} Determinant.\n */\nexport function determinant(mat) {\n return mat[0] * mat[3] - mat[1] * mat[2];\n}\n/**\n * @type {HTMLElement}\n * @private\n */\nvar transformStringDiv;\n/**\n * A rounded string version of the transform. This can be used\n * for CSS transforms.\n * @param {!Transform} mat Matrix.\n * @return {string} The transform as a string.\n */\nexport function toString(mat) {\n var transformString = 'matrix(' + mat.join(', ') + ')';\n if (WORKER_OFFSCREEN_CANVAS) {\n return transformString;\n }\n var node = transformStringDiv || (transformStringDiv = document.createElement('div'));\n node.style.transform = transformString;\n return node.style.transform;\n}\n//# sourceMappingURL=transform.js.map","/**\n * @module ol/geom/GeometryType\n */\n/**\n * The geometry type. One of `'Point'`, `'LineString'`, `'LinearRing'`,\n * `'Polygon'`, `'MultiPoint'`, `'MultiLineString'`, `'MultiPolygon'`,\n * `'GeometryCollection'`, `'Circle'`.\n * @enum {string}\n */\nexport default {\n POINT: 'Point',\n LINE_STRING: 'LineString',\n LINEAR_RING: 'LinearRing',\n POLYGON: 'Polygon',\n MULTI_POINT: 'MultiPoint',\n MULTI_LINE_STRING: 'MultiLineString',\n MULTI_POLYGON: 'MultiPolygon',\n GEOMETRY_COLLECTION: 'GeometryCollection',\n CIRCLE: 'Circle',\n};\n//# sourceMappingURL=GeometryType.js.map","/**\n * @module ol/geom/flat/transform\n */\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {import(\"../../transform.js\").Transform} transform Transform.\n * @param {Array} [opt_dest] Destination.\n * @return {Array} Transformed coordinates.\n */\nexport function transform2D(flatCoordinates, offset, end, stride, transform, opt_dest) {\n var dest = opt_dest ? opt_dest : [];\n var i = 0;\n for (var j = offset; j < end; j += stride) {\n var x = flatCoordinates[j];\n var y = flatCoordinates[j + 1];\n dest[i++] = transform[0] * x + transform[2] * y + transform[4];\n dest[i++] = transform[1] * x + transform[3] * y + transform[5];\n }\n if (opt_dest && dest.length != i) {\n dest.length = i;\n }\n return dest;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} angle Angle.\n * @param {Array} anchor Rotation anchor point.\n * @param {Array} [opt_dest] Destination.\n * @return {Array} Transformed coordinates.\n */\nexport function rotate(flatCoordinates, offset, end, stride, angle, anchor, opt_dest) {\n var dest = opt_dest ? opt_dest : [];\n var cos = Math.cos(angle);\n var sin = Math.sin(angle);\n var anchorX = anchor[0];\n var anchorY = anchor[1];\n var i = 0;\n for (var j = offset; j < end; j += stride) {\n var deltaX = flatCoordinates[j] - anchorX;\n var deltaY = flatCoordinates[j + 1] - anchorY;\n dest[i++] = anchorX + deltaX * cos - deltaY * sin;\n dest[i++] = anchorY + deltaX * sin + deltaY * cos;\n for (var k = j + 2; k < j + stride; ++k) {\n dest[i++] = flatCoordinates[k];\n }\n }\n if (opt_dest && dest.length != i) {\n dest.length = i;\n }\n return dest;\n}\n/**\n * Scale the coordinates.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} sx Scale factor in the x-direction.\n * @param {number} sy Scale factor in the y-direction.\n * @param {Array} anchor Scale anchor point.\n * @param {Array} [opt_dest] Destination.\n * @return {Array} Transformed coordinates.\n */\nexport function scale(flatCoordinates, offset, end, stride, sx, sy, anchor, opt_dest) {\n var dest = opt_dest ? opt_dest : [];\n var anchorX = anchor[0];\n var anchorY = anchor[1];\n var i = 0;\n for (var j = offset; j < end; j += stride) {\n var deltaX = flatCoordinates[j] - anchorX;\n var deltaY = flatCoordinates[j + 1] - anchorY;\n dest[i++] = anchorX + sx * deltaX;\n dest[i++] = anchorY + sy * deltaY;\n for (var k = j + 2; k < j + stride; ++k) {\n dest[i++] = flatCoordinates[k];\n }\n }\n if (opt_dest && dest.length != i) {\n dest.length = i;\n }\n return dest;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} deltaX Delta X.\n * @param {number} deltaY Delta Y.\n * @param {Array} [opt_dest] Destination.\n * @return {Array} Transformed coordinates.\n */\nexport function translate(flatCoordinates, offset, end, stride, deltaX, deltaY, opt_dest) {\n var dest = opt_dest ? opt_dest : [];\n var i = 0;\n for (var j = offset; j < end; j += stride) {\n dest[i++] = flatCoordinates[j] + deltaX;\n dest[i++] = flatCoordinates[j + 1] + deltaY;\n for (var k = j + 2; k < j + stride; ++k) {\n dest[i++] = flatCoordinates[k];\n }\n }\n if (opt_dest && dest.length != i) {\n dest.length = i;\n }\n return dest;\n}\n//# sourceMappingURL=transform.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/geom/Geometry\n */\nimport BaseObject from '../Object.js';\nimport Units from '../proj/Units.js';\nimport { abstract } from '../util.js';\nimport { compose as composeTransform, create as createTransform, } from '../transform.js';\nimport { createEmpty, createOrUpdateEmpty, getHeight, returnOrUpdate, } from '../extent.js';\nimport { get as getProjection, getTransform } from '../proj.js';\nimport { memoizeOne } from '../functions.js';\nimport { transform2D } from './flat/transform.js';\n/**\n * @type {import(\"../transform.js\").Transform}\n */\nvar tmpTransform = createTransform();\n/**\n * @classdesc\n * Abstract base class; normally only used for creating subclasses and not\n * instantiated in apps.\n * Base class for vector geometries.\n *\n * To get notified of changes to the geometry, register a listener for the\n * generic `change` event on your geometry instance.\n *\n * @abstract\n * @api\n */\nvar Geometry = /** @class */ (function (_super) {\n __extends(Geometry, _super);\n function Geometry() {\n var _this = _super.call(this) || this;\n /**\n * @private\n * @type {import(\"../extent.js\").Extent}\n */\n _this.extent_ = createEmpty();\n /**\n * @private\n * @type {number}\n */\n _this.extentRevision_ = -1;\n /**\n * @protected\n * @type {number}\n */\n _this.simplifiedGeometryMaxMinSquaredTolerance = 0;\n /**\n * @protected\n * @type {number}\n */\n _this.simplifiedGeometryRevision = 0;\n /**\n * Get a transformed and simplified version of the geometry.\n * @abstract\n * @param {number} revision The geometry revision.\n * @param {number} squaredTolerance Squared tolerance.\n * @param {import(\"../proj.js\").TransformFunction} [opt_transform] Optional transform function.\n * @return {Geometry} Simplified geometry.\n */\n _this.simplifyTransformedInternal = memoizeOne(function (revision, squaredTolerance, opt_transform) {\n if (!opt_transform) {\n return this.getSimplifiedGeometry(squaredTolerance);\n }\n var clone = this.clone();\n clone.applyTransform(opt_transform);\n return clone.getSimplifiedGeometry(squaredTolerance);\n });\n return _this;\n }\n /**\n * Get a transformed and simplified version of the geometry.\n * @abstract\n * @param {number} squaredTolerance Squared tolerance.\n * @param {import(\"../proj.js\").TransformFunction} [opt_transform] Optional transform function.\n * @return {Geometry} Simplified geometry.\n */\n Geometry.prototype.simplifyTransformed = function (squaredTolerance, opt_transform) {\n return this.simplifyTransformedInternal(this.getRevision(), squaredTolerance, opt_transform);\n };\n /**\n * Make a complete copy of the geometry.\n * @abstract\n * @return {!Geometry} Clone.\n */\n Geometry.prototype.clone = function () {\n return abstract();\n };\n /**\n * @abstract\n * @param {number} x X.\n * @param {number} y Y.\n * @param {import(\"../coordinate.js\").Coordinate} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @return {number} Minimum squared distance.\n */\n Geometry.prototype.closestPointXY = function (x, y, closestPoint, minSquaredDistance) {\n return abstract();\n };\n /**\n * @param {number} x X.\n * @param {number} y Y.\n * @return {boolean} Contains (x, y).\n */\n Geometry.prototype.containsXY = function (x, y) {\n var coord = this.getClosestPoint([x, y]);\n return coord[0] === x && coord[1] === y;\n };\n /**\n * Return the closest point of the geometry to the passed point as\n * {@link module:ol/coordinate~Coordinate coordinate}.\n * @param {import(\"../coordinate.js\").Coordinate} point Point.\n * @param {import(\"../coordinate.js\").Coordinate} [opt_closestPoint] Closest point.\n * @return {import(\"../coordinate.js\").Coordinate} Closest point.\n * @api\n */\n Geometry.prototype.getClosestPoint = function (point, opt_closestPoint) {\n var closestPoint = opt_closestPoint ? opt_closestPoint : [NaN, NaN];\n this.closestPointXY(point[0], point[1], closestPoint, Infinity);\n return closestPoint;\n };\n /**\n * Returns true if this geometry includes the specified coordinate. If the\n * coordinate is on the boundary of the geometry, returns false.\n * @param {import(\"../coordinate.js\").Coordinate} coordinate Coordinate.\n * @return {boolean} Contains coordinate.\n * @api\n */\n Geometry.prototype.intersectsCoordinate = function (coordinate) {\n return this.containsXY(coordinate[0], coordinate[1]);\n };\n /**\n * @abstract\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @protected\n * @return {import(\"../extent.js\").Extent} extent Extent.\n */\n Geometry.prototype.computeExtent = function (extent) {\n return abstract();\n };\n /**\n * Get the extent of the geometry.\n * @param {import(\"../extent.js\").Extent} [opt_extent] Extent.\n * @return {import(\"../extent.js\").Extent} extent Extent.\n * @api\n */\n Geometry.prototype.getExtent = function (opt_extent) {\n if (this.extentRevision_ != this.getRevision()) {\n var extent = this.computeExtent(this.extent_);\n if (isNaN(extent[0]) || isNaN(extent[1])) {\n createOrUpdateEmpty(extent);\n }\n this.extentRevision_ = this.getRevision();\n }\n return returnOrUpdate(this.extent_, opt_extent);\n };\n /**\n * Rotate the geometry around a given coordinate. This modifies the geometry\n * coordinates in place.\n * @abstract\n * @param {number} angle Rotation angle in radians.\n * @param {import(\"../coordinate.js\").Coordinate} anchor The rotation center.\n * @api\n */\n Geometry.prototype.rotate = function (angle, anchor) {\n abstract();\n };\n /**\n * Scale the geometry (with an optional origin). This modifies the geometry\n * coordinates in place.\n * @abstract\n * @param {number} sx The scaling factor in the x-direction.\n * @param {number} [opt_sy] The scaling factor in the y-direction (defaults to sx).\n * @param {import(\"../coordinate.js\").Coordinate} [opt_anchor] The scale origin (defaults to the center\n * of the geometry extent).\n * @api\n */\n Geometry.prototype.scale = function (sx, opt_sy, opt_anchor) {\n abstract();\n };\n /**\n * Create a simplified version of this geometry. For linestrings, this uses\n * the [Douglas Peucker](https://en.wikipedia.org/wiki/Ramer-Douglas-Peucker_algorithm)\n * algorithm. For polygons, a quantization-based\n * simplification is used to preserve topology.\n * @param {number} tolerance The tolerance distance for simplification.\n * @return {Geometry} A new, simplified version of the original geometry.\n * @api\n */\n Geometry.prototype.simplify = function (tolerance) {\n return this.getSimplifiedGeometry(tolerance * tolerance);\n };\n /**\n * Create a simplified version of this geometry using the Douglas Peucker\n * algorithm.\n * See https://en.wikipedia.org/wiki/Ramer-Douglas-Peucker_algorithm.\n * @abstract\n * @param {number} squaredTolerance Squared tolerance.\n * @return {Geometry} Simplified geometry.\n */\n Geometry.prototype.getSimplifiedGeometry = function (squaredTolerance) {\n return abstract();\n };\n /**\n * Get the type of this geometry.\n * @abstract\n * @return {import(\"./GeometryType.js\").default} Geometry type.\n */\n Geometry.prototype.getType = function () {\n return abstract();\n };\n /**\n * Apply a transform function to the coordinates of the geometry.\n * The geometry is modified in place.\n * If you do not want the geometry modified in place, first `clone()` it and\n * then use this function on the clone.\n * @abstract\n * @param {import(\"../proj.js\").TransformFunction} transformFn Transform function.\n * Called with a flat array of geometry coordinates.\n */\n Geometry.prototype.applyTransform = function (transformFn) {\n abstract();\n };\n /**\n * Test if the geometry and the passed extent intersect.\n * @abstract\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @return {boolean} `true` if the geometry and the extent intersect.\n */\n Geometry.prototype.intersectsExtent = function (extent) {\n return abstract();\n };\n /**\n * Translate the geometry. This modifies the geometry coordinates in place. If\n * instead you want a new geometry, first `clone()` this geometry.\n * @abstract\n * @param {number} deltaX Delta X.\n * @param {number} deltaY Delta Y.\n * @api\n */\n Geometry.prototype.translate = function (deltaX, deltaY) {\n abstract();\n };\n /**\n * Transform each coordinate of the geometry from one coordinate reference\n * system to another. The geometry is modified in place.\n * For example, a line will be transformed to a line and a circle to a circle.\n * If you do not want the geometry modified in place, first `clone()` it and\n * then use this function on the clone.\n *\n * @param {import(\"../proj.js\").ProjectionLike} source The current projection. Can be a\n * string identifier or a {@link module:ol/proj/Projection~Projection} object.\n * @param {import(\"../proj.js\").ProjectionLike} destination The desired projection. Can be a\n * string identifier or a {@link module:ol/proj/Projection~Projection} object.\n * @return {Geometry} This geometry. Note that original geometry is\n * modified in place.\n * @api\n */\n Geometry.prototype.transform = function (source, destination) {\n /** @type {import(\"../proj/Projection.js\").default} */\n var sourceProj = getProjection(source);\n var transformFn = sourceProj.getUnits() == Units.TILE_PIXELS\n ? function (inCoordinates, outCoordinates, stride) {\n var pixelExtent = sourceProj.getExtent();\n var projectedExtent = sourceProj.getWorldExtent();\n var scale = getHeight(projectedExtent) / getHeight(pixelExtent);\n composeTransform(tmpTransform, projectedExtent[0], projectedExtent[3], scale, -scale, 0, 0, 0);\n transform2D(inCoordinates, 0, inCoordinates.length, stride, tmpTransform, outCoordinates);\n return getTransform(sourceProj, destination)(inCoordinates, outCoordinates, stride);\n }\n : getTransform(sourceProj, destination);\n this.applyTransform(transformFn);\n return this;\n };\n return Geometry;\n}(BaseObject));\nexport default Geometry;\n//# sourceMappingURL=Geometry.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/geom/SimpleGeometry\n */\nimport Geometry from './Geometry.js';\nimport GeometryLayout from './GeometryLayout.js';\nimport { abstract } from '../util.js';\nimport { createOrUpdateFromFlatCoordinates, getCenter } from '../extent.js';\nimport { rotate, scale, transform2D, translate } from './flat/transform.js';\n/**\n * @classdesc\n * Abstract base class; only used for creating subclasses; do not instantiate\n * in apps, as cannot be rendered.\n *\n * @abstract\n * @api\n */\nvar SimpleGeometry = /** @class */ (function (_super) {\n __extends(SimpleGeometry, _super);\n function SimpleGeometry() {\n var _this = _super.call(this) || this;\n /**\n * @protected\n * @type {import(\"./GeometryLayout.js\").default}\n */\n _this.layout = GeometryLayout.XY;\n /**\n * @protected\n * @type {number}\n */\n _this.stride = 2;\n /**\n * @protected\n * @type {Array}\n */\n _this.flatCoordinates = null;\n return _this;\n }\n /**\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @protected\n * @return {import(\"../extent.js\").Extent} extent Extent.\n */\n SimpleGeometry.prototype.computeExtent = function (extent) {\n return createOrUpdateFromFlatCoordinates(this.flatCoordinates, 0, this.flatCoordinates.length, this.stride, extent);\n };\n /**\n * @abstract\n * @return {Array<*>} Coordinates.\n */\n SimpleGeometry.prototype.getCoordinates = function () {\n return abstract();\n };\n /**\n * Return the first coordinate of the geometry.\n * @return {import(\"../coordinate.js\").Coordinate} First coordinate.\n * @api\n */\n SimpleGeometry.prototype.getFirstCoordinate = function () {\n return this.flatCoordinates.slice(0, this.stride);\n };\n /**\n * @return {Array} Flat coordinates.\n */\n SimpleGeometry.prototype.getFlatCoordinates = function () {\n return this.flatCoordinates;\n };\n /**\n * Return the last coordinate of the geometry.\n * @return {import(\"../coordinate.js\").Coordinate} Last point.\n * @api\n */\n SimpleGeometry.prototype.getLastCoordinate = function () {\n return this.flatCoordinates.slice(this.flatCoordinates.length - this.stride);\n };\n /**\n * Return the {@link module:ol/geom/GeometryLayout layout} of the geometry.\n * @return {import(\"./GeometryLayout.js\").default} Layout.\n * @api\n */\n SimpleGeometry.prototype.getLayout = function () {\n return this.layout;\n };\n /**\n * Create a simplified version of this geometry using the Douglas Peucker algorithm.\n * @param {number} squaredTolerance Squared tolerance.\n * @return {SimpleGeometry} Simplified geometry.\n */\n SimpleGeometry.prototype.getSimplifiedGeometry = function (squaredTolerance) {\n if (this.simplifiedGeometryRevision !== this.getRevision()) {\n this.simplifiedGeometryMaxMinSquaredTolerance = 0;\n this.simplifiedGeometryRevision = this.getRevision();\n }\n // If squaredTolerance is negative or if we know that simplification will not\n // have any effect then just return this.\n if (squaredTolerance < 0 ||\n (this.simplifiedGeometryMaxMinSquaredTolerance !== 0 &&\n squaredTolerance <= this.simplifiedGeometryMaxMinSquaredTolerance)) {\n return this;\n }\n var simplifiedGeometry = this.getSimplifiedGeometryInternal(squaredTolerance);\n var simplifiedFlatCoordinates = simplifiedGeometry.getFlatCoordinates();\n if (simplifiedFlatCoordinates.length < this.flatCoordinates.length) {\n return simplifiedGeometry;\n }\n else {\n // Simplification did not actually remove any coordinates. We now know\n // that any calls to getSimplifiedGeometry with a squaredTolerance less\n // than or equal to the current squaredTolerance will also not have any\n // effect. This allows us to short circuit simplification (saving CPU\n // cycles) and prevents the cache of simplified geometries from filling\n // up with useless identical copies of this geometry (saving memory).\n this.simplifiedGeometryMaxMinSquaredTolerance = squaredTolerance;\n return this;\n }\n };\n /**\n * @param {number} squaredTolerance Squared tolerance.\n * @return {SimpleGeometry} Simplified geometry.\n * @protected\n */\n SimpleGeometry.prototype.getSimplifiedGeometryInternal = function (squaredTolerance) {\n return this;\n };\n /**\n * @return {number} Stride.\n */\n SimpleGeometry.prototype.getStride = function () {\n return this.stride;\n };\n /**\n * @param {import(\"./GeometryLayout.js\").default} layout Layout.\n * @param {Array} flatCoordinates Flat coordinates.\n */\n SimpleGeometry.prototype.setFlatCoordinates = function (layout, flatCoordinates) {\n this.stride = getStrideForLayout(layout);\n this.layout = layout;\n this.flatCoordinates = flatCoordinates;\n };\n /**\n * @abstract\n * @param {!Array<*>} coordinates Coordinates.\n * @param {import(\"./GeometryLayout.js\").default} [opt_layout] Layout.\n */\n SimpleGeometry.prototype.setCoordinates = function (coordinates, opt_layout) {\n abstract();\n };\n /**\n * @param {import(\"./GeometryLayout.js\").default|undefined} layout Layout.\n * @param {Array<*>} coordinates Coordinates.\n * @param {number} nesting Nesting.\n * @protected\n */\n SimpleGeometry.prototype.setLayout = function (layout, coordinates, nesting) {\n /** @type {number} */\n var stride;\n if (layout) {\n stride = getStrideForLayout(layout);\n }\n else {\n for (var i = 0; i < nesting; ++i) {\n if (coordinates.length === 0) {\n this.layout = GeometryLayout.XY;\n this.stride = 2;\n return;\n }\n else {\n coordinates = /** @type {Array} */ (coordinates[0]);\n }\n }\n stride = coordinates.length;\n layout = getLayoutForStride(stride);\n }\n this.layout = layout;\n this.stride = stride;\n };\n /**\n * Apply a transform function to the coordinates of the geometry.\n * The geometry is modified in place.\n * If you do not want the geometry modified in place, first `clone()` it and\n * then use this function on the clone.\n * @param {import(\"../proj.js\").TransformFunction} transformFn Transform function.\n * Called with a flat array of geometry coordinates.\n * @api\n */\n SimpleGeometry.prototype.applyTransform = function (transformFn) {\n if (this.flatCoordinates) {\n transformFn(this.flatCoordinates, this.flatCoordinates, this.stride);\n this.changed();\n }\n };\n /**\n * Rotate the geometry around a given coordinate. This modifies the geometry\n * coordinates in place.\n * @param {number} angle Rotation angle in counter-clockwise radians.\n * @param {import(\"../coordinate.js\").Coordinate} anchor The rotation center.\n * @api\n */\n SimpleGeometry.prototype.rotate = function (angle, anchor) {\n var flatCoordinates = this.getFlatCoordinates();\n if (flatCoordinates) {\n var stride = this.getStride();\n rotate(flatCoordinates, 0, flatCoordinates.length, stride, angle, anchor, flatCoordinates);\n this.changed();\n }\n };\n /**\n * Scale the geometry (with an optional origin). This modifies the geometry\n * coordinates in place.\n * @param {number} sx The scaling factor in the x-direction.\n * @param {number} [opt_sy] The scaling factor in the y-direction (defaults to sx).\n * @param {import(\"../coordinate.js\").Coordinate} [opt_anchor] The scale origin (defaults to the center\n * of the geometry extent).\n * @api\n */\n SimpleGeometry.prototype.scale = function (sx, opt_sy, opt_anchor) {\n var sy = opt_sy;\n if (sy === undefined) {\n sy = sx;\n }\n var anchor = opt_anchor;\n if (!anchor) {\n anchor = getCenter(this.getExtent());\n }\n var flatCoordinates = this.getFlatCoordinates();\n if (flatCoordinates) {\n var stride = this.getStride();\n scale(flatCoordinates, 0, flatCoordinates.length, stride, sx, sy, anchor, flatCoordinates);\n this.changed();\n }\n };\n /**\n * Translate the geometry. This modifies the geometry coordinates in place. If\n * instead you want a new geometry, first `clone()` this geometry.\n * @param {number} deltaX Delta X.\n * @param {number} deltaY Delta Y.\n * @api\n */\n SimpleGeometry.prototype.translate = function (deltaX, deltaY) {\n var flatCoordinates = this.getFlatCoordinates();\n if (flatCoordinates) {\n var stride = this.getStride();\n translate(flatCoordinates, 0, flatCoordinates.length, stride, deltaX, deltaY, flatCoordinates);\n this.changed();\n }\n };\n return SimpleGeometry;\n}(Geometry));\n/**\n * @param {number} stride Stride.\n * @return {import(\"./GeometryLayout.js\").default} layout Layout.\n */\nfunction getLayoutForStride(stride) {\n var layout;\n if (stride == 2) {\n layout = GeometryLayout.XY;\n }\n else if (stride == 3) {\n layout = GeometryLayout.XYZ;\n }\n else if (stride == 4) {\n layout = GeometryLayout.XYZM;\n }\n return /** @type {import(\"./GeometryLayout.js\").default} */ (layout);\n}\n/**\n * @param {import(\"./GeometryLayout.js\").default} layout Layout.\n * @return {number} Stride.\n */\nexport function getStrideForLayout(layout) {\n var stride;\n if (layout == GeometryLayout.XY) {\n stride = 2;\n }\n else if (layout == GeometryLayout.XYZ || layout == GeometryLayout.XYM) {\n stride = 3;\n }\n else if (layout == GeometryLayout.XYZM) {\n stride = 4;\n }\n return /** @type {number} */ (stride);\n}\n/**\n * @param {SimpleGeometry} simpleGeometry Simple geometry.\n * @param {import(\"../transform.js\").Transform} transform Transform.\n * @param {Array} [opt_dest] Destination.\n * @return {Array} Transformed flat coordinates.\n */\nexport function transformGeom2D(simpleGeometry, transform, opt_dest) {\n var flatCoordinates = simpleGeometry.getFlatCoordinates();\n if (!flatCoordinates) {\n return null;\n }\n else {\n var stride = simpleGeometry.getStride();\n return transform2D(flatCoordinates, 0, flatCoordinates.length, stride, transform, opt_dest);\n }\n}\nexport default SimpleGeometry;\n//# sourceMappingURL=SimpleGeometry.js.map","/**\n * @module ol/geom/flat/closest\n */\nimport { lerp, squaredDistance as squaredDx } from '../../math.js';\n/**\n * Returns the point on the 2D line segment flatCoordinates[offset1] to\n * flatCoordinates[offset2] that is closest to the point (x, y). Extra\n * dimensions are linearly interpolated.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset1 Offset 1.\n * @param {number} offset2 Offset 2.\n * @param {number} stride Stride.\n * @param {number} x X.\n * @param {number} y Y.\n * @param {Array} closestPoint Closest point.\n */\nfunction assignClosest(flatCoordinates, offset1, offset2, stride, x, y, closestPoint) {\n var x1 = flatCoordinates[offset1];\n var y1 = flatCoordinates[offset1 + 1];\n var dx = flatCoordinates[offset2] - x1;\n var dy = flatCoordinates[offset2 + 1] - y1;\n var offset;\n if (dx === 0 && dy === 0) {\n offset = offset1;\n }\n else {\n var t = ((x - x1) * dx + (y - y1) * dy) / (dx * dx + dy * dy);\n if (t > 1) {\n offset = offset2;\n }\n else if (t > 0) {\n for (var i = 0; i < stride; ++i) {\n closestPoint[i] = lerp(flatCoordinates[offset1 + i], flatCoordinates[offset2 + i], t);\n }\n closestPoint.length = stride;\n return;\n }\n else {\n offset = offset1;\n }\n }\n for (var i = 0; i < stride; ++i) {\n closestPoint[i] = flatCoordinates[offset + i];\n }\n closestPoint.length = stride;\n}\n/**\n * Return the squared of the largest distance between any pair of consecutive\n * coordinates.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} max Max squared delta.\n * @return {number} Max squared delta.\n */\nexport function maxSquaredDelta(flatCoordinates, offset, end, stride, max) {\n var x1 = flatCoordinates[offset];\n var y1 = flatCoordinates[offset + 1];\n for (offset += stride; offset < end; offset += stride) {\n var x2 = flatCoordinates[offset];\n var y2 = flatCoordinates[offset + 1];\n var squaredDelta = squaredDx(x1, y1, x2, y2);\n if (squaredDelta > max) {\n max = squaredDelta;\n }\n x1 = x2;\n y1 = y2;\n }\n return max;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {number} max Max squared delta.\n * @return {number} Max squared delta.\n */\nexport function arrayMaxSquaredDelta(flatCoordinates, offset, ends, stride, max) {\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n var end = ends[i];\n max = maxSquaredDelta(flatCoordinates, offset, end, stride, max);\n offset = end;\n }\n return max;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {number} max Max squared delta.\n * @return {number} Max squared delta.\n */\nexport function multiArrayMaxSquaredDelta(flatCoordinates, offset, endss, stride, max) {\n for (var i = 0, ii = endss.length; i < ii; ++i) {\n var ends = endss[i];\n max = arrayMaxSquaredDelta(flatCoordinates, offset, ends, stride, max);\n offset = ends[ends.length - 1];\n }\n return max;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} maxDelta Max delta.\n * @param {boolean} isRing Is ring.\n * @param {number} x X.\n * @param {number} y Y.\n * @param {Array} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @param {Array} [opt_tmpPoint] Temporary point object.\n * @return {number} Minimum squared distance.\n */\nexport function assignClosestPoint(flatCoordinates, offset, end, stride, maxDelta, isRing, x, y, closestPoint, minSquaredDistance, opt_tmpPoint) {\n if (offset == end) {\n return minSquaredDistance;\n }\n var i, squaredDistance;\n if (maxDelta === 0) {\n // All points are identical, so just test the first point.\n squaredDistance = squaredDx(x, y, flatCoordinates[offset], flatCoordinates[offset + 1]);\n if (squaredDistance < minSquaredDistance) {\n for (i = 0; i < stride; ++i) {\n closestPoint[i] = flatCoordinates[offset + i];\n }\n closestPoint.length = stride;\n return squaredDistance;\n }\n else {\n return minSquaredDistance;\n }\n }\n var tmpPoint = opt_tmpPoint ? opt_tmpPoint : [NaN, NaN];\n var index = offset + stride;\n while (index < end) {\n assignClosest(flatCoordinates, index - stride, index, stride, x, y, tmpPoint);\n squaredDistance = squaredDx(x, y, tmpPoint[0], tmpPoint[1]);\n if (squaredDistance < minSquaredDistance) {\n minSquaredDistance = squaredDistance;\n for (i = 0; i < stride; ++i) {\n closestPoint[i] = tmpPoint[i];\n }\n closestPoint.length = stride;\n index += stride;\n }\n else {\n // Skip ahead multiple points, because we know that all the skipped\n // points cannot be any closer than the closest point we have found so\n // far. We know this because we know how close the current point is, how\n // close the closest point we have found so far is, and the maximum\n // distance between consecutive points. For example, if we're currently\n // at distance 10, the best we've found so far is 3, and that the maximum\n // distance between consecutive points is 2, then we'll need to skip at\n // least (10 - 3) / 2 == 3 (rounded down) points to have any chance of\n // finding a closer point. We use Math.max(..., 1) to ensure that we\n // always advance at least one point, to avoid an infinite loop.\n index +=\n stride *\n Math.max(((Math.sqrt(squaredDistance) - Math.sqrt(minSquaredDistance)) /\n maxDelta) |\n 0, 1);\n }\n }\n if (isRing) {\n // Check the closing segment.\n assignClosest(flatCoordinates, end - stride, offset, stride, x, y, tmpPoint);\n squaredDistance = squaredDx(x, y, tmpPoint[0], tmpPoint[1]);\n if (squaredDistance < minSquaredDistance) {\n minSquaredDistance = squaredDistance;\n for (i = 0; i < stride; ++i) {\n closestPoint[i] = tmpPoint[i];\n }\n closestPoint.length = stride;\n }\n }\n return minSquaredDistance;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {number} maxDelta Max delta.\n * @param {boolean} isRing Is ring.\n * @param {number} x X.\n * @param {number} y Y.\n * @param {Array} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @param {Array} [opt_tmpPoint] Temporary point object.\n * @return {number} Minimum squared distance.\n */\nexport function assignClosestArrayPoint(flatCoordinates, offset, ends, stride, maxDelta, isRing, x, y, closestPoint, minSquaredDistance, opt_tmpPoint) {\n var tmpPoint = opt_tmpPoint ? opt_tmpPoint : [NaN, NaN];\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n var end = ends[i];\n minSquaredDistance = assignClosestPoint(flatCoordinates, offset, end, stride, maxDelta, isRing, x, y, closestPoint, minSquaredDistance, tmpPoint);\n offset = end;\n }\n return minSquaredDistance;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {number} maxDelta Max delta.\n * @param {boolean} isRing Is ring.\n * @param {number} x X.\n * @param {number} y Y.\n * @param {Array} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @param {Array} [opt_tmpPoint] Temporary point object.\n * @return {number} Minimum squared distance.\n */\nexport function assignClosestMultiArrayPoint(flatCoordinates, offset, endss, stride, maxDelta, isRing, x, y, closestPoint, minSquaredDistance, opt_tmpPoint) {\n var tmpPoint = opt_tmpPoint ? opt_tmpPoint : [NaN, NaN];\n for (var i = 0, ii = endss.length; i < ii; ++i) {\n var ends = endss[i];\n minSquaredDistance = assignClosestArrayPoint(flatCoordinates, offset, ends, stride, maxDelta, isRing, x, y, closestPoint, minSquaredDistance, tmpPoint);\n offset = ends[ends.length - 1];\n }\n return minSquaredDistance;\n}\n//# sourceMappingURL=closest.js.map","/**\n * @module ol/geom/flat/deflate\n */\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {import(\"../../coordinate.js\").Coordinate} coordinate Coordinate.\n * @param {number} stride Stride.\n * @return {number} offset Offset.\n */\nexport function deflateCoordinate(flatCoordinates, offset, coordinate, stride) {\n for (var i = 0, ii = coordinate.length; i < ii; ++i) {\n flatCoordinates[offset++] = coordinate[i];\n }\n return offset;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} coordinates Coordinates.\n * @param {number} stride Stride.\n * @return {number} offset Offset.\n */\nexport function deflateCoordinates(flatCoordinates, offset, coordinates, stride) {\n for (var i = 0, ii = coordinates.length; i < ii; ++i) {\n var coordinate = coordinates[i];\n for (var j = 0; j < stride; ++j) {\n flatCoordinates[offset++] = coordinate[j];\n }\n }\n return offset;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} coordinatess Coordinatess.\n * @param {number} stride Stride.\n * @param {Array} [opt_ends] Ends.\n * @return {Array} Ends.\n */\nexport function deflateCoordinatesArray(flatCoordinates, offset, coordinatess, stride, opt_ends) {\n var ends = opt_ends ? opt_ends : [];\n var i = 0;\n for (var j = 0, jj = coordinatess.length; j < jj; ++j) {\n var end = deflateCoordinates(flatCoordinates, offset, coordinatess[j], stride);\n ends[i++] = end;\n offset = end;\n }\n ends.length = i;\n return ends;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>>} coordinatesss Coordinatesss.\n * @param {number} stride Stride.\n * @param {Array>} [opt_endss] Endss.\n * @return {Array>} Endss.\n */\nexport function deflateMultiCoordinatesArray(flatCoordinates, offset, coordinatesss, stride, opt_endss) {\n var endss = opt_endss ? opt_endss : [];\n var i = 0;\n for (var j = 0, jj = coordinatesss.length; j < jj; ++j) {\n var ends = deflateCoordinatesArray(flatCoordinates, offset, coordinatesss[j], stride, endss[i]);\n endss[i++] = ends;\n offset = ends[ends.length - 1];\n }\n endss.length = i;\n return endss;\n}\n//# sourceMappingURL=deflate.js.map","/**\n * @module ol/geom/flat/simplify\n */\n// Based on simplify-js https://github.com/mourner/simplify-js\n// Copyright (c) 2012, Vladimir Agafonkin\n// All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are met:\n//\n// 1. Redistributions of source code must retain the above copyright notice,\n// this list of conditions and the following disclaimer.\n//\n// 2. Redistributions in binary form must reproduce the above copyright\n// notice, this list of conditions and the following disclaimer in the\n// documentation and/or other materials provided with the distribution.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\n// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n// POSSIBILITY OF SUCH DAMAGE.\nimport { squaredDistance, squaredSegmentDistance } from '../../math.js';\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} squaredTolerance Squared tolerance.\n * @param {boolean} highQuality Highest quality.\n * @param {Array} [opt_simplifiedFlatCoordinates] Simplified flat\n * coordinates.\n * @return {Array} Simplified line string.\n */\nexport function simplifyLineString(flatCoordinates, offset, end, stride, squaredTolerance, highQuality, opt_simplifiedFlatCoordinates) {\n var simplifiedFlatCoordinates = opt_simplifiedFlatCoordinates !== undefined\n ? opt_simplifiedFlatCoordinates\n : [];\n if (!highQuality) {\n end = radialDistance(flatCoordinates, offset, end, stride, squaredTolerance, simplifiedFlatCoordinates, 0);\n flatCoordinates = simplifiedFlatCoordinates;\n offset = 0;\n stride = 2;\n }\n simplifiedFlatCoordinates.length = douglasPeucker(flatCoordinates, offset, end, stride, squaredTolerance, simplifiedFlatCoordinates, 0);\n return simplifiedFlatCoordinates;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} squaredTolerance Squared tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @return {number} Simplified offset.\n */\nexport function douglasPeucker(flatCoordinates, offset, end, stride, squaredTolerance, simplifiedFlatCoordinates, simplifiedOffset) {\n var n = (end - offset) / stride;\n if (n < 3) {\n for (; offset < end; offset += stride) {\n simplifiedFlatCoordinates[simplifiedOffset++] = flatCoordinates[offset];\n simplifiedFlatCoordinates[simplifiedOffset++] =\n flatCoordinates[offset + 1];\n }\n return simplifiedOffset;\n }\n /** @type {Array} */\n var markers = new Array(n);\n markers[0] = 1;\n markers[n - 1] = 1;\n /** @type {Array} */\n var stack = [offset, end - stride];\n var index = 0;\n while (stack.length > 0) {\n var last = stack.pop();\n var first = stack.pop();\n var maxSquaredDistance = 0;\n var x1 = flatCoordinates[first];\n var y1 = flatCoordinates[first + 1];\n var x2 = flatCoordinates[last];\n var y2 = flatCoordinates[last + 1];\n for (var i = first + stride; i < last; i += stride) {\n var x = flatCoordinates[i];\n var y = flatCoordinates[i + 1];\n var squaredDistance_1 = squaredSegmentDistance(x, y, x1, y1, x2, y2);\n if (squaredDistance_1 > maxSquaredDistance) {\n index = i;\n maxSquaredDistance = squaredDistance_1;\n }\n }\n if (maxSquaredDistance > squaredTolerance) {\n markers[(index - offset) / stride] = 1;\n if (first + stride < index) {\n stack.push(first, index);\n }\n if (index + stride < last) {\n stack.push(index, last);\n }\n }\n }\n for (var i = 0; i < n; ++i) {\n if (markers[i]) {\n simplifiedFlatCoordinates[simplifiedOffset++] =\n flatCoordinates[offset + i * stride];\n simplifiedFlatCoordinates[simplifiedOffset++] =\n flatCoordinates[offset + i * stride + 1];\n }\n }\n return simplifiedOffset;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {number} squaredTolerance Squared tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @param {Array} simplifiedEnds Simplified ends.\n * @return {number} Simplified offset.\n */\nexport function douglasPeuckerArray(flatCoordinates, offset, ends, stride, squaredTolerance, simplifiedFlatCoordinates, simplifiedOffset, simplifiedEnds) {\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n var end = ends[i];\n simplifiedOffset = douglasPeucker(flatCoordinates, offset, end, stride, squaredTolerance, simplifiedFlatCoordinates, simplifiedOffset);\n simplifiedEnds.push(simplifiedOffset);\n offset = end;\n }\n return simplifiedOffset;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {number} squaredTolerance Squared tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @param {Array>} simplifiedEndss Simplified endss.\n * @return {number} Simplified offset.\n */\nexport function douglasPeuckerMultiArray(flatCoordinates, offset, endss, stride, squaredTolerance, simplifiedFlatCoordinates, simplifiedOffset, simplifiedEndss) {\n for (var i = 0, ii = endss.length; i < ii; ++i) {\n var ends = endss[i];\n var simplifiedEnds = [];\n simplifiedOffset = douglasPeuckerArray(flatCoordinates, offset, ends, stride, squaredTolerance, simplifiedFlatCoordinates, simplifiedOffset, simplifiedEnds);\n simplifiedEndss.push(simplifiedEnds);\n offset = ends[ends.length - 1];\n }\n return simplifiedOffset;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} squaredTolerance Squared tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @return {number} Simplified offset.\n */\nexport function radialDistance(flatCoordinates, offset, end, stride, squaredTolerance, simplifiedFlatCoordinates, simplifiedOffset) {\n if (end <= offset + stride) {\n // zero or one point, no simplification possible, so copy and return\n for (; offset < end; offset += stride) {\n simplifiedFlatCoordinates[simplifiedOffset++] = flatCoordinates[offset];\n simplifiedFlatCoordinates[simplifiedOffset++] =\n flatCoordinates[offset + 1];\n }\n return simplifiedOffset;\n }\n var x1 = flatCoordinates[offset];\n var y1 = flatCoordinates[offset + 1];\n // copy first point\n simplifiedFlatCoordinates[simplifiedOffset++] = x1;\n simplifiedFlatCoordinates[simplifiedOffset++] = y1;\n var x2 = x1;\n var y2 = y1;\n for (offset += stride; offset < end; offset += stride) {\n x2 = flatCoordinates[offset];\n y2 = flatCoordinates[offset + 1];\n if (squaredDistance(x1, y1, x2, y2) > squaredTolerance) {\n // copy point at offset\n simplifiedFlatCoordinates[simplifiedOffset++] = x2;\n simplifiedFlatCoordinates[simplifiedOffset++] = y2;\n x1 = x2;\n y1 = y2;\n }\n }\n if (x2 != x1 || y2 != y1) {\n // copy last point\n simplifiedFlatCoordinates[simplifiedOffset++] = x2;\n simplifiedFlatCoordinates[simplifiedOffset++] = y2;\n }\n return simplifiedOffset;\n}\n/**\n * @param {number} value Value.\n * @param {number} tolerance Tolerance.\n * @return {number} Rounded value.\n */\nexport function snap(value, tolerance) {\n return tolerance * Math.round(value / tolerance);\n}\n/**\n * Simplifies a line string using an algorithm designed by Tim Schaub.\n * Coordinates are snapped to the nearest value in a virtual grid and\n * consecutive duplicate coordinates are discarded. This effectively preserves\n * topology as the simplification of any subsection of a line string is\n * independent of the rest of the line string. This means that, for examples,\n * the common edge between two polygons will be simplified to the same line\n * string independently in both polygons. This implementation uses a single\n * pass over the coordinates and eliminates intermediate collinear points.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} tolerance Tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @return {number} Simplified offset.\n */\nexport function quantize(flatCoordinates, offset, end, stride, tolerance, simplifiedFlatCoordinates, simplifiedOffset) {\n // do nothing if the line is empty\n if (offset == end) {\n return simplifiedOffset;\n }\n // snap the first coordinate (P1)\n var x1 = snap(flatCoordinates[offset], tolerance);\n var y1 = snap(flatCoordinates[offset + 1], tolerance);\n offset += stride;\n // add the first coordinate to the output\n simplifiedFlatCoordinates[simplifiedOffset++] = x1;\n simplifiedFlatCoordinates[simplifiedOffset++] = y1;\n // find the next coordinate that does not snap to the same value as the first\n // coordinate (P2)\n var x2, y2;\n do {\n x2 = snap(flatCoordinates[offset], tolerance);\n y2 = snap(flatCoordinates[offset + 1], tolerance);\n offset += stride;\n if (offset == end) {\n // all coordinates snap to the same value, the line collapses to a point\n // push the last snapped value anyway to ensure that the output contains\n // at least two points\n // FIXME should we really return at least two points anyway?\n simplifiedFlatCoordinates[simplifiedOffset++] = x2;\n simplifiedFlatCoordinates[simplifiedOffset++] = y2;\n return simplifiedOffset;\n }\n } while (x2 == x1 && y2 == y1);\n while (offset < end) {\n // snap the next coordinate (P3)\n var x3 = snap(flatCoordinates[offset], tolerance);\n var y3 = snap(flatCoordinates[offset + 1], tolerance);\n offset += stride;\n // skip P3 if it is equal to P2\n if (x3 == x2 && y3 == y2) {\n continue;\n }\n // calculate the delta between P1 and P2\n var dx1 = x2 - x1;\n var dy1 = y2 - y1;\n // calculate the delta between P3 and P1\n var dx2 = x3 - x1;\n var dy2 = y3 - y1;\n // if P1, P2, and P3 are colinear and P3 is further from P1 than P2 is from\n // P1 in the same direction then P2 is on the straight line between P1 and\n // P3\n if (dx1 * dy2 == dy1 * dx2 &&\n ((dx1 < 0 && dx2 < dx1) || dx1 == dx2 || (dx1 > 0 && dx2 > dx1)) &&\n ((dy1 < 0 && dy2 < dy1) || dy1 == dy2 || (dy1 > 0 && dy2 > dy1))) {\n // discard P2 and set P2 = P3\n x2 = x3;\n y2 = y3;\n continue;\n }\n // either P1, P2, and P3 are not colinear, or they are colinear but P3 is\n // between P3 and P1 or on the opposite half of the line to P2. add P2,\n // and continue with P1 = P2 and P2 = P3\n simplifiedFlatCoordinates[simplifiedOffset++] = x2;\n simplifiedFlatCoordinates[simplifiedOffset++] = y2;\n x1 = x2;\n y1 = y2;\n x2 = x3;\n y2 = y3;\n }\n // add the last point (P2)\n simplifiedFlatCoordinates[simplifiedOffset++] = x2;\n simplifiedFlatCoordinates[simplifiedOffset++] = y2;\n return simplifiedOffset;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {number} tolerance Tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @param {Array} simplifiedEnds Simplified ends.\n * @return {number} Simplified offset.\n */\nexport function quantizeArray(flatCoordinates, offset, ends, stride, tolerance, simplifiedFlatCoordinates, simplifiedOffset, simplifiedEnds) {\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n var end = ends[i];\n simplifiedOffset = quantize(flatCoordinates, offset, end, stride, tolerance, simplifiedFlatCoordinates, simplifiedOffset);\n simplifiedEnds.push(simplifiedOffset);\n offset = end;\n }\n return simplifiedOffset;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {number} tolerance Tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @param {Array>} simplifiedEndss Simplified endss.\n * @return {number} Simplified offset.\n */\nexport function quantizeMultiArray(flatCoordinates, offset, endss, stride, tolerance, simplifiedFlatCoordinates, simplifiedOffset, simplifiedEndss) {\n for (var i = 0, ii = endss.length; i < ii; ++i) {\n var ends = endss[i];\n var simplifiedEnds = [];\n simplifiedOffset = quantizeArray(flatCoordinates, offset, ends, stride, tolerance, simplifiedFlatCoordinates, simplifiedOffset, simplifiedEnds);\n simplifiedEndss.push(simplifiedEnds);\n offset = ends[ends.length - 1];\n }\n return simplifiedOffset;\n}\n//# sourceMappingURL=simplify.js.map","/**\n * @module ol/geom/flat/segments\n */\n/**\n * This function calls `callback` for each segment of the flat coordinates\n * array. If the callback returns a truthy value the function returns that\n * value immediately. Otherwise the function returns `false`.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {function(import(\"../../coordinate.js\").Coordinate, import(\"../../coordinate.js\").Coordinate): T} callback Function\n * called for each segment.\n * @return {T|boolean} Value.\n * @template T\n */\nexport function forEach(flatCoordinates, offset, end, stride, callback) {\n var ret;\n offset += stride;\n for (; offset < end; offset += stride) {\n ret = callback(flatCoordinates.slice(offset - stride, offset), flatCoordinates.slice(offset, offset + stride));\n if (ret) {\n return ret;\n }\n }\n return false;\n}\n//# sourceMappingURL=segments.js.map","/**\n * @module ol/geom/flat/inflate\n */\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {Array} [opt_coordinates] Coordinates.\n * @return {Array} Coordinates.\n */\nexport function inflateCoordinates(flatCoordinates, offset, end, stride, opt_coordinates) {\n var coordinates = opt_coordinates !== undefined ? opt_coordinates : [];\n var i = 0;\n for (var j = offset; j < end; j += stride) {\n coordinates[i++] = flatCoordinates.slice(j, j + stride);\n }\n coordinates.length = i;\n return coordinates;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {Array>} [opt_coordinatess] Coordinatess.\n * @return {Array>} Coordinatess.\n */\nexport function inflateCoordinatesArray(flatCoordinates, offset, ends, stride, opt_coordinatess) {\n var coordinatess = opt_coordinatess !== undefined ? opt_coordinatess : [];\n var i = 0;\n for (var j = 0, jj = ends.length; j < jj; ++j) {\n var end = ends[j];\n coordinatess[i++] = inflateCoordinates(flatCoordinates, offset, end, stride, coordinatess[i]);\n offset = end;\n }\n coordinatess.length = i;\n return coordinatess;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {Array>>} [opt_coordinatesss]\n * Coordinatesss.\n * @return {Array>>} Coordinatesss.\n */\nexport function inflateMultiCoordinatesArray(flatCoordinates, offset, endss, stride, opt_coordinatesss) {\n var coordinatesss = opt_coordinatesss !== undefined ? opt_coordinatesss : [];\n var i = 0;\n for (var j = 0, jj = endss.length; j < jj; ++j) {\n var ends = endss[j];\n coordinatesss[i++] = inflateCoordinatesArray(flatCoordinates, offset, ends, stride, coordinatesss[i]);\n offset = ends[ends.length - 1];\n }\n coordinatesss.length = i;\n return coordinatesss;\n}\n//# sourceMappingURL=inflate.js.map","/**\n * @module ol/geom/flat/interpolate\n */\nimport { binarySearch } from '../../array.js';\nimport { lerp } from '../../math.js';\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} fraction Fraction.\n * @param {Array} [opt_dest] Destination.\n * @param {number} [opt_dimension] Destination dimension (default is `2`)\n * @return {Array} Destination.\n */\nexport function interpolatePoint(flatCoordinates, offset, end, stride, fraction, opt_dest, opt_dimension) {\n var o, t;\n var n = (end - offset) / stride;\n if (n === 1) {\n o = offset;\n }\n else if (n === 2) {\n o = offset;\n t = fraction;\n }\n else if (n !== 0) {\n var x1 = flatCoordinates[offset];\n var y1 = flatCoordinates[offset + 1];\n var length_1 = 0;\n var cumulativeLengths = [0];\n for (var i = offset + stride; i < end; i += stride) {\n var x2 = flatCoordinates[i];\n var y2 = flatCoordinates[i + 1];\n length_1 += Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));\n cumulativeLengths.push(length_1);\n x1 = x2;\n y1 = y2;\n }\n var target = fraction * length_1;\n var index = binarySearch(cumulativeLengths, target);\n if (index < 0) {\n t =\n (target - cumulativeLengths[-index - 2]) /\n (cumulativeLengths[-index - 1] - cumulativeLengths[-index - 2]);\n o = offset + (-index - 2) * stride;\n }\n else {\n o = offset + index * stride;\n }\n }\n var dimension = opt_dimension > 1 ? opt_dimension : 2;\n var dest = opt_dest ? opt_dest : new Array(dimension);\n for (var i = 0; i < dimension; ++i) {\n dest[i] =\n o === undefined\n ? NaN\n : t === undefined\n ? flatCoordinates[o + i]\n : lerp(flatCoordinates[o + i], flatCoordinates[o + stride + i], t);\n }\n return dest;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} m M.\n * @param {boolean} extrapolate Extrapolate.\n * @return {import(\"../../coordinate.js\").Coordinate} Coordinate.\n */\nexport function lineStringCoordinateAtM(flatCoordinates, offset, end, stride, m, extrapolate) {\n if (end == offset) {\n return null;\n }\n var coordinate;\n if (m < flatCoordinates[offset + stride - 1]) {\n if (extrapolate) {\n coordinate = flatCoordinates.slice(offset, offset + stride);\n coordinate[stride - 1] = m;\n return coordinate;\n }\n else {\n return null;\n }\n }\n else if (flatCoordinates[end - 1] < m) {\n if (extrapolate) {\n coordinate = flatCoordinates.slice(end - stride, end);\n coordinate[stride - 1] = m;\n return coordinate;\n }\n else {\n return null;\n }\n }\n // FIXME use O(1) search\n if (m == flatCoordinates[offset + stride - 1]) {\n return flatCoordinates.slice(offset, offset + stride);\n }\n var lo = offset / stride;\n var hi = end / stride;\n while (lo < hi) {\n var mid = (lo + hi) >> 1;\n if (m < flatCoordinates[(mid + 1) * stride - 1]) {\n hi = mid;\n }\n else {\n lo = mid + 1;\n }\n }\n var m0 = flatCoordinates[lo * stride - 1];\n if (m == m0) {\n return flatCoordinates.slice((lo - 1) * stride, (lo - 1) * stride + stride);\n }\n var m1 = flatCoordinates[(lo + 1) * stride - 1];\n var t = (m - m0) / (m1 - m0);\n coordinate = [];\n for (var i = 0; i < stride - 1; ++i) {\n coordinate.push(lerp(flatCoordinates[(lo - 1) * stride + i], flatCoordinates[lo * stride + i], t));\n }\n coordinate.push(m);\n return coordinate;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {number} m M.\n * @param {boolean} extrapolate Extrapolate.\n * @param {boolean} interpolate Interpolate.\n * @return {import(\"../../coordinate.js\").Coordinate} Coordinate.\n */\nexport function lineStringsCoordinateAtM(flatCoordinates, offset, ends, stride, m, extrapolate, interpolate) {\n if (interpolate) {\n return lineStringCoordinateAtM(flatCoordinates, offset, ends[ends.length - 1], stride, m, extrapolate);\n }\n var coordinate;\n if (m < flatCoordinates[stride - 1]) {\n if (extrapolate) {\n coordinate = flatCoordinates.slice(0, stride);\n coordinate[stride - 1] = m;\n return coordinate;\n }\n else {\n return null;\n }\n }\n if (flatCoordinates[flatCoordinates.length - 1] < m) {\n if (extrapolate) {\n coordinate = flatCoordinates.slice(flatCoordinates.length - stride);\n coordinate[stride - 1] = m;\n return coordinate;\n }\n else {\n return null;\n }\n }\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n var end = ends[i];\n if (offset == end) {\n continue;\n }\n if (m < flatCoordinates[offset + stride - 1]) {\n return null;\n }\n else if (m <= flatCoordinates[end - 1]) {\n return lineStringCoordinateAtM(flatCoordinates, offset, end, stride, m, false);\n }\n offset = end;\n }\n return null;\n}\n//# sourceMappingURL=interpolate.js.map","/**\n * @module ol/geom/flat/contains\n */\nimport { forEachCorner } from '../../extent.js';\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {import(\"../../extent.js\").Extent} extent Extent.\n * @return {boolean} Contains extent.\n */\nexport function linearRingContainsExtent(flatCoordinates, offset, end, stride, extent) {\n var outside = forEachCorner(extent, \n /**\n * @param {import(\"../../coordinate.js\").Coordinate} coordinate Coordinate.\n * @return {boolean} Contains (x, y).\n */\n function (coordinate) {\n return !linearRingContainsXY(flatCoordinates, offset, end, stride, coordinate[0], coordinate[1]);\n });\n return !outside;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} x X.\n * @param {number} y Y.\n * @return {boolean} Contains (x, y).\n */\nexport function linearRingContainsXY(flatCoordinates, offset, end, stride, x, y) {\n // https://geomalgorithms.com/a03-_inclusion.html\n // Copyright 2000 softSurfer, 2012 Dan Sunday\n // This code may be freely used and modified for any purpose\n // providing that this copyright notice is included with it.\n // SoftSurfer makes no warranty for this code, and cannot be held\n // liable for any real or imagined damage resulting from its use.\n // Users of this code must verify correctness for their application.\n var wn = 0;\n var x1 = flatCoordinates[end - stride];\n var y1 = flatCoordinates[end - stride + 1];\n for (; offset < end; offset += stride) {\n var x2 = flatCoordinates[offset];\n var y2 = flatCoordinates[offset + 1];\n if (y1 <= y) {\n if (y2 > y && (x2 - x1) * (y - y1) - (x - x1) * (y2 - y1) > 0) {\n wn++;\n }\n }\n else if (y2 <= y && (x2 - x1) * (y - y1) - (x - x1) * (y2 - y1) < 0) {\n wn--;\n }\n x1 = x2;\n y1 = y2;\n }\n return wn !== 0;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {number} x X.\n * @param {number} y Y.\n * @return {boolean} Contains (x, y).\n */\nexport function linearRingsContainsXY(flatCoordinates, offset, ends, stride, x, y) {\n if (ends.length === 0) {\n return false;\n }\n if (!linearRingContainsXY(flatCoordinates, offset, ends[0], stride, x, y)) {\n return false;\n }\n for (var i = 1, ii = ends.length; i < ii; ++i) {\n if (linearRingContainsXY(flatCoordinates, ends[i - 1], ends[i], stride, x, y)) {\n return false;\n }\n }\n return true;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {number} x X.\n * @param {number} y Y.\n * @return {boolean} Contains (x, y).\n */\nexport function linearRingssContainsXY(flatCoordinates, offset, endss, stride, x, y) {\n if (endss.length === 0) {\n return false;\n }\n for (var i = 0, ii = endss.length; i < ii; ++i) {\n var ends = endss[i];\n if (linearRingsContainsXY(flatCoordinates, offset, ends, stride, x, y)) {\n return true;\n }\n offset = ends[ends.length - 1];\n }\n return false;\n}\n//# sourceMappingURL=contains.js.map","/**\n * @module ol/geom/flat/intersectsextent\n */\nimport { containsExtent, createEmpty, extendFlatCoordinates, intersects, intersectsSegment, } from '../../extent.js';\nimport { forEach as forEachSegment } from './segments.js';\nimport { linearRingContainsExtent, linearRingContainsXY } from './contains.js';\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {import(\"../../extent.js\").Extent} extent Extent.\n * @return {boolean} True if the geometry and the extent intersect.\n */\nexport function intersectsLineString(flatCoordinates, offset, end, stride, extent) {\n var coordinatesExtent = extendFlatCoordinates(createEmpty(), flatCoordinates, offset, end, stride);\n if (!intersects(extent, coordinatesExtent)) {\n return false;\n }\n if (containsExtent(extent, coordinatesExtent)) {\n return true;\n }\n if (coordinatesExtent[0] >= extent[0] && coordinatesExtent[2] <= extent[2]) {\n return true;\n }\n if (coordinatesExtent[1] >= extent[1] && coordinatesExtent[3] <= extent[3]) {\n return true;\n }\n return forEachSegment(flatCoordinates, offset, end, stride, \n /**\n * @param {import(\"../../coordinate.js\").Coordinate} point1 Start point.\n * @param {import(\"../../coordinate.js\").Coordinate} point2 End point.\n * @return {boolean} `true` if the segment and the extent intersect,\n * `false` otherwise.\n */\n function (point1, point2) {\n return intersectsSegment(extent, point1, point2);\n });\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {import(\"../../extent.js\").Extent} extent Extent.\n * @return {boolean} True if the geometry and the extent intersect.\n */\nexport function intersectsLineStringArray(flatCoordinates, offset, ends, stride, extent) {\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n if (intersectsLineString(flatCoordinates, offset, ends[i], stride, extent)) {\n return true;\n }\n offset = ends[i];\n }\n return false;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {import(\"../../extent.js\").Extent} extent Extent.\n * @return {boolean} True if the geometry and the extent intersect.\n */\nexport function intersectsLinearRing(flatCoordinates, offset, end, stride, extent) {\n if (intersectsLineString(flatCoordinates, offset, end, stride, extent)) {\n return true;\n }\n if (linearRingContainsXY(flatCoordinates, offset, end, stride, extent[0], extent[1])) {\n return true;\n }\n if (linearRingContainsXY(flatCoordinates, offset, end, stride, extent[0], extent[3])) {\n return true;\n }\n if (linearRingContainsXY(flatCoordinates, offset, end, stride, extent[2], extent[1])) {\n return true;\n }\n if (linearRingContainsXY(flatCoordinates, offset, end, stride, extent[2], extent[3])) {\n return true;\n }\n return false;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {import(\"../../extent.js\").Extent} extent Extent.\n * @return {boolean} True if the geometry and the extent intersect.\n */\nexport function intersectsLinearRingArray(flatCoordinates, offset, ends, stride, extent) {\n if (!intersectsLinearRing(flatCoordinates, offset, ends[0], stride, extent)) {\n return false;\n }\n if (ends.length === 1) {\n return true;\n }\n for (var i = 1, ii = ends.length; i < ii; ++i) {\n if (linearRingContainsExtent(flatCoordinates, ends[i - 1], ends[i], stride, extent)) {\n if (!intersectsLineString(flatCoordinates, ends[i - 1], ends[i], stride, extent)) {\n return false;\n }\n }\n }\n return true;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {import(\"../../extent.js\").Extent} extent Extent.\n * @return {boolean} True if the geometry and the extent intersect.\n */\nexport function intersectsLinearRingMultiArray(flatCoordinates, offset, endss, stride, extent) {\n for (var i = 0, ii = endss.length; i < ii; ++i) {\n var ends = endss[i];\n if (intersectsLinearRingArray(flatCoordinates, offset, ends, stride, extent)) {\n return true;\n }\n offset = ends[ends.length - 1];\n }\n return false;\n}\n//# sourceMappingURL=intersectsextent.js.map","/**\n * @module ol/geom/flat/length\n */\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @return {number} Length.\n */\nexport function lineStringLength(flatCoordinates, offset, end, stride) {\n var x1 = flatCoordinates[offset];\n var y1 = flatCoordinates[offset + 1];\n var length = 0;\n for (var i = offset + stride; i < end; i += stride) {\n var x2 = flatCoordinates[i];\n var y2 = flatCoordinates[i + 1];\n length += Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));\n x1 = x2;\n y1 = y2;\n }\n return length;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @return {number} Perimeter.\n */\nexport function linearRingLength(flatCoordinates, offset, end, stride) {\n var perimeter = lineStringLength(flatCoordinates, offset, end, stride);\n var dx = flatCoordinates[end - stride] - flatCoordinates[offset];\n var dy = flatCoordinates[end - stride + 1] - flatCoordinates[offset + 1];\n perimeter += Math.sqrt(dx * dx + dy * dy);\n return perimeter;\n}\n//# sourceMappingURL=length.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/geom/LineString\n */\nimport GeometryLayout from './GeometryLayout.js';\nimport GeometryType from './GeometryType.js';\nimport SimpleGeometry from './SimpleGeometry.js';\nimport { assignClosestPoint, maxSquaredDelta } from './flat/closest.js';\nimport { closestSquaredDistanceXY } from '../extent.js';\nimport { deflateCoordinates } from './flat/deflate.js';\nimport { douglasPeucker } from './flat/simplify.js';\nimport { extend } from '../array.js';\nimport { forEach as forEachSegment } from './flat/segments.js';\nimport { inflateCoordinates } from './flat/inflate.js';\nimport { interpolatePoint, lineStringCoordinateAtM } from './flat/interpolate.js';\nimport { intersectsLineString } from './flat/intersectsextent.js';\nimport { lineStringLength } from './flat/length.js';\n/**\n * @classdesc\n * Linestring geometry.\n *\n * @api\n */\nvar LineString = /** @class */ (function (_super) {\n __extends(LineString, _super);\n /**\n * @param {Array|Array} coordinates Coordinates.\n * For internal use, flat coordinates in combination with `opt_layout` are also accepted.\n * @param {import(\"./GeometryLayout.js\").default} [opt_layout] Layout.\n */\n function LineString(coordinates, opt_layout) {\n var _this = _super.call(this) || this;\n /**\n * @private\n * @type {import(\"../coordinate.js\").Coordinate}\n */\n _this.flatMidpoint_ = null;\n /**\n * @private\n * @type {number}\n */\n _this.flatMidpointRevision_ = -1;\n /**\n * @private\n * @type {number}\n */\n _this.maxDelta_ = -1;\n /**\n * @private\n * @type {number}\n */\n _this.maxDeltaRevision_ = -1;\n if (opt_layout !== undefined && !Array.isArray(coordinates[0])) {\n _this.setFlatCoordinates(opt_layout, \n /** @type {Array} */ (coordinates));\n }\n else {\n _this.setCoordinates(\n /** @type {Array} */ (coordinates), opt_layout);\n }\n return _this;\n }\n /**\n * Append the passed coordinate to the coordinates of the linestring.\n * @param {import(\"../coordinate.js\").Coordinate} coordinate Coordinate.\n * @api\n */\n LineString.prototype.appendCoordinate = function (coordinate) {\n if (!this.flatCoordinates) {\n this.flatCoordinates = coordinate.slice();\n }\n else {\n extend(this.flatCoordinates, coordinate);\n }\n this.changed();\n };\n /**\n * Make a complete copy of the geometry.\n * @return {!LineString} Clone.\n * @api\n */\n LineString.prototype.clone = function () {\n var lineString = new LineString(this.flatCoordinates.slice(), this.layout);\n lineString.applyProperties(this);\n return lineString;\n };\n /**\n * @param {number} x X.\n * @param {number} y Y.\n * @param {import(\"../coordinate.js\").Coordinate} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @return {number} Minimum squared distance.\n */\n LineString.prototype.closestPointXY = function (x, y, closestPoint, minSquaredDistance) {\n if (minSquaredDistance < closestSquaredDistanceXY(this.getExtent(), x, y)) {\n return minSquaredDistance;\n }\n if (this.maxDeltaRevision_ != this.getRevision()) {\n this.maxDelta_ = Math.sqrt(maxSquaredDelta(this.flatCoordinates, 0, this.flatCoordinates.length, this.stride, 0));\n this.maxDeltaRevision_ = this.getRevision();\n }\n return assignClosestPoint(this.flatCoordinates, 0, this.flatCoordinates.length, this.stride, this.maxDelta_, false, x, y, closestPoint, minSquaredDistance);\n };\n /**\n * Iterate over each segment, calling the provided callback.\n * If the callback returns a truthy value the function returns that\n * value immediately. Otherwise the function returns `false`.\n *\n * @param {function(this: S, import(\"../coordinate.js\").Coordinate, import(\"../coordinate.js\").Coordinate): T} callback Function\n * called for each segment. The function will receive two arguments, the start and end coordinates of the segment.\n * @return {T|boolean} Value.\n * @template T,S\n * @api\n */\n LineString.prototype.forEachSegment = function (callback) {\n return forEachSegment(this.flatCoordinates, 0, this.flatCoordinates.length, this.stride, callback);\n };\n /**\n * Returns the coordinate at `m` using linear interpolation, or `null` if no\n * such coordinate exists.\n *\n * `opt_extrapolate` controls extrapolation beyond the range of Ms in the\n * MultiLineString. If `opt_extrapolate` is `true` then Ms less than the first\n * M will return the first coordinate and Ms greater than the last M will\n * return the last coordinate.\n *\n * @param {number} m M.\n * @param {boolean} [opt_extrapolate] Extrapolate. Default is `false`.\n * @return {import(\"../coordinate.js\").Coordinate} Coordinate.\n * @api\n */\n LineString.prototype.getCoordinateAtM = function (m, opt_extrapolate) {\n if (this.layout != GeometryLayout.XYM &&\n this.layout != GeometryLayout.XYZM) {\n return null;\n }\n var extrapolate = opt_extrapolate !== undefined ? opt_extrapolate : false;\n return lineStringCoordinateAtM(this.flatCoordinates, 0, this.flatCoordinates.length, this.stride, m, extrapolate);\n };\n /**\n * Return the coordinates of the linestring.\n * @return {Array} Coordinates.\n * @api\n */\n LineString.prototype.getCoordinates = function () {\n return inflateCoordinates(this.flatCoordinates, 0, this.flatCoordinates.length, this.stride);\n };\n /**\n * Return the coordinate at the provided fraction along the linestring.\n * The `fraction` is a number between 0 and 1, where 0 is the start of the\n * linestring and 1 is the end.\n * @param {number} fraction Fraction.\n * @param {import(\"../coordinate.js\").Coordinate} [opt_dest] Optional coordinate whose values will\n * be modified. If not provided, a new coordinate will be returned.\n * @return {import(\"../coordinate.js\").Coordinate} Coordinate of the interpolated point.\n * @api\n */\n LineString.prototype.getCoordinateAt = function (fraction, opt_dest) {\n return interpolatePoint(this.flatCoordinates, 0, this.flatCoordinates.length, this.stride, fraction, opt_dest, this.stride);\n };\n /**\n * Return the length of the linestring on projected plane.\n * @return {number} Length (on projected plane).\n * @api\n */\n LineString.prototype.getLength = function () {\n return lineStringLength(this.flatCoordinates, 0, this.flatCoordinates.length, this.stride);\n };\n /**\n * @return {Array} Flat midpoint.\n */\n LineString.prototype.getFlatMidpoint = function () {\n if (this.flatMidpointRevision_ != this.getRevision()) {\n this.flatMidpoint_ = this.getCoordinateAt(0.5, this.flatMidpoint_);\n this.flatMidpointRevision_ = this.getRevision();\n }\n return this.flatMidpoint_;\n };\n /**\n * @param {number} squaredTolerance Squared tolerance.\n * @return {LineString} Simplified LineString.\n * @protected\n */\n LineString.prototype.getSimplifiedGeometryInternal = function (squaredTolerance) {\n var simplifiedFlatCoordinates = [];\n simplifiedFlatCoordinates.length = douglasPeucker(this.flatCoordinates, 0, this.flatCoordinates.length, this.stride, squaredTolerance, simplifiedFlatCoordinates, 0);\n return new LineString(simplifiedFlatCoordinates, GeometryLayout.XY);\n };\n /**\n * Get the type of this geometry.\n * @return {import(\"./GeometryType.js\").default} Geometry type.\n * @api\n */\n LineString.prototype.getType = function () {\n return GeometryType.LINE_STRING;\n };\n /**\n * Test if the geometry and the passed extent intersect.\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @return {boolean} `true` if the geometry and the extent intersect.\n * @api\n */\n LineString.prototype.intersectsExtent = function (extent) {\n return intersectsLineString(this.flatCoordinates, 0, this.flatCoordinates.length, this.stride, extent);\n };\n /**\n * Set the coordinates of the linestring.\n * @param {!Array} coordinates Coordinates.\n * @param {import(\"./GeometryLayout.js\").default} [opt_layout] Layout.\n * @api\n */\n LineString.prototype.setCoordinates = function (coordinates, opt_layout) {\n this.setLayout(opt_layout, coordinates, 1);\n if (!this.flatCoordinates) {\n this.flatCoordinates = [];\n }\n this.flatCoordinates.length = deflateCoordinates(this.flatCoordinates, 0, coordinates, this.stride);\n this.changed();\n };\n return LineString;\n}(SimpleGeometry));\nexport default LineString;\n//# sourceMappingURL=LineString.js.map","/**\n * @module ol/geom/flat/area\n */\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @return {number} Area.\n */\nexport function linearRing(flatCoordinates, offset, end, stride) {\n var twiceArea = 0;\n var x1 = flatCoordinates[end - stride];\n var y1 = flatCoordinates[end - stride + 1];\n for (; offset < end; offset += stride) {\n var x2 = flatCoordinates[offset];\n var y2 = flatCoordinates[offset + 1];\n twiceArea += y1 * x2 - x1 * y2;\n x1 = x2;\n y1 = y2;\n }\n return twiceArea / 2;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @return {number} Area.\n */\nexport function linearRings(flatCoordinates, offset, ends, stride) {\n var area = 0;\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n var end = ends[i];\n area += linearRing(flatCoordinates, offset, end, stride);\n offset = end;\n }\n return area;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @return {number} Area.\n */\nexport function linearRingss(flatCoordinates, offset, endss, stride) {\n var area = 0;\n for (var i = 0, ii = endss.length; i < ii; ++i) {\n var ends = endss[i];\n area += linearRings(flatCoordinates, offset, ends, stride);\n offset = ends[ends.length - 1];\n }\n return area;\n}\n//# sourceMappingURL=area.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/geom/LinearRing\n */\nimport GeometryLayout from './GeometryLayout.js';\nimport GeometryType from './GeometryType.js';\nimport SimpleGeometry from './SimpleGeometry.js';\nimport { assignClosestPoint, maxSquaredDelta } from './flat/closest.js';\nimport { closestSquaredDistanceXY } from '../extent.js';\nimport { deflateCoordinates } from './flat/deflate.js';\nimport { douglasPeucker } from './flat/simplify.js';\nimport { inflateCoordinates } from './flat/inflate.js';\nimport { linearRing as linearRingArea } from './flat/area.js';\n/**\n * @classdesc\n * Linear ring geometry. Only used as part of polygon; cannot be rendered\n * on its own.\n *\n * @api\n */\nvar LinearRing = /** @class */ (function (_super) {\n __extends(LinearRing, _super);\n /**\n * @param {Array|Array} coordinates Coordinates.\n * For internal use, flat coordinates in combination with `opt_layout` are also accepted.\n * @param {import(\"./GeometryLayout.js\").default} [opt_layout] Layout.\n */\n function LinearRing(coordinates, opt_layout) {\n var _this = _super.call(this) || this;\n /**\n * @private\n * @type {number}\n */\n _this.maxDelta_ = -1;\n /**\n * @private\n * @type {number}\n */\n _this.maxDeltaRevision_ = -1;\n if (opt_layout !== undefined && !Array.isArray(coordinates[0])) {\n _this.setFlatCoordinates(opt_layout, \n /** @type {Array} */ (coordinates));\n }\n else {\n _this.setCoordinates(\n /** @type {Array} */ (coordinates), opt_layout);\n }\n return _this;\n }\n /**\n * Make a complete copy of the geometry.\n * @return {!LinearRing} Clone.\n * @api\n */\n LinearRing.prototype.clone = function () {\n return new LinearRing(this.flatCoordinates.slice(), this.layout);\n };\n /**\n * @param {number} x X.\n * @param {number} y Y.\n * @param {import(\"../coordinate.js\").Coordinate} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @return {number} Minimum squared distance.\n */\n LinearRing.prototype.closestPointXY = function (x, y, closestPoint, minSquaredDistance) {\n if (minSquaredDistance < closestSquaredDistanceXY(this.getExtent(), x, y)) {\n return minSquaredDistance;\n }\n if (this.maxDeltaRevision_ != this.getRevision()) {\n this.maxDelta_ = Math.sqrt(maxSquaredDelta(this.flatCoordinates, 0, this.flatCoordinates.length, this.stride, 0));\n this.maxDeltaRevision_ = this.getRevision();\n }\n return assignClosestPoint(this.flatCoordinates, 0, this.flatCoordinates.length, this.stride, this.maxDelta_, true, x, y, closestPoint, minSquaredDistance);\n };\n /**\n * Return the area of the linear ring on projected plane.\n * @return {number} Area (on projected plane).\n * @api\n */\n LinearRing.prototype.getArea = function () {\n return linearRingArea(this.flatCoordinates, 0, this.flatCoordinates.length, this.stride);\n };\n /**\n * Return the coordinates of the linear ring.\n * @return {Array} Coordinates.\n * @api\n */\n LinearRing.prototype.getCoordinates = function () {\n return inflateCoordinates(this.flatCoordinates, 0, this.flatCoordinates.length, this.stride);\n };\n /**\n * @param {number} squaredTolerance Squared tolerance.\n * @return {LinearRing} Simplified LinearRing.\n * @protected\n */\n LinearRing.prototype.getSimplifiedGeometryInternal = function (squaredTolerance) {\n var simplifiedFlatCoordinates = [];\n simplifiedFlatCoordinates.length = douglasPeucker(this.flatCoordinates, 0, this.flatCoordinates.length, this.stride, squaredTolerance, simplifiedFlatCoordinates, 0);\n return new LinearRing(simplifiedFlatCoordinates, GeometryLayout.XY);\n };\n /**\n * Get the type of this geometry.\n * @return {import(\"./GeometryType.js\").default} Geometry type.\n * @api\n */\n LinearRing.prototype.getType = function () {\n return GeometryType.LINEAR_RING;\n };\n /**\n * Test if the geometry and the passed extent intersect.\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @return {boolean} `true` if the geometry and the extent intersect.\n * @api\n */\n LinearRing.prototype.intersectsExtent = function (extent) {\n return false;\n };\n /**\n * Set the coordinates of the linear ring.\n * @param {!Array} coordinates Coordinates.\n * @param {import(\"./GeometryLayout.js\").default} [opt_layout] Layout.\n * @api\n */\n LinearRing.prototype.setCoordinates = function (coordinates, opt_layout) {\n this.setLayout(opt_layout, coordinates, 1);\n if (!this.flatCoordinates) {\n this.flatCoordinates = [];\n }\n this.flatCoordinates.length = deflateCoordinates(this.flatCoordinates, 0, coordinates, this.stride);\n this.changed();\n };\n return LinearRing;\n}(SimpleGeometry));\nexport default LinearRing;\n//# sourceMappingURL=LinearRing.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/geom/MultiLineString\n */\nimport GeometryLayout from './GeometryLayout.js';\nimport GeometryType from './GeometryType.js';\nimport LineString from './LineString.js';\nimport SimpleGeometry from './SimpleGeometry.js';\nimport { arrayMaxSquaredDelta, assignClosestArrayPoint } from './flat/closest.js';\nimport { closestSquaredDistanceXY } from '../extent.js';\nimport { deflateCoordinatesArray } from './flat/deflate.js';\nimport { douglasPeuckerArray } from './flat/simplify.js';\nimport { extend } from '../array.js';\nimport { inflateCoordinatesArray } from './flat/inflate.js';\nimport { interpolatePoint, lineStringsCoordinateAtM, } from './flat/interpolate.js';\nimport { intersectsLineStringArray } from './flat/intersectsextent.js';\n/**\n * @classdesc\n * Multi-linestring geometry.\n *\n * @api\n */\nvar MultiLineString = /** @class */ (function (_super) {\n __extends(MultiLineString, _super);\n /**\n * @param {Array|LineString>|Array} coordinates\n * Coordinates or LineString geometries. (For internal use, flat coordinates in\n * combination with `opt_layout` and `opt_ends` are also accepted.)\n * @param {import(\"./GeometryLayout.js\").default} [opt_layout] Layout.\n * @param {Array} [opt_ends] Flat coordinate ends for internal use.\n */\n function MultiLineString(coordinates, opt_layout, opt_ends) {\n var _this = _super.call(this) || this;\n /**\n * @type {Array}\n * @private\n */\n _this.ends_ = [];\n /**\n * @private\n * @type {number}\n */\n _this.maxDelta_ = -1;\n /**\n * @private\n * @type {number}\n */\n _this.maxDeltaRevision_ = -1;\n if (Array.isArray(coordinates[0])) {\n _this.setCoordinates(\n /** @type {Array>} */ (coordinates), opt_layout);\n }\n else if (opt_layout !== undefined && opt_ends) {\n _this.setFlatCoordinates(opt_layout, \n /** @type {Array} */ (coordinates));\n _this.ends_ = opt_ends;\n }\n else {\n var layout = _this.getLayout();\n var lineStrings = /** @type {Array} */ (coordinates);\n var flatCoordinates = [];\n var ends = [];\n for (var i = 0, ii = lineStrings.length; i < ii; ++i) {\n var lineString = lineStrings[i];\n if (i === 0) {\n layout = lineString.getLayout();\n }\n extend(flatCoordinates, lineString.getFlatCoordinates());\n ends.push(flatCoordinates.length);\n }\n _this.setFlatCoordinates(layout, flatCoordinates);\n _this.ends_ = ends;\n }\n return _this;\n }\n /**\n * Append the passed linestring to the multilinestring.\n * @param {LineString} lineString LineString.\n * @api\n */\n MultiLineString.prototype.appendLineString = function (lineString) {\n if (!this.flatCoordinates) {\n this.flatCoordinates = lineString.getFlatCoordinates().slice();\n }\n else {\n extend(this.flatCoordinates, lineString.getFlatCoordinates().slice());\n }\n this.ends_.push(this.flatCoordinates.length);\n this.changed();\n };\n /**\n * Make a complete copy of the geometry.\n * @return {!MultiLineString} Clone.\n * @api\n */\n MultiLineString.prototype.clone = function () {\n var multiLineString = new MultiLineString(this.flatCoordinates.slice(), this.layout, this.ends_.slice());\n multiLineString.applyProperties(this);\n return multiLineString;\n };\n /**\n * @param {number} x X.\n * @param {number} y Y.\n * @param {import(\"../coordinate.js\").Coordinate} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @return {number} Minimum squared distance.\n */\n MultiLineString.prototype.closestPointXY = function (x, y, closestPoint, minSquaredDistance) {\n if (minSquaredDistance < closestSquaredDistanceXY(this.getExtent(), x, y)) {\n return minSquaredDistance;\n }\n if (this.maxDeltaRevision_ != this.getRevision()) {\n this.maxDelta_ = Math.sqrt(arrayMaxSquaredDelta(this.flatCoordinates, 0, this.ends_, this.stride, 0));\n this.maxDeltaRevision_ = this.getRevision();\n }\n return assignClosestArrayPoint(this.flatCoordinates, 0, this.ends_, this.stride, this.maxDelta_, false, x, y, closestPoint, minSquaredDistance);\n };\n /**\n * Returns the coordinate at `m` using linear interpolation, or `null` if no\n * such coordinate exists.\n *\n * `opt_extrapolate` controls extrapolation beyond the range of Ms in the\n * MultiLineString. If `opt_extrapolate` is `true` then Ms less than the first\n * M will return the first coordinate and Ms greater than the last M will\n * return the last coordinate.\n *\n * `opt_interpolate` controls interpolation between consecutive LineStrings\n * within the MultiLineString. If `opt_interpolate` is `true` the coordinates\n * will be linearly interpolated between the last coordinate of one LineString\n * and the first coordinate of the next LineString. If `opt_interpolate` is\n * `false` then the function will return `null` for Ms falling between\n * LineStrings.\n *\n * @param {number} m M.\n * @param {boolean} [opt_extrapolate] Extrapolate. Default is `false`.\n * @param {boolean} [opt_interpolate] Interpolate. Default is `false`.\n * @return {import(\"../coordinate.js\").Coordinate} Coordinate.\n * @api\n */\n MultiLineString.prototype.getCoordinateAtM = function (m, opt_extrapolate, opt_interpolate) {\n if ((this.layout != GeometryLayout.XYM &&\n this.layout != GeometryLayout.XYZM) ||\n this.flatCoordinates.length === 0) {\n return null;\n }\n var extrapolate = opt_extrapolate !== undefined ? opt_extrapolate : false;\n var interpolate = opt_interpolate !== undefined ? opt_interpolate : false;\n return lineStringsCoordinateAtM(this.flatCoordinates, 0, this.ends_, this.stride, m, extrapolate, interpolate);\n };\n /**\n * Return the coordinates of the multilinestring.\n * @return {Array>} Coordinates.\n * @api\n */\n MultiLineString.prototype.getCoordinates = function () {\n return inflateCoordinatesArray(this.flatCoordinates, 0, this.ends_, this.stride);\n };\n /**\n * @return {Array} Ends.\n */\n MultiLineString.prototype.getEnds = function () {\n return this.ends_;\n };\n /**\n * Return the linestring at the specified index.\n * @param {number} index Index.\n * @return {LineString} LineString.\n * @api\n */\n MultiLineString.prototype.getLineString = function (index) {\n if (index < 0 || this.ends_.length <= index) {\n return null;\n }\n return new LineString(this.flatCoordinates.slice(index === 0 ? 0 : this.ends_[index - 1], this.ends_[index]), this.layout);\n };\n /**\n * Return the linestrings of this multilinestring.\n * @return {Array} LineStrings.\n * @api\n */\n MultiLineString.prototype.getLineStrings = function () {\n var flatCoordinates = this.flatCoordinates;\n var ends = this.ends_;\n var layout = this.layout;\n /** @type {Array} */\n var lineStrings = [];\n var offset = 0;\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n var end = ends[i];\n var lineString = new LineString(flatCoordinates.slice(offset, end), layout);\n lineStrings.push(lineString);\n offset = end;\n }\n return lineStrings;\n };\n /**\n * @return {Array} Flat midpoints.\n */\n MultiLineString.prototype.getFlatMidpoints = function () {\n var midpoints = [];\n var flatCoordinates = this.flatCoordinates;\n var offset = 0;\n var ends = this.ends_;\n var stride = this.stride;\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n var end = ends[i];\n var midpoint = interpolatePoint(flatCoordinates, offset, end, stride, 0.5);\n extend(midpoints, midpoint);\n offset = end;\n }\n return midpoints;\n };\n /**\n * @param {number} squaredTolerance Squared tolerance.\n * @return {MultiLineString} Simplified MultiLineString.\n * @protected\n */\n MultiLineString.prototype.getSimplifiedGeometryInternal = function (squaredTolerance) {\n var simplifiedFlatCoordinates = [];\n var simplifiedEnds = [];\n simplifiedFlatCoordinates.length = douglasPeuckerArray(this.flatCoordinates, 0, this.ends_, this.stride, squaredTolerance, simplifiedFlatCoordinates, 0, simplifiedEnds);\n return new MultiLineString(simplifiedFlatCoordinates, GeometryLayout.XY, simplifiedEnds);\n };\n /**\n * Get the type of this geometry.\n * @return {import(\"./GeometryType.js\").default} Geometry type.\n * @api\n */\n MultiLineString.prototype.getType = function () {\n return GeometryType.MULTI_LINE_STRING;\n };\n /**\n * Test if the geometry and the passed extent intersect.\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @return {boolean} `true` if the geometry and the extent intersect.\n * @api\n */\n MultiLineString.prototype.intersectsExtent = function (extent) {\n return intersectsLineStringArray(this.flatCoordinates, 0, this.ends_, this.stride, extent);\n };\n /**\n * Set the coordinates of the multilinestring.\n * @param {!Array>} coordinates Coordinates.\n * @param {GeometryLayout} [opt_layout] Layout.\n * @api\n */\n MultiLineString.prototype.setCoordinates = function (coordinates, opt_layout) {\n this.setLayout(opt_layout, coordinates, 2);\n if (!this.flatCoordinates) {\n this.flatCoordinates = [];\n }\n var ends = deflateCoordinatesArray(this.flatCoordinates, 0, coordinates, this.stride, this.ends_);\n this.flatCoordinates.length = ends.length === 0 ? 0 : ends[ends.length - 1];\n this.changed();\n };\n return MultiLineString;\n}(SimpleGeometry));\nexport default MultiLineString;\n//# sourceMappingURL=MultiLineString.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/geom/Point\n */\nimport GeometryType from './GeometryType.js';\nimport SimpleGeometry from './SimpleGeometry.js';\nimport { containsXY, createOrUpdateFromCoordinate } from '../extent.js';\nimport { deflateCoordinate } from './flat/deflate.js';\nimport { squaredDistance as squaredDx } from '../math.js';\n/**\n * @classdesc\n * Point geometry.\n *\n * @api\n */\nvar Point = /** @class */ (function (_super) {\n __extends(Point, _super);\n /**\n * @param {import(\"../coordinate.js\").Coordinate} coordinates Coordinates.\n * @param {import(\"./GeometryLayout.js\").default} [opt_layout] Layout.\n */\n function Point(coordinates, opt_layout) {\n var _this = _super.call(this) || this;\n _this.setCoordinates(coordinates, opt_layout);\n return _this;\n }\n /**\n * Make a complete copy of the geometry.\n * @return {!Point} Clone.\n * @api\n */\n Point.prototype.clone = function () {\n var point = new Point(this.flatCoordinates.slice(), this.layout);\n point.applyProperties(this);\n return point;\n };\n /**\n * @param {number} x X.\n * @param {number} y Y.\n * @param {import(\"../coordinate.js\").Coordinate} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @return {number} Minimum squared distance.\n */\n Point.prototype.closestPointXY = function (x, y, closestPoint, minSquaredDistance) {\n var flatCoordinates = this.flatCoordinates;\n var squaredDistance = squaredDx(x, y, flatCoordinates[0], flatCoordinates[1]);\n if (squaredDistance < minSquaredDistance) {\n var stride = this.stride;\n for (var i = 0; i < stride; ++i) {\n closestPoint[i] = flatCoordinates[i];\n }\n closestPoint.length = stride;\n return squaredDistance;\n }\n else {\n return minSquaredDistance;\n }\n };\n /**\n * Return the coordinate of the point.\n * @return {import(\"../coordinate.js\").Coordinate} Coordinates.\n * @api\n */\n Point.prototype.getCoordinates = function () {\n return !this.flatCoordinates ? [] : this.flatCoordinates.slice();\n };\n /**\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @protected\n * @return {import(\"../extent.js\").Extent} extent Extent.\n */\n Point.prototype.computeExtent = function (extent) {\n return createOrUpdateFromCoordinate(this.flatCoordinates, extent);\n };\n /**\n * Get the type of this geometry.\n * @return {import(\"./GeometryType.js\").default} Geometry type.\n * @api\n */\n Point.prototype.getType = function () {\n return GeometryType.POINT;\n };\n /**\n * Test if the geometry and the passed extent intersect.\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @return {boolean} `true` if the geometry and the extent intersect.\n * @api\n */\n Point.prototype.intersectsExtent = function (extent) {\n return containsXY(extent, this.flatCoordinates[0], this.flatCoordinates[1]);\n };\n /**\n * @param {!Array<*>} coordinates Coordinates.\n * @param {import(\"./GeometryLayout.js\").default} [opt_layout] Layout.\n * @api\n */\n Point.prototype.setCoordinates = function (coordinates, opt_layout) {\n this.setLayout(opt_layout, coordinates, 0);\n if (!this.flatCoordinates) {\n this.flatCoordinates = [];\n }\n this.flatCoordinates.length = deflateCoordinate(this.flatCoordinates, 0, coordinates, this.stride);\n this.changed();\n };\n return Point;\n}(SimpleGeometry));\nexport default Point;\n//# sourceMappingURL=Point.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/geom/MultiPoint\n */\nimport GeometryType from './GeometryType.js';\nimport Point from './Point.js';\nimport SimpleGeometry from './SimpleGeometry.js';\nimport { closestSquaredDistanceXY, containsXY } from '../extent.js';\nimport { deflateCoordinates } from './flat/deflate.js';\nimport { extend } from '../array.js';\nimport { inflateCoordinates } from './flat/inflate.js';\nimport { squaredDistance as squaredDx } from '../math.js';\n/**\n * @classdesc\n * Multi-point geometry.\n *\n * @api\n */\nvar MultiPoint = /** @class */ (function (_super) {\n __extends(MultiPoint, _super);\n /**\n * @param {Array|Array} coordinates Coordinates.\n * For internal use, flat coordinates in combination with `opt_layout` are also accepted.\n * @param {import(\"./GeometryLayout.js\").default} [opt_layout] Layout.\n */\n function MultiPoint(coordinates, opt_layout) {\n var _this = _super.call(this) || this;\n if (opt_layout && !Array.isArray(coordinates[0])) {\n _this.setFlatCoordinates(opt_layout, \n /** @type {Array} */ (coordinates));\n }\n else {\n _this.setCoordinates(\n /** @type {Array} */ (coordinates), opt_layout);\n }\n return _this;\n }\n /**\n * Append the passed point to this multipoint.\n * @param {Point} point Point.\n * @api\n */\n MultiPoint.prototype.appendPoint = function (point) {\n if (!this.flatCoordinates) {\n this.flatCoordinates = point.getFlatCoordinates().slice();\n }\n else {\n extend(this.flatCoordinates, point.getFlatCoordinates());\n }\n this.changed();\n };\n /**\n * Make a complete copy of the geometry.\n * @return {!MultiPoint} Clone.\n * @api\n */\n MultiPoint.prototype.clone = function () {\n var multiPoint = new MultiPoint(this.flatCoordinates.slice(), this.layout);\n multiPoint.applyProperties(this);\n return multiPoint;\n };\n /**\n * @param {number} x X.\n * @param {number} y Y.\n * @param {import(\"../coordinate.js\").Coordinate} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @return {number} Minimum squared distance.\n */\n MultiPoint.prototype.closestPointXY = function (x, y, closestPoint, minSquaredDistance) {\n if (minSquaredDistance < closestSquaredDistanceXY(this.getExtent(), x, y)) {\n return minSquaredDistance;\n }\n var flatCoordinates = this.flatCoordinates;\n var stride = this.stride;\n for (var i = 0, ii = flatCoordinates.length; i < ii; i += stride) {\n var squaredDistance = squaredDx(x, y, flatCoordinates[i], flatCoordinates[i + 1]);\n if (squaredDistance < minSquaredDistance) {\n minSquaredDistance = squaredDistance;\n for (var j = 0; j < stride; ++j) {\n closestPoint[j] = flatCoordinates[i + j];\n }\n closestPoint.length = stride;\n }\n }\n return minSquaredDistance;\n };\n /**\n * Return the coordinates of the multipoint.\n * @return {Array} Coordinates.\n * @api\n */\n MultiPoint.prototype.getCoordinates = function () {\n return inflateCoordinates(this.flatCoordinates, 0, this.flatCoordinates.length, this.stride);\n };\n /**\n * Return the point at the specified index.\n * @param {number} index Index.\n * @return {Point} Point.\n * @api\n */\n MultiPoint.prototype.getPoint = function (index) {\n var n = !this.flatCoordinates\n ? 0\n : this.flatCoordinates.length / this.stride;\n if (index < 0 || n <= index) {\n return null;\n }\n return new Point(this.flatCoordinates.slice(index * this.stride, (index + 1) * this.stride), this.layout);\n };\n /**\n * Return the points of this multipoint.\n * @return {Array} Points.\n * @api\n */\n MultiPoint.prototype.getPoints = function () {\n var flatCoordinates = this.flatCoordinates;\n var layout = this.layout;\n var stride = this.stride;\n /** @type {Array} */\n var points = [];\n for (var i = 0, ii = flatCoordinates.length; i < ii; i += stride) {\n var point = new Point(flatCoordinates.slice(i, i + stride), layout);\n points.push(point);\n }\n return points;\n };\n /**\n * Get the type of this geometry.\n * @return {import(\"./GeometryType.js\").default} Geometry type.\n * @api\n */\n MultiPoint.prototype.getType = function () {\n return GeometryType.MULTI_POINT;\n };\n /**\n * Test if the geometry and the passed extent intersect.\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @return {boolean} `true` if the geometry and the extent intersect.\n * @api\n */\n MultiPoint.prototype.intersectsExtent = function (extent) {\n var flatCoordinates = this.flatCoordinates;\n var stride = this.stride;\n for (var i = 0, ii = flatCoordinates.length; i < ii; i += stride) {\n var x = flatCoordinates[i];\n var y = flatCoordinates[i + 1];\n if (containsXY(extent, x, y)) {\n return true;\n }\n }\n return false;\n };\n /**\n * Set the coordinates of the multipoint.\n * @param {!Array} coordinates Coordinates.\n * @param {import(\"./GeometryLayout.js\").default} [opt_layout] Layout.\n * @api\n */\n MultiPoint.prototype.setCoordinates = function (coordinates, opt_layout) {\n this.setLayout(opt_layout, coordinates, 1);\n if (!this.flatCoordinates) {\n this.flatCoordinates = [];\n }\n this.flatCoordinates.length = deflateCoordinates(this.flatCoordinates, 0, coordinates, this.stride);\n this.changed();\n };\n return MultiPoint;\n}(SimpleGeometry));\nexport default MultiPoint;\n//# sourceMappingURL=MultiPoint.js.map","/**\n * @module ol/geom/flat/interiorpoint\n */\nimport { linearRingsContainsXY } from './contains.js';\nimport { numberSafeCompareFunction } from '../../array.js';\n/**\n * Calculates a point that is likely to lie in the interior of the linear rings.\n * Inspired by JTS's com.vividsolutions.jts.geom.Geometry#getInteriorPoint.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {Array} flatCenters Flat centers.\n * @param {number} flatCentersOffset Flat center offset.\n * @param {Array} [opt_dest] Destination.\n * @return {Array} Destination point as XYM coordinate, where M is the\n * length of the horizontal intersection that the point belongs to.\n */\nexport function getInteriorPointOfArray(flatCoordinates, offset, ends, stride, flatCenters, flatCentersOffset, opt_dest) {\n var i, ii, x, x1, x2, y1, y2;\n var y = flatCenters[flatCentersOffset + 1];\n /** @type {Array} */\n var intersections = [];\n // Calculate intersections with the horizontal line\n for (var r = 0, rr = ends.length; r < rr; ++r) {\n var end = ends[r];\n x1 = flatCoordinates[end - stride];\n y1 = flatCoordinates[end - stride + 1];\n for (i = offset; i < end; i += stride) {\n x2 = flatCoordinates[i];\n y2 = flatCoordinates[i + 1];\n if ((y <= y1 && y2 <= y) || (y1 <= y && y <= y2)) {\n x = ((y - y1) / (y2 - y1)) * (x2 - x1) + x1;\n intersections.push(x);\n }\n x1 = x2;\n y1 = y2;\n }\n }\n // Find the longest segment of the horizontal line that has its center point\n // inside the linear ring.\n var pointX = NaN;\n var maxSegmentLength = -Infinity;\n intersections.sort(numberSafeCompareFunction);\n x1 = intersections[0];\n for (i = 1, ii = intersections.length; i < ii; ++i) {\n x2 = intersections[i];\n var segmentLength = Math.abs(x2 - x1);\n if (segmentLength > maxSegmentLength) {\n x = (x1 + x2) / 2;\n if (linearRingsContainsXY(flatCoordinates, offset, ends, stride, x, y)) {\n pointX = x;\n maxSegmentLength = segmentLength;\n }\n }\n x1 = x2;\n }\n if (isNaN(pointX)) {\n // There is no horizontal line that has its center point inside the linear\n // ring. Use the center of the the linear ring's extent.\n pointX = flatCenters[flatCentersOffset];\n }\n if (opt_dest) {\n opt_dest.push(pointX, y, maxSegmentLength);\n return opt_dest;\n }\n else {\n return [pointX, y, maxSegmentLength];\n }\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {Array} flatCenters Flat centers.\n * @return {Array} Interior points as XYM coordinates, where M is the\n * length of the horizontal intersection that the point belongs to.\n */\nexport function getInteriorPointsOfMultiArray(flatCoordinates, offset, endss, stride, flatCenters) {\n var interiorPoints = [];\n for (var i = 0, ii = endss.length; i < ii; ++i) {\n var ends = endss[i];\n interiorPoints = getInteriorPointOfArray(flatCoordinates, offset, ends, stride, flatCenters, 2 * i, interiorPoints);\n offset = ends[ends.length - 1];\n }\n return interiorPoints;\n}\n//# sourceMappingURL=interiorpoint.js.map","/**\n * @module ol/geom/flat/reverse\n */\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n */\nexport function coordinates(flatCoordinates, offset, end, stride) {\n while (offset < end - stride) {\n for (var i = 0; i < stride; ++i) {\n var tmp = flatCoordinates[offset + i];\n flatCoordinates[offset + i] = flatCoordinates[end - stride + i];\n flatCoordinates[end - stride + i] = tmp;\n }\n offset += stride;\n end -= stride;\n }\n}\n//# sourceMappingURL=reverse.js.map","/**\n * @module ol/geom/flat/orient\n */\nimport { coordinates as reverseCoordinates } from './reverse.js';\n/**\n * Is the linear ring oriented clockwise in a coordinate system with a bottom-left\n * coordinate origin? For a coordinate system with a top-left coordinate origin,\n * the ring's orientation is clockwise when this function returns false.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @return {boolean} Is clockwise.\n */\nexport function linearRingIsClockwise(flatCoordinates, offset, end, stride) {\n // https://stackoverflow.com/q/1165647/clockwise-method#1165943\n // https://github.com/OSGeo/gdal/blob/master/gdal/ogr/ogrlinearring.cpp\n var edge = 0;\n var x1 = flatCoordinates[end - stride];\n var y1 = flatCoordinates[end - stride + 1];\n for (; offset < end; offset += stride) {\n var x2 = flatCoordinates[offset];\n var y2 = flatCoordinates[offset + 1];\n edge += (x2 - x1) * (y2 + y1);\n x1 = x2;\n y1 = y2;\n }\n return edge === 0 ? undefined : edge > 0;\n}\n/**\n * Determines if linear rings are oriented. By default, left-hand orientation\n * is tested (first ring must be clockwise, remaining rings counter-clockwise).\n * To test for right-hand orientation, use the `opt_right` argument.\n *\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Array of end indexes.\n * @param {number} stride Stride.\n * @param {boolean} [opt_right] Test for right-hand orientation\n * (counter-clockwise exterior ring and clockwise interior rings).\n * @return {boolean} Rings are correctly oriented.\n */\nexport function linearRingsAreOriented(flatCoordinates, offset, ends, stride, opt_right) {\n var right = opt_right !== undefined ? opt_right : false;\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n var end = ends[i];\n var isClockwise = linearRingIsClockwise(flatCoordinates, offset, end, stride);\n if (i === 0) {\n if ((right && isClockwise) || (!right && !isClockwise)) {\n return false;\n }\n }\n else {\n if ((right && !isClockwise) || (!right && isClockwise)) {\n return false;\n }\n }\n offset = end;\n }\n return true;\n}\n/**\n * Determines if linear rings are oriented. By default, left-hand orientation\n * is tested (first ring must be clockwise, remaining rings counter-clockwise).\n * To test for right-hand orientation, use the `opt_right` argument.\n *\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Array of array of end indexes.\n * @param {number} stride Stride.\n * @param {boolean} [opt_right] Test for right-hand orientation\n * (counter-clockwise exterior ring and clockwise interior rings).\n * @return {boolean} Rings are correctly oriented.\n */\nexport function linearRingssAreOriented(flatCoordinates, offset, endss, stride, opt_right) {\n for (var i = 0, ii = endss.length; i < ii; ++i) {\n var ends = endss[i];\n if (!linearRingsAreOriented(flatCoordinates, offset, ends, stride, opt_right)) {\n return false;\n }\n if (ends.length) {\n offset = ends[ends.length - 1];\n }\n }\n return true;\n}\n/**\n * Orient coordinates in a flat array of linear rings. By default, rings\n * are oriented following the left-hand rule (clockwise for exterior and\n * counter-clockwise for interior rings). To orient according to the\n * right-hand rule, use the `opt_right` argument.\n *\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {boolean} [opt_right] Follow the right-hand rule for orientation.\n * @return {number} End.\n */\nexport function orientLinearRings(flatCoordinates, offset, ends, stride, opt_right) {\n var right = opt_right !== undefined ? opt_right : false;\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n var end = ends[i];\n var isClockwise = linearRingIsClockwise(flatCoordinates, offset, end, stride);\n var reverse = i === 0\n ? (right && isClockwise) || (!right && !isClockwise)\n : (right && !isClockwise) || (!right && isClockwise);\n if (reverse) {\n reverseCoordinates(flatCoordinates, offset, end, stride);\n }\n offset = end;\n }\n return offset;\n}\n/**\n * Orient coordinates in a flat array of linear rings. By default, rings\n * are oriented following the left-hand rule (clockwise for exterior and\n * counter-clockwise for interior rings). To orient according to the\n * right-hand rule, use the `opt_right` argument.\n *\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Array of array of end indexes.\n * @param {number} stride Stride.\n * @param {boolean} [opt_right] Follow the right-hand rule for orientation.\n * @return {number} End.\n */\nexport function orientLinearRingsArray(flatCoordinates, offset, endss, stride, opt_right) {\n for (var i = 0, ii = endss.length; i < ii; ++i) {\n offset = orientLinearRings(flatCoordinates, offset, endss[i], stride, opt_right);\n }\n return offset;\n}\n//# sourceMappingURL=orient.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/geom/Polygon\n */\nimport GeometryLayout from './GeometryLayout.js';\nimport GeometryType from './GeometryType.js';\nimport LinearRing from './LinearRing.js';\nimport Point from './Point.js';\nimport SimpleGeometry from './SimpleGeometry.js';\nimport { arrayMaxSquaredDelta, assignClosestArrayPoint } from './flat/closest.js';\nimport { closestSquaredDistanceXY, getCenter } from '../extent.js';\nimport { deflateCoordinatesArray } from './flat/deflate.js';\nimport { extend } from '../array.js';\nimport { getInteriorPointOfArray } from './flat/interiorpoint.js';\nimport { inflateCoordinatesArray } from './flat/inflate.js';\nimport { intersectsLinearRingArray } from './flat/intersectsextent.js';\nimport { linearRingsAreOriented, orientLinearRings } from './flat/orient.js';\nimport { linearRings as linearRingsArea } from './flat/area.js';\nimport { linearRingsContainsXY } from './flat/contains.js';\nimport { modulo } from '../math.js';\nimport { quantizeArray } from './flat/simplify.js';\nimport { offset as sphereOffset } from '../sphere.js';\n/**\n * @classdesc\n * Polygon geometry.\n *\n * @api\n */\nvar Polygon = /** @class */ (function (_super) {\n __extends(Polygon, _super);\n /**\n * @param {!Array>|!Array} coordinates\n * Array of linear rings that define the polygon. The first linear ring of the\n * array defines the outer-boundary or surface of the polygon. Each subsequent\n * linear ring defines a hole in the surface of the polygon. A linear ring is\n * an array of vertices' coordinates where the first coordinate and the last are\n * equivalent. (For internal use, flat coordinates in combination with\n * `opt_layout` and `opt_ends` are also accepted.)\n * @param {import(\"./GeometryLayout.js\").default} [opt_layout] Layout.\n * @param {Array} [opt_ends] Ends (for internal use with flat coordinates).\n */\n function Polygon(coordinates, opt_layout, opt_ends) {\n var _this = _super.call(this) || this;\n /**\n * @type {Array}\n * @private\n */\n _this.ends_ = [];\n /**\n * @private\n * @type {number}\n */\n _this.flatInteriorPointRevision_ = -1;\n /**\n * @private\n * @type {import(\"../coordinate.js\").Coordinate}\n */\n _this.flatInteriorPoint_ = null;\n /**\n * @private\n * @type {number}\n */\n _this.maxDelta_ = -1;\n /**\n * @private\n * @type {number}\n */\n _this.maxDeltaRevision_ = -1;\n /**\n * @private\n * @type {number}\n */\n _this.orientedRevision_ = -1;\n /**\n * @private\n * @type {Array}\n */\n _this.orientedFlatCoordinates_ = null;\n if (opt_layout !== undefined && opt_ends) {\n _this.setFlatCoordinates(opt_layout, \n /** @type {Array} */ (coordinates));\n _this.ends_ = opt_ends;\n }\n else {\n _this.setCoordinates(\n /** @type {Array>} */ (coordinates), opt_layout);\n }\n return _this;\n }\n /**\n * Append the passed linear ring to this polygon.\n * @param {LinearRing} linearRing Linear ring.\n * @api\n */\n Polygon.prototype.appendLinearRing = function (linearRing) {\n if (!this.flatCoordinates) {\n this.flatCoordinates = linearRing.getFlatCoordinates().slice();\n }\n else {\n extend(this.flatCoordinates, linearRing.getFlatCoordinates());\n }\n this.ends_.push(this.flatCoordinates.length);\n this.changed();\n };\n /**\n * Make a complete copy of the geometry.\n * @return {!Polygon} Clone.\n * @api\n */\n Polygon.prototype.clone = function () {\n var polygon = new Polygon(this.flatCoordinates.slice(), this.layout, this.ends_.slice());\n polygon.applyProperties(this);\n return polygon;\n };\n /**\n * @param {number} x X.\n * @param {number} y Y.\n * @param {import(\"../coordinate.js\").Coordinate} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @return {number} Minimum squared distance.\n */\n Polygon.prototype.closestPointXY = function (x, y, closestPoint, minSquaredDistance) {\n if (minSquaredDistance < closestSquaredDistanceXY(this.getExtent(), x, y)) {\n return minSquaredDistance;\n }\n if (this.maxDeltaRevision_ != this.getRevision()) {\n this.maxDelta_ = Math.sqrt(arrayMaxSquaredDelta(this.flatCoordinates, 0, this.ends_, this.stride, 0));\n this.maxDeltaRevision_ = this.getRevision();\n }\n return assignClosestArrayPoint(this.flatCoordinates, 0, this.ends_, this.stride, this.maxDelta_, true, x, y, closestPoint, minSquaredDistance);\n };\n /**\n * @param {number} x X.\n * @param {number} y Y.\n * @return {boolean} Contains (x, y).\n */\n Polygon.prototype.containsXY = function (x, y) {\n return linearRingsContainsXY(this.getOrientedFlatCoordinates(), 0, this.ends_, this.stride, x, y);\n };\n /**\n * Return the area of the polygon on projected plane.\n * @return {number} Area (on projected plane).\n * @api\n */\n Polygon.prototype.getArea = function () {\n return linearRingsArea(this.getOrientedFlatCoordinates(), 0, this.ends_, this.stride);\n };\n /**\n * Get the coordinate array for this geometry. This array has the structure\n * of a GeoJSON coordinate array for polygons.\n *\n * @param {boolean} [opt_right] Orient coordinates according to the right-hand\n * rule (counter-clockwise for exterior and clockwise for interior rings).\n * If `false`, coordinates will be oriented according to the left-hand rule\n * (clockwise for exterior and counter-clockwise for interior rings).\n * By default, coordinate orientation will depend on how the geometry was\n * constructed.\n * @return {Array>} Coordinates.\n * @api\n */\n Polygon.prototype.getCoordinates = function (opt_right) {\n var flatCoordinates;\n if (opt_right !== undefined) {\n flatCoordinates = this.getOrientedFlatCoordinates().slice();\n orientLinearRings(flatCoordinates, 0, this.ends_, this.stride, opt_right);\n }\n else {\n flatCoordinates = this.flatCoordinates;\n }\n return inflateCoordinatesArray(flatCoordinates, 0, this.ends_, this.stride);\n };\n /**\n * @return {Array} Ends.\n */\n Polygon.prototype.getEnds = function () {\n return this.ends_;\n };\n /**\n * @return {Array} Interior point.\n */\n Polygon.prototype.getFlatInteriorPoint = function () {\n if (this.flatInteriorPointRevision_ != this.getRevision()) {\n var flatCenter = getCenter(this.getExtent());\n this.flatInteriorPoint_ = getInteriorPointOfArray(this.getOrientedFlatCoordinates(), 0, this.ends_, this.stride, flatCenter, 0);\n this.flatInteriorPointRevision_ = this.getRevision();\n }\n return this.flatInteriorPoint_;\n };\n /**\n * Return an interior point of the polygon.\n * @return {Point} Interior point as XYM coordinate, where M is the\n * length of the horizontal intersection that the point belongs to.\n * @api\n */\n Polygon.prototype.getInteriorPoint = function () {\n return new Point(this.getFlatInteriorPoint(), GeometryLayout.XYM);\n };\n /**\n * Return the number of rings of the polygon, this includes the exterior\n * ring and any interior rings.\n *\n * @return {number} Number of rings.\n * @api\n */\n Polygon.prototype.getLinearRingCount = function () {\n return this.ends_.length;\n };\n /**\n * Return the Nth linear ring of the polygon geometry. Return `null` if the\n * given index is out of range.\n * The exterior linear ring is available at index `0` and the interior rings\n * at index `1` and beyond.\n *\n * @param {number} index Index.\n * @return {LinearRing} Linear ring.\n * @api\n */\n Polygon.prototype.getLinearRing = function (index) {\n if (index < 0 || this.ends_.length <= index) {\n return null;\n }\n return new LinearRing(this.flatCoordinates.slice(index === 0 ? 0 : this.ends_[index - 1], this.ends_[index]), this.layout);\n };\n /**\n * Return the linear rings of the polygon.\n * @return {Array} Linear rings.\n * @api\n */\n Polygon.prototype.getLinearRings = function () {\n var layout = this.layout;\n var flatCoordinates = this.flatCoordinates;\n var ends = this.ends_;\n var linearRings = [];\n var offset = 0;\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n var end = ends[i];\n var linearRing = new LinearRing(flatCoordinates.slice(offset, end), layout);\n linearRings.push(linearRing);\n offset = end;\n }\n return linearRings;\n };\n /**\n * @return {Array} Oriented flat coordinates.\n */\n Polygon.prototype.getOrientedFlatCoordinates = function () {\n if (this.orientedRevision_ != this.getRevision()) {\n var flatCoordinates = this.flatCoordinates;\n if (linearRingsAreOriented(flatCoordinates, 0, this.ends_, this.stride)) {\n this.orientedFlatCoordinates_ = flatCoordinates;\n }\n else {\n this.orientedFlatCoordinates_ = flatCoordinates.slice();\n this.orientedFlatCoordinates_.length = orientLinearRings(this.orientedFlatCoordinates_, 0, this.ends_, this.stride);\n }\n this.orientedRevision_ = this.getRevision();\n }\n return this.orientedFlatCoordinates_;\n };\n /**\n * @param {number} squaredTolerance Squared tolerance.\n * @return {Polygon} Simplified Polygon.\n * @protected\n */\n Polygon.prototype.getSimplifiedGeometryInternal = function (squaredTolerance) {\n var simplifiedFlatCoordinates = [];\n var simplifiedEnds = [];\n simplifiedFlatCoordinates.length = quantizeArray(this.flatCoordinates, 0, this.ends_, this.stride, Math.sqrt(squaredTolerance), simplifiedFlatCoordinates, 0, simplifiedEnds);\n return new Polygon(simplifiedFlatCoordinates, GeometryLayout.XY, simplifiedEnds);\n };\n /**\n * Get the type of this geometry.\n * @return {import(\"./GeometryType.js\").default} Geometry type.\n * @api\n */\n Polygon.prototype.getType = function () {\n return GeometryType.POLYGON;\n };\n /**\n * Test if the geometry and the passed extent intersect.\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @return {boolean} `true` if the geometry and the extent intersect.\n * @api\n */\n Polygon.prototype.intersectsExtent = function (extent) {\n return intersectsLinearRingArray(this.getOrientedFlatCoordinates(), 0, this.ends_, this.stride, extent);\n };\n /**\n * Set the coordinates of the polygon.\n * @param {!Array>} coordinates Coordinates.\n * @param {import(\"./GeometryLayout.js\").default} [opt_layout] Layout.\n * @api\n */\n Polygon.prototype.setCoordinates = function (coordinates, opt_layout) {\n this.setLayout(opt_layout, coordinates, 2);\n if (!this.flatCoordinates) {\n this.flatCoordinates = [];\n }\n var ends = deflateCoordinatesArray(this.flatCoordinates, 0, coordinates, this.stride, this.ends_);\n this.flatCoordinates.length = ends.length === 0 ? 0 : ends[ends.length - 1];\n this.changed();\n };\n return Polygon;\n}(SimpleGeometry));\nexport default Polygon;\n/**\n * Create an approximation of a circle on the surface of a sphere.\n * @param {import(\"../coordinate.js\").Coordinate} center Center (`[lon, lat]` in degrees).\n * @param {number} radius The great-circle distance from the center to\n * the polygon vertices in meters.\n * @param {number} [opt_n] Optional number of vertices for the resulting\n * polygon. Default is `32`.\n * @param {number} [opt_sphereRadius] Optional radius for the sphere (defaults to\n * the Earth's mean radius using the WGS84 ellipsoid).\n * @return {Polygon} The \"circular\" polygon.\n * @api\n */\nexport function circular(center, radius, opt_n, opt_sphereRadius) {\n var n = opt_n ? opt_n : 32;\n /** @type {Array} */\n var flatCoordinates = [];\n for (var i = 0; i < n; ++i) {\n extend(flatCoordinates, sphereOffset(center, radius, (2 * Math.PI * i) / n, opt_sphereRadius));\n }\n flatCoordinates.push(flatCoordinates[0], flatCoordinates[1]);\n return new Polygon(flatCoordinates, GeometryLayout.XY, [\n flatCoordinates.length,\n ]);\n}\n/**\n * Create a polygon from an extent. The layout used is `XY`.\n * @param {import(\"../extent.js\").Extent} extent The extent.\n * @return {Polygon} The polygon.\n * @api\n */\nexport function fromExtent(extent) {\n var minX = extent[0];\n var minY = extent[1];\n var maxX = extent[2];\n var maxY = extent[3];\n var flatCoordinates = [\n minX,\n minY,\n minX,\n maxY,\n maxX,\n maxY,\n maxX,\n minY,\n minX,\n minY,\n ];\n return new Polygon(flatCoordinates, GeometryLayout.XY, [\n flatCoordinates.length,\n ]);\n}\n/**\n * Create a regular polygon from a circle.\n * @param {import(\"./Circle.js\").default} circle Circle geometry.\n * @param {number} [opt_sides] Number of sides of the polygon. Default is 32.\n * @param {number} [opt_angle] Start angle for the first vertex of the polygon in\n * counter-clockwise radians. 0 means East. Default is 0.\n * @return {Polygon} Polygon geometry.\n * @api\n */\nexport function fromCircle(circle, opt_sides, opt_angle) {\n var sides = opt_sides ? opt_sides : 32;\n var stride = circle.getStride();\n var layout = circle.getLayout();\n var center = circle.getCenter();\n var arrayLength = stride * (sides + 1);\n var flatCoordinates = new Array(arrayLength);\n for (var i = 0; i < arrayLength; i += stride) {\n flatCoordinates[i] = 0;\n flatCoordinates[i + 1] = 0;\n for (var j = 2; j < stride; j++) {\n flatCoordinates[i + j] = center[j];\n }\n }\n var ends = [flatCoordinates.length];\n var polygon = new Polygon(flatCoordinates, layout, ends);\n makeRegular(polygon, center, circle.getRadius(), opt_angle);\n return polygon;\n}\n/**\n * Modify the coordinates of a polygon to make it a regular polygon.\n * @param {Polygon} polygon Polygon geometry.\n * @param {import(\"../coordinate.js\").Coordinate} center Center of the regular polygon.\n * @param {number} radius Radius of the regular polygon.\n * @param {number} [opt_angle] Start angle for the first vertex of the polygon in\n * counter-clockwise radians. 0 means East. Default is 0.\n */\nexport function makeRegular(polygon, center, radius, opt_angle) {\n var flatCoordinates = polygon.getFlatCoordinates();\n var stride = polygon.getStride();\n var sides = flatCoordinates.length / stride - 1;\n var startAngle = opt_angle ? opt_angle : 0;\n for (var i = 0; i <= sides; ++i) {\n var offset = i * stride;\n var angle = startAngle + (modulo(i, sides) * 2 * Math.PI) / sides;\n flatCoordinates[offset] = center[0] + radius * Math.cos(angle);\n flatCoordinates[offset + 1] = center[1] + radius * Math.sin(angle);\n }\n polygon.changed();\n}\n//# sourceMappingURL=Polygon.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/geom/MultiPolygon\n */\nimport GeometryLayout from './GeometryLayout.js';\nimport GeometryType from './GeometryType.js';\nimport MultiPoint from './MultiPoint.js';\nimport Polygon from './Polygon.js';\nimport SimpleGeometry from './SimpleGeometry.js';\nimport { assignClosestMultiArrayPoint, multiArrayMaxSquaredDelta, } from './flat/closest.js';\nimport { closestSquaredDistanceXY } from '../extent.js';\nimport { deflateMultiCoordinatesArray } from './flat/deflate.js';\nimport { extend } from '../array.js';\nimport { getInteriorPointsOfMultiArray } from './flat/interiorpoint.js';\nimport { inflateMultiCoordinatesArray } from './flat/inflate.js';\nimport { intersectsLinearRingMultiArray } from './flat/intersectsextent.js';\nimport { linearRingssAreOriented, orientLinearRingsArray, } from './flat/orient.js';\nimport { linearRingss as linearRingssArea } from './flat/area.js';\nimport { linearRingss as linearRingssCenter } from './flat/center.js';\nimport { linearRingssContainsXY } from './flat/contains.js';\nimport { quantizeMultiArray } from './flat/simplify.js';\n/**\n * @classdesc\n * Multi-polygon geometry.\n *\n * @api\n */\nvar MultiPolygon = /** @class */ (function (_super) {\n __extends(MultiPolygon, _super);\n /**\n * @param {Array>|Polygon>|Array} coordinates Coordinates.\n * For internal use, flat coordinates in combination with `opt_layout` and `opt_endss` are also accepted.\n * @param {import(\"./GeometryLayout.js\").default} [opt_layout] Layout.\n * @param {Array>} [opt_endss] Array of ends for internal use with flat coordinates.\n */\n function MultiPolygon(coordinates, opt_layout, opt_endss) {\n var _this = _super.call(this) || this;\n /**\n * @type {Array>}\n * @private\n */\n _this.endss_ = [];\n /**\n * @private\n * @type {number}\n */\n _this.flatInteriorPointsRevision_ = -1;\n /**\n * @private\n * @type {Array}\n */\n _this.flatInteriorPoints_ = null;\n /**\n * @private\n * @type {number}\n */\n _this.maxDelta_ = -1;\n /**\n * @private\n * @type {number}\n */\n _this.maxDeltaRevision_ = -1;\n /**\n * @private\n * @type {number}\n */\n _this.orientedRevision_ = -1;\n /**\n * @private\n * @type {Array}\n */\n _this.orientedFlatCoordinates_ = null;\n if (!opt_endss && !Array.isArray(coordinates[0])) {\n var layout = _this.getLayout();\n var polygons = /** @type {Array} */ (coordinates);\n var flatCoordinates = [];\n var endss = [];\n for (var i = 0, ii = polygons.length; i < ii; ++i) {\n var polygon = polygons[i];\n if (i === 0) {\n layout = polygon.getLayout();\n }\n var offset = flatCoordinates.length;\n var ends = polygon.getEnds();\n for (var j = 0, jj = ends.length; j < jj; ++j) {\n ends[j] += offset;\n }\n extend(flatCoordinates, polygon.getFlatCoordinates());\n endss.push(ends);\n }\n opt_layout = layout;\n coordinates = flatCoordinates;\n opt_endss = endss;\n }\n if (opt_layout !== undefined && opt_endss) {\n _this.setFlatCoordinates(opt_layout, \n /** @type {Array} */ (coordinates));\n _this.endss_ = opt_endss;\n }\n else {\n _this.setCoordinates(\n /** @type {Array>>} */ (coordinates), opt_layout);\n }\n return _this;\n }\n /**\n * Append the passed polygon to this multipolygon.\n * @param {Polygon} polygon Polygon.\n * @api\n */\n MultiPolygon.prototype.appendPolygon = function (polygon) {\n /** @type {Array} */\n var ends;\n if (!this.flatCoordinates) {\n this.flatCoordinates = polygon.getFlatCoordinates().slice();\n ends = polygon.getEnds().slice();\n this.endss_.push();\n }\n else {\n var offset = this.flatCoordinates.length;\n extend(this.flatCoordinates, polygon.getFlatCoordinates());\n ends = polygon.getEnds().slice();\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n ends[i] += offset;\n }\n }\n this.endss_.push(ends);\n this.changed();\n };\n /**\n * Make a complete copy of the geometry.\n * @return {!MultiPolygon} Clone.\n * @api\n */\n MultiPolygon.prototype.clone = function () {\n var len = this.endss_.length;\n var newEndss = new Array(len);\n for (var i = 0; i < len; ++i) {\n newEndss[i] = this.endss_[i].slice();\n }\n var multiPolygon = new MultiPolygon(this.flatCoordinates.slice(), this.layout, newEndss);\n multiPolygon.applyProperties(this);\n return multiPolygon;\n };\n /**\n * @param {number} x X.\n * @param {number} y Y.\n * @param {import(\"../coordinate.js\").Coordinate} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @return {number} Minimum squared distance.\n */\n MultiPolygon.prototype.closestPointXY = function (x, y, closestPoint, minSquaredDistance) {\n if (minSquaredDistance < closestSquaredDistanceXY(this.getExtent(), x, y)) {\n return minSquaredDistance;\n }\n if (this.maxDeltaRevision_ != this.getRevision()) {\n this.maxDelta_ = Math.sqrt(multiArrayMaxSquaredDelta(this.flatCoordinates, 0, this.endss_, this.stride, 0));\n this.maxDeltaRevision_ = this.getRevision();\n }\n return assignClosestMultiArrayPoint(this.getOrientedFlatCoordinates(), 0, this.endss_, this.stride, this.maxDelta_, true, x, y, closestPoint, minSquaredDistance);\n };\n /**\n * @param {number} x X.\n * @param {number} y Y.\n * @return {boolean} Contains (x, y).\n */\n MultiPolygon.prototype.containsXY = function (x, y) {\n return linearRingssContainsXY(this.getOrientedFlatCoordinates(), 0, this.endss_, this.stride, x, y);\n };\n /**\n * Return the area of the multipolygon on projected plane.\n * @return {number} Area (on projected plane).\n * @api\n */\n MultiPolygon.prototype.getArea = function () {\n return linearRingssArea(this.getOrientedFlatCoordinates(), 0, this.endss_, this.stride);\n };\n /**\n * Get the coordinate array for this geometry. This array has the structure\n * of a GeoJSON coordinate array for multi-polygons.\n *\n * @param {boolean} [opt_right] Orient coordinates according to the right-hand\n * rule (counter-clockwise for exterior and clockwise for interior rings).\n * If `false`, coordinates will be oriented according to the left-hand rule\n * (clockwise for exterior and counter-clockwise for interior rings).\n * By default, coordinate orientation will depend on how the geometry was\n * constructed.\n * @return {Array>>} Coordinates.\n * @api\n */\n MultiPolygon.prototype.getCoordinates = function (opt_right) {\n var flatCoordinates;\n if (opt_right !== undefined) {\n flatCoordinates = this.getOrientedFlatCoordinates().slice();\n orientLinearRingsArray(flatCoordinates, 0, this.endss_, this.stride, opt_right);\n }\n else {\n flatCoordinates = this.flatCoordinates;\n }\n return inflateMultiCoordinatesArray(flatCoordinates, 0, this.endss_, this.stride);\n };\n /**\n * @return {Array>} Endss.\n */\n MultiPolygon.prototype.getEndss = function () {\n return this.endss_;\n };\n /**\n * @return {Array} Flat interior points.\n */\n MultiPolygon.prototype.getFlatInteriorPoints = function () {\n if (this.flatInteriorPointsRevision_ != this.getRevision()) {\n var flatCenters = linearRingssCenter(this.flatCoordinates, 0, this.endss_, this.stride);\n this.flatInteriorPoints_ = getInteriorPointsOfMultiArray(this.getOrientedFlatCoordinates(), 0, this.endss_, this.stride, flatCenters);\n this.flatInteriorPointsRevision_ = this.getRevision();\n }\n return this.flatInteriorPoints_;\n };\n /**\n * Return the interior points as {@link module:ol/geom/MultiPoint multipoint}.\n * @return {MultiPoint} Interior points as XYM coordinates, where M is\n * the length of the horizontal intersection that the point belongs to.\n * @api\n */\n MultiPolygon.prototype.getInteriorPoints = function () {\n return new MultiPoint(this.getFlatInteriorPoints().slice(), GeometryLayout.XYM);\n };\n /**\n * @return {Array} Oriented flat coordinates.\n */\n MultiPolygon.prototype.getOrientedFlatCoordinates = function () {\n if (this.orientedRevision_ != this.getRevision()) {\n var flatCoordinates = this.flatCoordinates;\n if (linearRingssAreOriented(flatCoordinates, 0, this.endss_, this.stride)) {\n this.orientedFlatCoordinates_ = flatCoordinates;\n }\n else {\n this.orientedFlatCoordinates_ = flatCoordinates.slice();\n this.orientedFlatCoordinates_.length = orientLinearRingsArray(this.orientedFlatCoordinates_, 0, this.endss_, this.stride);\n }\n this.orientedRevision_ = this.getRevision();\n }\n return this.orientedFlatCoordinates_;\n };\n /**\n * @param {number} squaredTolerance Squared tolerance.\n * @return {MultiPolygon} Simplified MultiPolygon.\n * @protected\n */\n MultiPolygon.prototype.getSimplifiedGeometryInternal = function (squaredTolerance) {\n var simplifiedFlatCoordinates = [];\n var simplifiedEndss = [];\n simplifiedFlatCoordinates.length = quantizeMultiArray(this.flatCoordinates, 0, this.endss_, this.stride, Math.sqrt(squaredTolerance), simplifiedFlatCoordinates, 0, simplifiedEndss);\n return new MultiPolygon(simplifiedFlatCoordinates, GeometryLayout.XY, simplifiedEndss);\n };\n /**\n * Return the polygon at the specified index.\n * @param {number} index Index.\n * @return {Polygon} Polygon.\n * @api\n */\n MultiPolygon.prototype.getPolygon = function (index) {\n if (index < 0 || this.endss_.length <= index) {\n return null;\n }\n var offset;\n if (index === 0) {\n offset = 0;\n }\n else {\n var prevEnds = this.endss_[index - 1];\n offset = prevEnds[prevEnds.length - 1];\n }\n var ends = this.endss_[index].slice();\n var end = ends[ends.length - 1];\n if (offset !== 0) {\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n ends[i] -= offset;\n }\n }\n return new Polygon(this.flatCoordinates.slice(offset, end), this.layout, ends);\n };\n /**\n * Return the polygons of this multipolygon.\n * @return {Array} Polygons.\n * @api\n */\n MultiPolygon.prototype.getPolygons = function () {\n var layout = this.layout;\n var flatCoordinates = this.flatCoordinates;\n var endss = this.endss_;\n var polygons = [];\n var offset = 0;\n for (var i = 0, ii = endss.length; i < ii; ++i) {\n var ends = endss[i].slice();\n var end = ends[ends.length - 1];\n if (offset !== 0) {\n for (var j = 0, jj = ends.length; j < jj; ++j) {\n ends[j] -= offset;\n }\n }\n var polygon = new Polygon(flatCoordinates.slice(offset, end), layout, ends);\n polygons.push(polygon);\n offset = end;\n }\n return polygons;\n };\n /**\n * Get the type of this geometry.\n * @return {import(\"./GeometryType.js\").default} Geometry type.\n * @api\n */\n MultiPolygon.prototype.getType = function () {\n return GeometryType.MULTI_POLYGON;\n };\n /**\n * Test if the geometry and the passed extent intersect.\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @return {boolean} `true` if the geometry and the extent intersect.\n * @api\n */\n MultiPolygon.prototype.intersectsExtent = function (extent) {\n return intersectsLinearRingMultiArray(this.getOrientedFlatCoordinates(), 0, this.endss_, this.stride, extent);\n };\n /**\n * Set the coordinates of the multipolygon.\n * @param {!Array>>} coordinates Coordinates.\n * @param {import(\"./GeometryLayout.js\").default} [opt_layout] Layout.\n * @api\n */\n MultiPolygon.prototype.setCoordinates = function (coordinates, opt_layout) {\n this.setLayout(opt_layout, coordinates, 3);\n if (!this.flatCoordinates) {\n this.flatCoordinates = [];\n }\n var endss = deflateMultiCoordinatesArray(this.flatCoordinates, 0, coordinates, this.stride, this.endss_);\n if (endss.length === 0) {\n this.flatCoordinates.length = 0;\n }\n else {\n var lastEnds = endss[endss.length - 1];\n this.flatCoordinates.length =\n lastEnds.length === 0 ? 0 : lastEnds[lastEnds.length - 1];\n }\n this.changed();\n };\n return MultiPolygon;\n}(SimpleGeometry));\nexport default MultiPolygon;\n//# sourceMappingURL=MultiPolygon.js.map","/**\n * @module ol/geom/flat/center\n */\nimport { createEmpty, createOrUpdateFromFlatCoordinates } from '../../extent.js';\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @return {Array} Flat centers.\n */\nexport function linearRingss(flatCoordinates, offset, endss, stride) {\n var flatCenters = [];\n var extent = createEmpty();\n for (var i = 0, ii = endss.length; i < ii; ++i) {\n var ends = endss[i];\n extent = createOrUpdateFromFlatCoordinates(flatCoordinates, offset, ends[0], stride);\n flatCenters.push((extent[0] + extent[2]) / 2, (extent[1] + extent[3]) / 2);\n offset = ends[ends.length - 1];\n }\n return flatCenters;\n}\n//# sourceMappingURL=center.js.map","/**\n * @module ol/layer/TileProperty\n */\n/**\n * @enum {string}\n */\nexport default {\n PRELOAD: 'preload',\n USE_INTERIM_TILES_ON_ERROR: 'useInterimTilesOnError',\n};\n//# sourceMappingURL=TileProperty.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/layer/BaseTile\n */\nimport Layer from './Layer.js';\nimport TileProperty from './TileProperty.js';\nimport { assign } from '../obj.js';\n/***\n * @template Return\n * @typedef {import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature &\n * import(\"../Observable\").CombinedOnSignature} BaseTileLayerOnSignature\n */\n/**\n * @template {import(\"../source/Tile.js\").default} TileSourceType\n * @typedef {Object} Options\n * @property {string} [className='ol-layer'] A CSS class name to set to the layer element.\n * @property {number} [opacity=1] Opacity (0, 1).\n * @property {boolean} [visible=true] Visibility.\n * @property {import(\"../extent.js\").Extent} [extent] The bounding extent for layer rendering. The layer will not be\n * rendered outside of this extent.\n * @property {number} [zIndex] The z-index for layer rendering. At rendering time, the layers\n * will be ordered, first by Z-index and then by position. When `undefined`, a `zIndex` of 0 is assumed\n * for layers that are added to the map's `layers` collection, or `Infinity` when the layer's `setMap()`\n * method was used.\n * @property {number} [minResolution] The minimum resolution (inclusive) at which this layer will be\n * visible.\n * @property {number} [maxResolution] The maximum resolution (exclusive) below which this layer will\n * be visible.\n * @property {number} [minZoom] The minimum view zoom level (exclusive) above which this layer will be\n * visible.\n * @property {number} [maxZoom] The maximum view zoom level (inclusive) at which this layer will\n * be visible.\n * @property {number} [preload=0] Preload. Load low-resolution tiles up to `preload` levels. `0`\n * means no preloading.\n * @property {TileSourceType} [source] Source for this layer.\n * @property {import(\"../PluggableMap.js\").default} [map] Sets the layer as overlay on a map. The map will not manage\n * this layer in its layers collection, and the layer will be rendered on top. This is useful for\n * temporary layers. The standard way to add a layer to a map and have it managed by the map is to\n * use {@link import(\"../PluggableMap.js\").default#addLayer map.addLayer()}.\n * @property {boolean} [useInterimTilesOnError=true] Use interim tiles on error.\n * @property {Object} [properties] Arbitrary observable properties. Can be accessed with `#get()` and `#set()`.\n */\n/**\n * @classdesc\n * For layer sources that provide pre-rendered, tiled images in grids that are\n * organized by zoom levels for specific resolutions.\n * Note that any property set in the options is set as a {@link module:ol/Object~BaseObject}\n * property on the layer object; for example, setting `title: 'My Title'` in the\n * options means that `title` is observable, and has get/set accessors.\n *\n * @template {import(\"../source/Tile.js\").default} TileSourceType\n * @extends {Layer}\n * @api\n */\nvar BaseTileLayer = /** @class */ (function (_super) {\n __extends(BaseTileLayer, _super);\n /**\n * @param {Options} [opt_options] Tile layer options.\n */\n function BaseTileLayer(opt_options) {\n var _this = this;\n var options = opt_options ? opt_options : {};\n var baseOptions = assign({}, options);\n delete baseOptions.preload;\n delete baseOptions.useInterimTilesOnError;\n _this = _super.call(this, baseOptions) || this;\n /***\n * @type {BaseTileLayerOnSignature}\n */\n _this.on;\n /***\n * @type {BaseTileLayerOnSignature}\n */\n _this.once;\n /***\n * @type {BaseTileLayerOnSignature}\n */\n _this.un;\n _this.setPreload(options.preload !== undefined ? options.preload : 0);\n _this.setUseInterimTilesOnError(options.useInterimTilesOnError !== undefined\n ? options.useInterimTilesOnError\n : true);\n return _this;\n }\n /**\n * Return the level as number to which we will preload tiles up to.\n * @return {number} The level to preload tiles up to.\n * @observable\n * @api\n */\n BaseTileLayer.prototype.getPreload = function () {\n return /** @type {number} */ (this.get(TileProperty.PRELOAD));\n };\n /**\n * Set the level as number to which we will preload tiles up to.\n * @param {number} preload The level to preload tiles up to.\n * @observable\n * @api\n */\n BaseTileLayer.prototype.setPreload = function (preload) {\n this.set(TileProperty.PRELOAD, preload);\n };\n /**\n * Whether we use interim tiles on error.\n * @return {boolean} Use interim tiles on error.\n * @observable\n * @api\n */\n BaseTileLayer.prototype.getUseInterimTilesOnError = function () {\n return /** @type {boolean} */ (this.get(TileProperty.USE_INTERIM_TILES_ON_ERROR));\n };\n /**\n * Set whether we use interim tiles on error.\n * @param {boolean} useInterimTilesOnError Use interim tiles on error.\n * @observable\n * @api\n */\n BaseTileLayer.prototype.setUseInterimTilesOnError = function (useInterimTilesOnError) {\n this.set(TileProperty.USE_INTERIM_TILES_ON_ERROR, useInterimTilesOnError);\n };\n return BaseTileLayer;\n}(Layer));\nexport default BaseTileLayer;\n//# sourceMappingURL=BaseTile.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/renderer/Layer\n */\nimport EventType from '../events/EventType.js';\nimport ImageState from '../ImageState.js';\nimport Observable from '../Observable.js';\nimport SourceState from '../source/State.js';\nimport { abstract } from '../util.js';\n/**\n * @template {import(\"../layer/Layer.js\").default} LayerType\n */\nvar LayerRenderer = /** @class */ (function (_super) {\n __extends(LayerRenderer, _super);\n /**\n * @param {LayerType} layer Layer.\n */\n function LayerRenderer(layer) {\n var _this = _super.call(this) || this;\n /** @private */\n _this.boundHandleImageChange_ = _this.handleImageChange_.bind(_this);\n /**\n * @protected\n * @type {LayerType}\n */\n _this.layer_ = layer;\n /**\n * @type {import(\"../render/canvas/ExecutorGroup\").default}\n */\n _this.declutterExecutorGroup = null;\n return _this;\n }\n /**\n * Asynchronous layer level hit detection.\n * @param {import(\"../pixel.js\").Pixel} pixel Pixel.\n * @return {Promise>} Promise that resolves with\n * an array of features.\n */\n LayerRenderer.prototype.getFeatures = function (pixel) {\n return abstract();\n };\n /**\n * Determine whether render should be called.\n * @abstract\n * @param {import(\"../PluggableMap.js\").FrameState} frameState Frame state.\n * @return {boolean} Layer is ready to be rendered.\n */\n LayerRenderer.prototype.prepareFrame = function (frameState) {\n return abstract();\n };\n /**\n * Render the layer.\n * @abstract\n * @param {import(\"../PluggableMap.js\").FrameState} frameState Frame state.\n * @param {HTMLElement} target Target that may be used to render content to.\n * @return {HTMLElement} The rendered element.\n */\n LayerRenderer.prototype.renderFrame = function (frameState, target) {\n return abstract();\n };\n /**\n * @param {Object>} tiles Lookup of loaded tiles by zoom level.\n * @param {number} zoom Zoom level.\n * @param {import(\"../Tile.js\").default} tile Tile.\n * @return {boolean|void} If `false`, the tile will not be considered loaded.\n */\n LayerRenderer.prototype.loadedTileCallback = function (tiles, zoom, tile) {\n if (!tiles[zoom]) {\n tiles[zoom] = {};\n }\n tiles[zoom][tile.tileCoord.toString()] = tile;\n return undefined;\n };\n /**\n * Create a function that adds loaded tiles to the tile lookup.\n * @param {import(\"../source/Tile.js\").default} source Tile source.\n * @param {import(\"../proj/Projection.js\").default} projection Projection of the tiles.\n * @param {Object>} tiles Lookup of loaded tiles by zoom level.\n * @return {function(number, import(\"../TileRange.js\").default):boolean} A function that can be\n * called with a zoom level and a tile range to add loaded tiles to the lookup.\n * @protected\n */\n LayerRenderer.prototype.createLoadedTileFinder = function (source, projection, tiles) {\n return (\n /**\n * @param {number} zoom Zoom level.\n * @param {import(\"../TileRange.js\").default} tileRange Tile range.\n * @return {boolean} The tile range is fully loaded.\n * @this {LayerRenderer}\n */\n function (zoom, tileRange) {\n var callback = this.loadedTileCallback.bind(this, tiles, zoom);\n return source.forEachLoadedTile(projection, zoom, tileRange, callback);\n }.bind(this));\n };\n /**\n * @abstract\n * @param {import(\"../coordinate.js\").Coordinate} coordinate Coordinate.\n * @param {import(\"../PluggableMap.js\").FrameState} frameState Frame state.\n * @param {number} hitTolerance Hit tolerance in pixels.\n * @param {import(\"./vector.js\").FeatureCallback} callback Feature callback.\n * @param {Array>} matches The hit detected matches with tolerance.\n * @return {T|undefined} Callback result.\n * @template T\n */\n LayerRenderer.prototype.forEachFeatureAtCoordinate = function (coordinate, frameState, hitTolerance, callback, matches) {\n return undefined;\n };\n /**\n * @abstract\n * @param {import(\"../pixel.js\").Pixel} pixel Pixel.\n * @param {import(\"../PluggableMap.js\").FrameState} frameState FrameState.\n * @param {number} hitTolerance Hit tolerance in pixels.\n * @return {Uint8ClampedArray|Uint8Array} The result. If there is no data at the pixel\n * location, null will be returned. If there is data, but pixel values cannot be\n * returned, and empty array will be returned.\n */\n LayerRenderer.prototype.getDataAtPixel = function (pixel, frameState, hitTolerance) {\n return null;\n };\n /**\n * @return {LayerType} Layer.\n */\n LayerRenderer.prototype.getLayer = function () {\n return this.layer_;\n };\n /**\n * Perform action necessary to get the layer rendered after new fonts have loaded\n * @abstract\n */\n LayerRenderer.prototype.handleFontsChanged = function () { };\n /**\n * Handle changes in image state.\n * @param {import(\"../events/Event.js\").default} event Image change event.\n * @private\n */\n LayerRenderer.prototype.handleImageChange_ = function (event) {\n var image = /** @type {import(\"../Image.js\").default} */ (event.target);\n if (image.getState() === ImageState.LOADED) {\n this.renderIfReadyAndVisible();\n }\n };\n /**\n * Load the image if not already loaded, and register the image change\n * listener if needed.\n * @param {import(\"../ImageBase.js\").default} image Image.\n * @return {boolean} `true` if the image is already loaded, `false` otherwise.\n * @protected\n */\n LayerRenderer.prototype.loadImage = function (image) {\n var imageState = image.getState();\n if (imageState != ImageState.LOADED && imageState != ImageState.ERROR) {\n image.addEventListener(EventType.CHANGE, this.boundHandleImageChange_);\n }\n if (imageState == ImageState.IDLE) {\n image.load();\n imageState = image.getState();\n }\n return imageState == ImageState.LOADED;\n };\n /**\n * @protected\n */\n LayerRenderer.prototype.renderIfReadyAndVisible = function () {\n var layer = this.getLayer();\n if (layer.getVisible() && layer.getSourceState() == SourceState.READY) {\n layer.changed();\n }\n };\n return LayerRenderer;\n}(Observable));\nexport default LayerRenderer;\n//# sourceMappingURL=Layer.js.map","/**\n * @module ol/ImageState\n */\n/**\n * @enum {number}\n */\nexport default {\n IDLE: 0,\n LOADING: 1,\n LOADED: 2,\n ERROR: 3,\n EMPTY: 4,\n};\n//# sourceMappingURL=ImageState.js.map","/**\n * @module ol/render/Event\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport Event from '../events/Event.js';\nvar RenderEvent = /** @class */ (function (_super) {\n __extends(RenderEvent, _super);\n /**\n * @param {import(\"./EventType.js\").default} type Type.\n * @param {import(\"../transform.js\").Transform} [opt_inversePixelTransform] Transform for\n * CSS pixels to rendered pixels.\n * @param {import(\"../PluggableMap.js\").FrameState} [opt_frameState] Frame state.\n * @param {?CanvasRenderingContext2D} [opt_context] Context.\n */\n function RenderEvent(type, opt_inversePixelTransform, opt_frameState, opt_context) {\n var _this = _super.call(this, type) || this;\n /**\n * Transform from CSS pixels (relative to the top-left corner of the map viewport)\n * to rendered pixels on this event's `context`. Only available when a Canvas renderer is used, null otherwise.\n * @type {import(\"../transform.js\").Transform|undefined}\n * @api\n */\n _this.inversePixelTransform = opt_inversePixelTransform;\n /**\n * An object representing the current render frame state.\n * @type {import(\"../PluggableMap.js\").FrameState|undefined}\n * @api\n */\n _this.frameState = opt_frameState;\n /**\n * Canvas context. Not available when the event is dispatched by the map. Only available\n * when a Canvas renderer is used, null otherwise.\n * @type {CanvasRenderingContext2D|null|undefined}\n * @api\n */\n _this.context = opt_context;\n return _this;\n }\n return RenderEvent;\n}(Event));\nexport default RenderEvent;\n//# sourceMappingURL=Event.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/renderer/canvas/Layer\n */\nimport LayerRenderer from '../Layer.js';\nimport RenderEvent from '../../render/Event.js';\nimport RenderEventType from '../../render/EventType.js';\nimport { apply as applyTransform, compose as composeTransform, create as createTransform, } from '../../transform.js';\nimport { containsCoordinate, getBottomLeft, getBottomRight, getTopLeft, getTopRight, } from '../../extent.js';\nimport { createCanvasContext2D } from '../../dom.js';\nimport { cssOpacity } from '../../css.js';\n/**\n * @abstract\n * @template {import(\"../../layer/Layer.js\").default} LayerType\n * @extends {LayerRenderer}\n */\nvar CanvasLayerRenderer = /** @class */ (function (_super) {\n __extends(CanvasLayerRenderer, _super);\n /**\n * @param {LayerType} layer Layer.\n */\n function CanvasLayerRenderer(layer) {\n var _this = _super.call(this, layer) || this;\n /**\n * @protected\n * @type {HTMLElement}\n */\n _this.container = null;\n /**\n * @protected\n * @type {number}\n */\n _this.renderedResolution;\n /**\n * A temporary transform. The values in this transform should only be used in a\n * function that sets the values.\n * @protected\n * @type {import(\"../../transform.js\").Transform}\n */\n _this.tempTransform = createTransform();\n /**\n * The transform for rendered pixels to viewport CSS pixels. This transform must\n * be set when rendering a frame and may be used by other functions after rendering.\n * @protected\n * @type {import(\"../../transform.js\").Transform}\n */\n _this.pixelTransform = createTransform();\n /**\n * The transform for viewport CSS pixels to rendered pixels. This transform must\n * be set when rendering a frame and may be used by other functions after rendering.\n * @protected\n * @type {import(\"../../transform.js\").Transform}\n */\n _this.inversePixelTransform = createTransform();\n /**\n * @type {CanvasRenderingContext2D}\n */\n _this.context = null;\n /**\n * @type {boolean}\n */\n _this.containerReused = false;\n return _this;\n }\n /**\n * Get a rendering container from an existing target, if compatible.\n * @param {HTMLElement} target Potential render target.\n * @param {string} transform CSS Transform.\n * @param {number} opacity Opacity.\n */\n CanvasLayerRenderer.prototype.useContainer = function (target, transform, opacity) {\n var layerClassName = this.getLayer().getClassName();\n var container, context;\n if (target &&\n target.style.opacity === cssOpacity(opacity) &&\n target.className === layerClassName) {\n var canvas = target.firstElementChild;\n if (canvas instanceof HTMLCanvasElement) {\n context = canvas.getContext('2d');\n }\n }\n if (context && context.canvas.style.transform === transform) {\n // Container of the previous layer renderer can be used.\n this.container = target;\n this.context = context;\n this.containerReused = true;\n }\n else if (this.containerReused) {\n // Previously reused container cannot be used any more.\n this.container = null;\n this.context = null;\n this.containerReused = false;\n }\n if (!this.container) {\n container = document.createElement('div');\n container.className = layerClassName;\n var style = container.style;\n style.position = 'absolute';\n style.width = '100%';\n style.height = '100%';\n context = createCanvasContext2D();\n var canvas = context.canvas;\n container.appendChild(canvas);\n style = canvas.style;\n style.position = 'absolute';\n style.left = '0';\n style.transformOrigin = 'top left';\n this.container = container;\n this.context = context;\n }\n };\n /**\n * @param {CanvasRenderingContext2D} context Context.\n * @param {import(\"../../PluggableMap.js\").FrameState} frameState Frame state.\n * @param {import(\"../../extent.js\").Extent} extent Clip extent.\n * @protected\n */\n CanvasLayerRenderer.prototype.clipUnrotated = function (context, frameState, extent) {\n var topLeft = getTopLeft(extent);\n var topRight = getTopRight(extent);\n var bottomRight = getBottomRight(extent);\n var bottomLeft = getBottomLeft(extent);\n applyTransform(frameState.coordinateToPixelTransform, topLeft);\n applyTransform(frameState.coordinateToPixelTransform, topRight);\n applyTransform(frameState.coordinateToPixelTransform, bottomRight);\n applyTransform(frameState.coordinateToPixelTransform, bottomLeft);\n var inverted = this.inversePixelTransform;\n applyTransform(inverted, topLeft);\n applyTransform(inverted, topRight);\n applyTransform(inverted, bottomRight);\n applyTransform(inverted, bottomLeft);\n context.save();\n context.beginPath();\n context.moveTo(Math.round(topLeft[0]), Math.round(topLeft[1]));\n context.lineTo(Math.round(topRight[0]), Math.round(topRight[1]));\n context.lineTo(Math.round(bottomRight[0]), Math.round(bottomRight[1]));\n context.lineTo(Math.round(bottomLeft[0]), Math.round(bottomLeft[1]));\n context.clip();\n };\n /**\n * @param {import(\"../../render/EventType.js\").default} type Event type.\n * @param {CanvasRenderingContext2D} context Context.\n * @param {import(\"../../PluggableMap.js\").FrameState} frameState Frame state.\n * @private\n */\n CanvasLayerRenderer.prototype.dispatchRenderEvent_ = function (type, context, frameState) {\n var layer = this.getLayer();\n if (layer.hasListener(type)) {\n var event_1 = new RenderEvent(type, this.inversePixelTransform, frameState, context);\n layer.dispatchEvent(event_1);\n }\n };\n /**\n * @param {CanvasRenderingContext2D} context Context.\n * @param {import(\"../../PluggableMap.js\").FrameState} frameState Frame state.\n * @protected\n */\n CanvasLayerRenderer.prototype.preRender = function (context, frameState) {\n this.dispatchRenderEvent_(RenderEventType.PRERENDER, context, frameState);\n };\n /**\n * @param {CanvasRenderingContext2D} context Context.\n * @param {import(\"../../PluggableMap.js\").FrameState} frameState Frame state.\n * @protected\n */\n CanvasLayerRenderer.prototype.postRender = function (context, frameState) {\n this.dispatchRenderEvent_(RenderEventType.POSTRENDER, context, frameState);\n };\n /**\n * Creates a transform for rendering to an element that will be rotated after rendering.\n * @param {import(\"../../coordinate.js\").Coordinate} center Center.\n * @param {number} resolution Resolution.\n * @param {number} rotation Rotation.\n * @param {number} pixelRatio Pixel ratio.\n * @param {number} width Width of the rendered element (in pixels).\n * @param {number} height Height of the rendered element (in pixels).\n * @param {number} offsetX Offset on the x-axis in view coordinates.\n * @protected\n * @return {!import(\"../../transform.js\").Transform} Transform.\n */\n CanvasLayerRenderer.prototype.getRenderTransform = function (center, resolution, rotation, pixelRatio, width, height, offsetX) {\n var dx1 = width / 2;\n var dy1 = height / 2;\n var sx = pixelRatio / resolution;\n var sy = -sx;\n var dx2 = -center[0] + offsetX;\n var dy2 = -center[1];\n return composeTransform(this.tempTransform, dx1, dy1, sx, sy, -rotation, dx2, dy2);\n };\n /**\n * @param {import(\"../../pixel.js\").Pixel} pixel Pixel.\n * @param {import(\"../../PluggableMap.js\").FrameState} frameState FrameState.\n * @param {number} hitTolerance Hit tolerance in pixels.\n * @return {Uint8ClampedArray|Uint8Array} The result. If there is no data at the pixel\n * location, null will be returned. If there is data, but pixel values cannot be\n * returned, and empty array will be returned.\n */\n CanvasLayerRenderer.prototype.getDataAtPixel = function (pixel, frameState, hitTolerance) {\n var renderPixel = applyTransform(this.inversePixelTransform, pixel.slice());\n var context = this.context;\n var layer = this.getLayer();\n var layerExtent = layer.getExtent();\n if (layerExtent) {\n var renderCoordinate = applyTransform(frameState.pixelToCoordinateTransform, pixel.slice());\n /** get only data inside of the layer extent */\n if (!containsCoordinate(layerExtent, renderCoordinate)) {\n return null;\n }\n }\n var data;\n try {\n var x = Math.round(renderPixel[0]);\n var y = Math.round(renderPixel[1]);\n var newCanvas = document.createElement('canvas');\n var newContext = newCanvas.getContext('2d');\n newCanvas.width = 1;\n newCanvas.height = 1;\n newContext.clearRect(0, 0, 1, 1);\n newContext.drawImage(context.canvas, x, y, 1, 1, 0, 0, 1, 1);\n data = newContext.getImageData(0, 0, 1, 1).data;\n }\n catch (err) {\n if (err.name === 'SecurityError') {\n // tainted canvas, we assume there is data at the given pixel (although there might not be)\n return new Uint8Array();\n }\n return data;\n }\n if (data[3] === 0) {\n return null;\n }\n return data;\n };\n return CanvasLayerRenderer;\n}(LayerRenderer));\nexport default CanvasLayerRenderer;\n//# sourceMappingURL=Layer.js.map","/**\n * @module ol/TileRange\n */\n/**\n * A representation of a contiguous block of tiles. A tile range is specified\n * by its min/max tile coordinates and is inclusive of coordinates.\n */\nvar TileRange = /** @class */ (function () {\n /**\n * @param {number} minX Minimum X.\n * @param {number} maxX Maximum X.\n * @param {number} minY Minimum Y.\n * @param {number} maxY Maximum Y.\n */\n function TileRange(minX, maxX, minY, maxY) {\n /**\n * @type {number}\n */\n this.minX = minX;\n /**\n * @type {number}\n */\n this.maxX = maxX;\n /**\n * @type {number}\n */\n this.minY = minY;\n /**\n * @type {number}\n */\n this.maxY = maxY;\n }\n /**\n * @param {import(\"./tilecoord.js\").TileCoord} tileCoord Tile coordinate.\n * @return {boolean} Contains tile coordinate.\n */\n TileRange.prototype.contains = function (tileCoord) {\n return this.containsXY(tileCoord[1], tileCoord[2]);\n };\n /**\n * @param {TileRange} tileRange Tile range.\n * @return {boolean} Contains.\n */\n TileRange.prototype.containsTileRange = function (tileRange) {\n return (this.minX <= tileRange.minX &&\n tileRange.maxX <= this.maxX &&\n this.minY <= tileRange.minY &&\n tileRange.maxY <= this.maxY);\n };\n /**\n * @param {number} x Tile coordinate x.\n * @param {number} y Tile coordinate y.\n * @return {boolean} Contains coordinate.\n */\n TileRange.prototype.containsXY = function (x, y) {\n return this.minX <= x && x <= this.maxX && this.minY <= y && y <= this.maxY;\n };\n /**\n * @param {TileRange} tileRange Tile range.\n * @return {boolean} Equals.\n */\n TileRange.prototype.equals = function (tileRange) {\n return (this.minX == tileRange.minX &&\n this.minY == tileRange.minY &&\n this.maxX == tileRange.maxX &&\n this.maxY == tileRange.maxY);\n };\n /**\n * @param {TileRange} tileRange Tile range.\n */\n TileRange.prototype.extend = function (tileRange) {\n if (tileRange.minX < this.minX) {\n this.minX = tileRange.minX;\n }\n if (tileRange.maxX > this.maxX) {\n this.maxX = tileRange.maxX;\n }\n if (tileRange.minY < this.minY) {\n this.minY = tileRange.minY;\n }\n if (tileRange.maxY > this.maxY) {\n this.maxY = tileRange.maxY;\n }\n };\n /**\n * @return {number} Height.\n */\n TileRange.prototype.getHeight = function () {\n return this.maxY - this.minY + 1;\n };\n /**\n * @return {import(\"./size.js\").Size} Size.\n */\n TileRange.prototype.getSize = function () {\n return [this.getWidth(), this.getHeight()];\n };\n /**\n * @return {number} Width.\n */\n TileRange.prototype.getWidth = function () {\n return this.maxX - this.minX + 1;\n };\n /**\n * @param {TileRange} tileRange Tile range.\n * @return {boolean} Intersects.\n */\n TileRange.prototype.intersects = function (tileRange) {\n return (this.minX <= tileRange.maxX &&\n this.maxX >= tileRange.minX &&\n this.minY <= tileRange.maxY &&\n this.maxY >= tileRange.minY);\n };\n return TileRange;\n}());\n/**\n * @param {number} minX Minimum X.\n * @param {number} maxX Maximum X.\n * @param {number} minY Minimum Y.\n * @param {number} maxY Maximum Y.\n * @param {TileRange} [tileRange] TileRange.\n * @return {TileRange} Tile range.\n */\nexport function createOrUpdate(minX, maxX, minY, maxY, tileRange) {\n if (tileRange !== undefined) {\n tileRange.minX = minX;\n tileRange.maxX = maxX;\n tileRange.minY = minY;\n tileRange.maxY = maxY;\n return tileRange;\n }\n else {\n return new TileRange(minX, maxX, minY, maxY);\n }\n}\nexport default TileRange;\n//# sourceMappingURL=TileRange.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/renderer/canvas/TileLayer\n */\nimport CanvasLayerRenderer from './Layer.js';\nimport TileRange from '../../TileRange.js';\nimport TileState from '../../TileState.js';\nimport { apply as applyTransform, compose as composeTransform, makeInverse, } from '../../transform.js';\nimport { assign } from '../../obj.js';\nimport { createEmpty, equals, getIntersection, getTopLeft, } from '../../extent.js';\nimport { cssOpacity } from '../../css.js';\nimport { fromUserExtent } from '../../proj.js';\nimport { getUid } from '../../util.js';\nimport { numberSafeCompareFunction } from '../../array.js';\nimport { toString as toTransformString } from '../../transform.js';\n/**\n * @classdesc\n * Canvas renderer for tile layers.\n * @api\n */\nvar CanvasTileLayerRenderer = /** @class */ (function (_super) {\n __extends(CanvasTileLayerRenderer, _super);\n /**\n * @param {import(\"../../layer/Tile.js\").default|import(\"../../layer/VectorTile.js\").default} tileLayer Tile layer.\n */\n function CanvasTileLayerRenderer(tileLayer) {\n var _this = _super.call(this, tileLayer) || this;\n /**\n * Rendered extent has changed since the previous `renderFrame()` call\n * @type {boolean}\n */\n _this.extentChanged = true;\n /**\n * @private\n * @type {?import(\"../../extent.js\").Extent}\n */\n _this.renderedExtent_ = null;\n /**\n * @protected\n * @type {number}\n */\n _this.renderedPixelRatio;\n /**\n * @protected\n * @type {import(\"../../proj/Projection.js\").default}\n */\n _this.renderedProjection = null;\n /**\n * @protected\n * @type {number}\n */\n _this.renderedRevision;\n /**\n * @protected\n * @type {!Array}\n */\n _this.renderedTiles = [];\n /**\n * @private\n * @type {boolean}\n */\n _this.newTiles_ = false;\n /**\n * @protected\n * @type {import(\"../../extent.js\").Extent}\n */\n _this.tmpExtent = createEmpty();\n /**\n * @private\n * @type {import(\"../../TileRange.js\").default}\n */\n _this.tmpTileRange_ = new TileRange(0, 0, 0, 0);\n return _this;\n }\n /**\n * @protected\n * @param {import(\"../../Tile.js\").default} tile Tile.\n * @return {boolean} Tile is drawable.\n */\n CanvasTileLayerRenderer.prototype.isDrawableTile = function (tile) {\n var tileLayer = this.getLayer();\n var tileState = tile.getState();\n var useInterimTilesOnError = tileLayer.getUseInterimTilesOnError();\n return (tileState == TileState.LOADED ||\n tileState == TileState.EMPTY ||\n (tileState == TileState.ERROR && !useInterimTilesOnError));\n };\n /**\n * @param {number} z Tile coordinate z.\n * @param {number} x Tile coordinate x.\n * @param {number} y Tile coordinate y.\n * @param {import(\"../../PluggableMap.js\").FrameState} frameState Frame state.\n * @return {!import(\"../../Tile.js\").default} Tile.\n */\n CanvasTileLayerRenderer.prototype.getTile = function (z, x, y, frameState) {\n var pixelRatio = frameState.pixelRatio;\n var projection = frameState.viewState.projection;\n var tileLayer = this.getLayer();\n var tileSource = tileLayer.getSource();\n var tile = tileSource.getTile(z, x, y, pixelRatio, projection);\n if (tile.getState() == TileState.ERROR) {\n if (!tileLayer.getUseInterimTilesOnError()) {\n // When useInterimTilesOnError is false, we consider the error tile as loaded.\n tile.setState(TileState.LOADED);\n }\n else if (tileLayer.getPreload() > 0) {\n // Preloaded tiles for lower resolutions might have finished loading.\n this.newTiles_ = true;\n }\n }\n if (!this.isDrawableTile(tile)) {\n tile = tile.getInterimTile();\n }\n return tile;\n };\n /**\n * @param {Object>} tiles Lookup of loaded tiles by zoom level.\n * @param {number} zoom Zoom level.\n * @param {import(\"../../Tile.js\").default} tile Tile.\n * @return {boolean|void} If `false`, the tile will not be considered loaded.\n */\n CanvasTileLayerRenderer.prototype.loadedTileCallback = function (tiles, zoom, tile) {\n if (this.isDrawableTile(tile)) {\n return _super.prototype.loadedTileCallback.call(this, tiles, zoom, tile);\n }\n return false;\n };\n /**\n * Determine whether render should be called.\n * @param {import(\"../../PluggableMap.js\").FrameState} frameState Frame state.\n * @return {boolean} Layer is ready to be rendered.\n */\n CanvasTileLayerRenderer.prototype.prepareFrame = function (frameState) {\n return !!this.getLayer().getSource();\n };\n /**\n * Render the layer.\n * @param {import(\"../../PluggableMap.js\").FrameState} frameState Frame state.\n * @param {HTMLElement} target Target that may be used to render content to.\n * @return {HTMLElement} The rendered element.\n */\n CanvasTileLayerRenderer.prototype.renderFrame = function (frameState, target) {\n var layerState = frameState.layerStatesArray[frameState.layerIndex];\n var viewState = frameState.viewState;\n var projection = viewState.projection;\n var viewResolution = viewState.resolution;\n var viewCenter = viewState.center;\n var rotation = viewState.rotation;\n var pixelRatio = frameState.pixelRatio;\n var tileLayer = this.getLayer();\n var tileSource = tileLayer.getSource();\n var sourceRevision = tileSource.getRevision();\n var tileGrid = tileSource.getTileGridForProjection(projection);\n var z = tileGrid.getZForResolution(viewResolution, tileSource.zDirection);\n var tileResolution = tileGrid.getResolution(z);\n var extent = frameState.extent;\n var layerExtent = layerState.extent && fromUserExtent(layerState.extent, projection);\n if (layerExtent) {\n extent = getIntersection(extent, fromUserExtent(layerState.extent, projection));\n }\n var tilePixelRatio = tileSource.getTilePixelRatio(pixelRatio);\n // desired dimensions of the canvas in pixels\n var width = Math.round(frameState.size[0] * tilePixelRatio);\n var height = Math.round(frameState.size[1] * tilePixelRatio);\n if (rotation) {\n var size = Math.round(Math.sqrt(width * width + height * height));\n width = size;\n height = size;\n }\n var dx = (tileResolution * width) / 2 / tilePixelRatio;\n var dy = (tileResolution * height) / 2 / tilePixelRatio;\n var canvasExtent = [\n viewCenter[0] - dx,\n viewCenter[1] - dy,\n viewCenter[0] + dx,\n viewCenter[1] + dy,\n ];\n var tileRange = tileGrid.getTileRangeForExtentAndZ(extent, z);\n /**\n * @type {Object>}\n */\n var tilesToDrawByZ = {};\n tilesToDrawByZ[z] = {};\n var findLoadedTiles = this.createLoadedTileFinder(tileSource, projection, tilesToDrawByZ);\n var tmpExtent = this.tmpExtent;\n var tmpTileRange = this.tmpTileRange_;\n this.newTiles_ = false;\n for (var x = tileRange.minX; x <= tileRange.maxX; ++x) {\n for (var y = tileRange.minY; y <= tileRange.maxY; ++y) {\n var tile = this.getTile(z, x, y, frameState);\n if (this.isDrawableTile(tile)) {\n var uid = getUid(this);\n if (tile.getState() == TileState.LOADED) {\n tilesToDrawByZ[z][tile.tileCoord.toString()] = tile;\n var inTransition = tile.inTransition(uid);\n if (!this.newTiles_ &&\n (inTransition || this.renderedTiles.indexOf(tile) === -1)) {\n this.newTiles_ = true;\n }\n }\n if (tile.getAlpha(uid, frameState.time) === 1) {\n // don't look for alt tiles if alpha is 1\n continue;\n }\n }\n var childTileRange = tileGrid.getTileCoordChildTileRange(tile.tileCoord, tmpTileRange, tmpExtent);\n var covered = false;\n if (childTileRange) {\n covered = findLoadedTiles(z + 1, childTileRange);\n }\n if (!covered) {\n tileGrid.forEachTileCoordParentTileRange(tile.tileCoord, findLoadedTiles, tmpTileRange, tmpExtent);\n }\n }\n }\n var canvasScale = tileResolution / viewResolution;\n // set forward and inverse pixel transforms\n composeTransform(this.pixelTransform, frameState.size[0] / 2, frameState.size[1] / 2, 1 / tilePixelRatio, 1 / tilePixelRatio, rotation, -width / 2, -height / 2);\n var canvasTransform = toTransformString(this.pixelTransform);\n this.useContainer(target, canvasTransform, layerState.opacity);\n var context = this.context;\n var canvas = context.canvas;\n makeInverse(this.inversePixelTransform, this.pixelTransform);\n // set scale transform for calculating tile positions on the canvas\n composeTransform(this.tempTransform, width / 2, height / 2, canvasScale, canvasScale, 0, -width / 2, -height / 2);\n if (canvas.width != width || canvas.height != height) {\n canvas.width = width;\n canvas.height = height;\n }\n else if (!this.containerReused) {\n context.clearRect(0, 0, width, height);\n }\n if (layerExtent) {\n this.clipUnrotated(context, frameState, layerExtent);\n }\n assign(context, tileSource.getContextOptions());\n this.preRender(context, frameState);\n this.renderedTiles.length = 0;\n /** @type {Array} */\n var zs = Object.keys(tilesToDrawByZ).map(Number);\n zs.sort(numberSafeCompareFunction);\n var clips, clipZs, currentClip;\n if (layerState.opacity === 1 &&\n (!this.containerReused ||\n tileSource.getOpaque(frameState.viewState.projection))) {\n zs = zs.reverse();\n }\n else {\n clips = [];\n clipZs = [];\n }\n for (var i = zs.length - 1; i >= 0; --i) {\n var currentZ = zs[i];\n var currentTilePixelSize = tileSource.getTilePixelSize(currentZ, pixelRatio, projection);\n var currentResolution = tileGrid.getResolution(currentZ);\n var currentScale = currentResolution / tileResolution;\n var dx_1 = currentTilePixelSize[0] * currentScale * canvasScale;\n var dy_1 = currentTilePixelSize[1] * currentScale * canvasScale;\n var originTileCoord = tileGrid.getTileCoordForCoordAndZ(getTopLeft(canvasExtent), currentZ);\n var originTileExtent = tileGrid.getTileCoordExtent(originTileCoord);\n var origin_1 = applyTransform(this.tempTransform, [\n (tilePixelRatio * (originTileExtent[0] - canvasExtent[0])) /\n tileResolution,\n (tilePixelRatio * (canvasExtent[3] - originTileExtent[3])) /\n tileResolution,\n ]);\n var tileGutter = tilePixelRatio * tileSource.getGutterForProjection(projection);\n var tilesToDraw = tilesToDrawByZ[currentZ];\n for (var tileCoordKey in tilesToDraw) {\n var tile = /** @type {import(\"../../ImageTile.js\").default} */ (tilesToDraw[tileCoordKey]);\n var tileCoord = tile.tileCoord;\n // Calculate integer positions and sizes so that tiles align\n var xIndex = originTileCoord[1] - tileCoord[1];\n var nextX = Math.round(origin_1[0] - (xIndex - 1) * dx_1);\n var yIndex = originTileCoord[2] - tileCoord[2];\n var nextY = Math.round(origin_1[1] - (yIndex - 1) * dy_1);\n var x = Math.round(origin_1[0] - xIndex * dx_1);\n var y = Math.round(origin_1[1] - yIndex * dy_1);\n var w = nextX - x;\n var h = nextY - y;\n var transition = z === currentZ;\n var inTransition = transition && tile.getAlpha(getUid(this), frameState.time) !== 1;\n if (!inTransition) {\n if (clips) {\n // Clip mask for regions in this tile that already filled by a higher z tile\n context.save();\n currentClip = [x, y, x + w, y, x + w, y + h, x, y + h];\n for (var i_1 = 0, ii = clips.length; i_1 < ii; ++i_1) {\n if (z !== currentZ && currentZ < clipZs[i_1]) {\n var clip = clips[i_1];\n context.beginPath();\n // counter-clockwise (outer ring) for current tile\n context.moveTo(currentClip[0], currentClip[1]);\n context.lineTo(currentClip[2], currentClip[3]);\n context.lineTo(currentClip[4], currentClip[5]);\n context.lineTo(currentClip[6], currentClip[7]);\n // clockwise (inner ring) for higher z tile\n context.moveTo(clip[6], clip[7]);\n context.lineTo(clip[4], clip[5]);\n context.lineTo(clip[2], clip[3]);\n context.lineTo(clip[0], clip[1]);\n context.clip();\n }\n }\n clips.push(currentClip);\n clipZs.push(currentZ);\n }\n else {\n context.clearRect(x, y, w, h);\n }\n }\n this.drawTileImage(tile, frameState, x, y, w, h, tileGutter, transition);\n if (clips && !inTransition) {\n context.restore();\n this.renderedTiles.unshift(tile);\n }\n else {\n this.renderedTiles.push(tile);\n }\n this.updateUsedTiles(frameState.usedTiles, tileSource, tile);\n }\n }\n this.renderedRevision = sourceRevision;\n this.renderedResolution = tileResolution;\n this.extentChanged =\n !this.renderedExtent_ || !equals(this.renderedExtent_, canvasExtent);\n this.renderedExtent_ = canvasExtent;\n this.renderedPixelRatio = pixelRatio;\n this.renderedProjection = projection;\n this.manageTilePyramid(frameState, tileSource, tileGrid, pixelRatio, projection, extent, z, tileLayer.getPreload());\n this.scheduleExpireCache(frameState, tileSource);\n this.postRender(context, frameState);\n if (layerState.extent) {\n context.restore();\n }\n if (canvasTransform !== canvas.style.transform) {\n canvas.style.transform = canvasTransform;\n }\n var opacity = cssOpacity(layerState.opacity);\n var container = this.container;\n if (opacity !== container.style.opacity) {\n container.style.opacity = opacity;\n }\n return this.container;\n };\n /**\n * @param {import(\"../../ImageTile.js\").default} tile Tile.\n * @param {import(\"../../PluggableMap.js\").FrameState} frameState Frame state.\n * @param {number} x Left of the tile.\n * @param {number} y Top of the tile.\n * @param {number} w Width of the tile.\n * @param {number} h Height of the tile.\n * @param {number} gutter Tile gutter.\n * @param {boolean} transition Apply an alpha transition.\n */\n CanvasTileLayerRenderer.prototype.drawTileImage = function (tile, frameState, x, y, w, h, gutter, transition) {\n var image = this.getTileImage(tile);\n if (!image) {\n return;\n }\n var uid = getUid(this);\n var alpha = transition ? tile.getAlpha(uid, frameState.time) : 1;\n var alphaChanged = alpha !== this.context.globalAlpha;\n if (alphaChanged) {\n this.context.save();\n this.context.globalAlpha = alpha;\n }\n this.context.drawImage(image, gutter, gutter, image.width - 2 * gutter, image.height - 2 * gutter, x, y, w, h);\n if (alphaChanged) {\n this.context.restore();\n }\n if (alpha !== 1) {\n frameState.animate = true;\n }\n else if (transition) {\n tile.endTransition(uid);\n }\n };\n /**\n * @return {HTMLCanvasElement} Image\n */\n CanvasTileLayerRenderer.prototype.getImage = function () {\n var context = this.context;\n return context ? context.canvas : null;\n };\n /**\n * Get the image from a tile.\n * @param {import(\"../../ImageTile.js\").default} tile Tile.\n * @return {HTMLCanvasElement|HTMLImageElement|HTMLVideoElement} Image.\n * @protected\n */\n CanvasTileLayerRenderer.prototype.getTileImage = function (tile) {\n return tile.getImage();\n };\n /**\n * @param {import(\"../../PluggableMap.js\").FrameState} frameState Frame state.\n * @param {import(\"../../source/Tile.js\").default} tileSource Tile source.\n * @protected\n */\n CanvasTileLayerRenderer.prototype.scheduleExpireCache = function (frameState, tileSource) {\n if (tileSource.canExpireCache()) {\n /**\n * @param {import(\"../../source/Tile.js\").default} tileSource Tile source.\n * @param {import(\"../../PluggableMap.js\").default} map Map.\n * @param {import(\"../../PluggableMap.js\").FrameState} frameState Frame state.\n */\n var postRenderFunction = function (tileSource, map, frameState) {\n var tileSourceKey = getUid(tileSource);\n if (tileSourceKey in frameState.usedTiles) {\n tileSource.expireCache(frameState.viewState.projection, frameState.usedTiles[tileSourceKey]);\n }\n }.bind(null, tileSource);\n frameState.postRenderFunctions.push(\n /** @type {import(\"../../PluggableMap.js\").PostRenderFunction} */ (postRenderFunction));\n }\n };\n /**\n * @param {!Object>} usedTiles Used tiles.\n * @param {import(\"../../source/Tile.js\").default} tileSource Tile source.\n * @param {import('../../Tile.js').default} tile Tile.\n * @protected\n */\n CanvasTileLayerRenderer.prototype.updateUsedTiles = function (usedTiles, tileSource, tile) {\n // FIXME should we use tilesToDrawByZ instead?\n var tileSourceKey = getUid(tileSource);\n if (!(tileSourceKey in usedTiles)) {\n usedTiles[tileSourceKey] = {};\n }\n usedTiles[tileSourceKey][tile.getKey()] = true;\n };\n /**\n * Manage tile pyramid.\n * This function performs a number of functions related to the tiles at the\n * current zoom and lower zoom levels:\n * - registers idle tiles in frameState.wantedTiles so that they are not\n * discarded by the tile queue\n * - enqueues missing tiles\n * @param {import(\"../../PluggableMap.js\").FrameState} frameState Frame state.\n * @param {import(\"../../source/Tile.js\").default} tileSource Tile source.\n * @param {import(\"../../tilegrid/TileGrid.js\").default} tileGrid Tile grid.\n * @param {number} pixelRatio Pixel ratio.\n * @param {import(\"../../proj/Projection.js\").default} projection Projection.\n * @param {import(\"../../extent.js\").Extent} extent Extent.\n * @param {number} currentZ Current Z.\n * @param {number} preload Load low resolution tiles up to 'preload' levels.\n * @param {function(import(\"../../Tile.js\").default):void} [opt_tileCallback] Tile callback.\n * @protected\n */\n CanvasTileLayerRenderer.prototype.manageTilePyramid = function (frameState, tileSource, tileGrid, pixelRatio, projection, extent, currentZ, preload, opt_tileCallback) {\n var tileSourceKey = getUid(tileSource);\n if (!(tileSourceKey in frameState.wantedTiles)) {\n frameState.wantedTiles[tileSourceKey] = {};\n }\n var wantedTiles = frameState.wantedTiles[tileSourceKey];\n var tileQueue = frameState.tileQueue;\n var minZoom = tileGrid.getMinZoom();\n var tileCount = 0;\n var tile, tileRange, tileResolution, x, y, z;\n for (z = minZoom; z <= currentZ; ++z) {\n tileRange = tileGrid.getTileRangeForExtentAndZ(extent, z, tileRange);\n tileResolution = tileGrid.getResolution(z);\n for (x = tileRange.minX; x <= tileRange.maxX; ++x) {\n for (y = tileRange.minY; y <= tileRange.maxY; ++y) {\n if (currentZ - z <= preload) {\n ++tileCount;\n tile = tileSource.getTile(z, x, y, pixelRatio, projection);\n if (tile.getState() == TileState.IDLE) {\n wantedTiles[tile.getKey()] = true;\n if (!tileQueue.isKeyQueued(tile.getKey())) {\n tileQueue.enqueue([\n tile,\n tileSourceKey,\n tileGrid.getTileCoordCenter(tile.tileCoord),\n tileResolution,\n ]);\n }\n }\n if (opt_tileCallback !== undefined) {\n opt_tileCallback(tile);\n }\n }\n else {\n tileSource.useTile(z, x, y, projection);\n }\n }\n }\n }\n tileSource.updateCacheSize(tileCount, projection);\n };\n return CanvasTileLayerRenderer;\n}(CanvasLayerRenderer));\n/**\n * @function\n * @return {import(\"../../layer/Tile.js\").default|import(\"../../layer/VectorTile.js\").default}\n */\nCanvasTileLayerRenderer.prototype.getLayer;\nexport default CanvasTileLayerRenderer;\n//# sourceMappingURL=TileLayer.js.map","/**\n * @module ol/TileState\n */\n/**\n * @enum {number}\n */\nexport default {\n IDLE: 0,\n LOADING: 1,\n LOADED: 2,\n /**\n * Indicates that tile loading failed\n * @type {number}\n */\n ERROR: 3,\n EMPTY: 4,\n};\n//# sourceMappingURL=TileState.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/layer/Tile\n */\nimport BaseTileLayer from './BaseTile.js';\nimport CanvasTileLayerRenderer from '../renderer/canvas/TileLayer.js';\n/**\n * @classdesc\n * For layer sources that provide pre-rendered, tiled images in grids that are\n * organized by zoom levels for specific resolutions.\n * Note that any property set in the options is set as a {@link module:ol/Object~BaseObject}\n * property on the layer object; for example, setting `title: 'My Title'` in the\n * options means that `title` is observable, and has get/set accessors.\n *\n * @template {import(\"../source/Tile.js\").default} TileSourceType\n * @extends {BaseTileLayer}\n * @api\n */\nvar TileLayer = /** @class */ (function (_super) {\n __extends(TileLayer, _super);\n /**\n * @param {import(\"./BaseTile.js\").Options} [opt_options] Tile layer options.\n */\n function TileLayer(opt_options) {\n return _super.call(this, opt_options) || this;\n }\n /**\n * Create a renderer for this layer.\n * @return {import(\"../renderer/Layer.js\").default} A layer renderer.\n * @protected\n */\n TileLayer.prototype.createRenderer = function () {\n return new CanvasTileLayerRenderer(this);\n };\n return TileLayer;\n}(BaseTileLayer));\nexport default TileLayer;\n//# sourceMappingURL=Tile.js.map","/**\n * @module ol/size\n */\n/**\n * An array of numbers representing a size: `[width, height]`.\n * @typedef {Array} Size\n * @api\n */\n/**\n * Returns a buffered size.\n * @param {Size} size Size.\n * @param {number} num The amount by which to buffer.\n * @param {Size} [opt_size] Optional reusable size array.\n * @return {Size} The buffered size.\n */\nexport function buffer(size, num, opt_size) {\n if (opt_size === undefined) {\n opt_size = [0, 0];\n }\n opt_size[0] = size[0] + 2 * num;\n opt_size[1] = size[1] + 2 * num;\n return opt_size;\n}\n/**\n * Determines if a size has a positive area.\n * @param {Size} size The size to test.\n * @return {boolean} The size has a positive area.\n */\nexport function hasArea(size) {\n return size[0] > 0 && size[1] > 0;\n}\n/**\n * Returns a size scaled by a ratio. The result will be an array of integers.\n * @param {Size} size Size.\n * @param {number} ratio Ratio.\n * @param {Size} [opt_size] Optional reusable size array.\n * @return {Size} The scaled size.\n */\nexport function scale(size, ratio, opt_size) {\n if (opt_size === undefined) {\n opt_size = [0, 0];\n }\n opt_size[0] = (size[0] * ratio + 0.5) | 0;\n opt_size[1] = (size[1] * ratio + 0.5) | 0;\n return opt_size;\n}\n/**\n * Returns an `Size` array for the passed in number (meaning: square) or\n * `Size` array.\n * (meaning: non-square),\n * @param {number|Size} size Width and height.\n * @param {Size} [opt_size] Optional reusable size array.\n * @return {Size} Size.\n * @api\n */\nexport function toSize(size, opt_size) {\n if (Array.isArray(size)) {\n return size;\n }\n else {\n if (opt_size === undefined) {\n opt_size = [size, size];\n }\n else {\n opt_size[0] = size;\n opt_size[1] = size;\n }\n return opt_size;\n }\n}\n//# sourceMappingURL=size.js.map","/**\n * @module ol/style/Image\n */\nimport { abstract } from '../util.js';\nimport { toSize } from '../size.js';\n/**\n * @typedef {Object} Options\n * @property {number} opacity Opacity.\n * @property {boolean} rotateWithView If the image should get rotated with the view.\n * @property {number} rotation Rotation.\n * @property {number|import(\"../size.js\").Size} scale Scale.\n * @property {Array} displacement Displacement.\n */\n/**\n * @classdesc\n * A base class used for creating subclasses and not instantiated in\n * apps. Base class for {@link module:ol/style/Icon~Icon}, {@link module:ol/style/Circle~CircleStyle} and\n * {@link module:ol/style/RegularShape~RegularShape}.\n * @abstract\n * @api\n */\nvar ImageStyle = /** @class */ (function () {\n /**\n * @param {Options} options Options.\n */\n function ImageStyle(options) {\n /**\n * @private\n * @type {number}\n */\n this.opacity_ = options.opacity;\n /**\n * @private\n * @type {boolean}\n */\n this.rotateWithView_ = options.rotateWithView;\n /**\n * @private\n * @type {number}\n */\n this.rotation_ = options.rotation;\n /**\n * @private\n * @type {number|import(\"../size.js\").Size}\n */\n this.scale_ = options.scale;\n /**\n * @private\n * @type {import(\"../size.js\").Size}\n */\n this.scaleArray_ = toSize(options.scale);\n /**\n * @private\n * @type {Array}\n */\n this.displacement_ = options.displacement;\n }\n /**\n * Clones the style.\n * @return {ImageStyle} The cloned style.\n * @api\n */\n ImageStyle.prototype.clone = function () {\n var scale = this.getScale();\n return new ImageStyle({\n opacity: this.getOpacity(),\n scale: Array.isArray(scale) ? scale.slice() : scale,\n rotation: this.getRotation(),\n rotateWithView: this.getRotateWithView(),\n displacement: this.getDisplacement().slice(),\n });\n };\n /**\n * Get the symbolizer opacity.\n * @return {number} Opacity.\n * @api\n */\n ImageStyle.prototype.getOpacity = function () {\n return this.opacity_;\n };\n /**\n * Determine whether the symbolizer rotates with the map.\n * @return {boolean} Rotate with map.\n * @api\n */\n ImageStyle.prototype.getRotateWithView = function () {\n return this.rotateWithView_;\n };\n /**\n * Get the symoblizer rotation.\n * @return {number} Rotation.\n * @api\n */\n ImageStyle.prototype.getRotation = function () {\n return this.rotation_;\n };\n /**\n * Get the symbolizer scale.\n * @return {number|import(\"../size.js\").Size} Scale.\n * @api\n */\n ImageStyle.prototype.getScale = function () {\n return this.scale_;\n };\n /**\n * Get the symbolizer scale array.\n * @return {import(\"../size.js\").Size} Scale array.\n */\n ImageStyle.prototype.getScaleArray = function () {\n return this.scaleArray_;\n };\n /**\n * Get the displacement of the shape\n * @return {Array} Shape's center displacement\n * @api\n */\n ImageStyle.prototype.getDisplacement = function () {\n return this.displacement_;\n };\n /**\n * Get the anchor point in pixels. The anchor determines the center point for the\n * symbolizer.\n * @abstract\n * @return {Array} Anchor.\n */\n ImageStyle.prototype.getAnchor = function () {\n return abstract();\n };\n /**\n * Get the image element for the symbolizer.\n * @abstract\n * @param {number} pixelRatio Pixel ratio.\n * @return {HTMLCanvasElement|HTMLVideoElement|HTMLImageElement} Image element.\n */\n ImageStyle.prototype.getImage = function (pixelRatio) {\n return abstract();\n };\n /**\n * @abstract\n * @return {HTMLCanvasElement|HTMLVideoElement|HTMLImageElement} Image element.\n */\n ImageStyle.prototype.getHitDetectionImage = function () {\n return abstract();\n };\n /**\n * Get the image pixel ratio.\n * @param {number} pixelRatio Pixel ratio.\n * @return {number} Pixel ratio.\n */\n ImageStyle.prototype.getPixelRatio = function (pixelRatio) {\n return 1;\n };\n /**\n * @abstract\n * @return {import(\"../ImageState.js\").default} Image state.\n */\n ImageStyle.prototype.getImageState = function () {\n return abstract();\n };\n /**\n * @abstract\n * @return {import(\"../size.js\").Size} Image size.\n */\n ImageStyle.prototype.getImageSize = function () {\n return abstract();\n };\n /**\n * Get the origin of the symbolizer.\n * @abstract\n * @return {Array} Origin.\n */\n ImageStyle.prototype.getOrigin = function () {\n return abstract();\n };\n /**\n * Get the size of the symbolizer (in pixels).\n * @abstract\n * @return {import(\"../size.js\").Size} Size.\n */\n ImageStyle.prototype.getSize = function () {\n return abstract();\n };\n /**\n * Set the opacity.\n *\n * @param {number} opacity Opacity.\n * @api\n */\n ImageStyle.prototype.setOpacity = function (opacity) {\n this.opacity_ = opacity;\n };\n /**\n * Set whether to rotate the style with the view.\n *\n * @param {boolean} rotateWithView Rotate with map.\n * @api\n */\n ImageStyle.prototype.setRotateWithView = function (rotateWithView) {\n this.rotateWithView_ = rotateWithView;\n };\n /**\n * Set the rotation.\n *\n * @param {number} rotation Rotation.\n * @api\n */\n ImageStyle.prototype.setRotation = function (rotation) {\n this.rotation_ = rotation;\n };\n /**\n * Set the scale.\n *\n * @param {number|import(\"../size.js\").Size} scale Scale.\n * @api\n */\n ImageStyle.prototype.setScale = function (scale) {\n this.scale_ = scale;\n this.scaleArray_ = toSize(scale);\n };\n /**\n * @abstract\n * @param {function(import(\"../events/Event.js\").default): void} listener Listener function.\n */\n ImageStyle.prototype.listenImageChange = function (listener) {\n abstract();\n };\n /**\n * Load not yet loaded URI.\n * @abstract\n */\n ImageStyle.prototype.load = function () {\n abstract();\n };\n /**\n * @abstract\n * @param {function(import(\"../events/Event.js\").default): void} listener Listener function.\n */\n ImageStyle.prototype.unlistenImageChange = function (listener) {\n abstract();\n };\n return ImageStyle;\n}());\nexport default ImageStyle;\n//# sourceMappingURL=Image.js.map","/**\n * @module ol/color\n */\nimport { assert } from './asserts.js';\nimport { clamp } from './math.js';\n/**\n * A color represented as a short array [red, green, blue, alpha].\n * red, green, and blue should be integers in the range 0..255 inclusive.\n * alpha should be a float in the range 0..1 inclusive. If no alpha value is\n * given then `1` will be used.\n * @typedef {Array} Color\n * @api\n */\n/**\n * This RegExp matches # followed by 3, 4, 6, or 8 hex digits.\n * @const\n * @type {RegExp}\n * @private\n */\nvar HEX_COLOR_RE_ = /^#([a-f0-9]{3}|[a-f0-9]{4}(?:[a-f0-9]{2}){0,2})$/i;\n/**\n * Regular expression for matching potential named color style strings.\n * @const\n * @type {RegExp}\n * @private\n */\nvar NAMED_COLOR_RE_ = /^([a-z]*)$|^hsla?\\(.*\\)$/i;\n/**\n * Return the color as an rgba string.\n * @param {Color|string} color Color.\n * @return {string} Rgba string.\n * @api\n */\nexport function asString(color) {\n if (typeof color === 'string') {\n return color;\n }\n else {\n return toString(color);\n }\n}\n/**\n * Return named color as an rgba string.\n * @param {string} color Named color.\n * @return {string} Rgb string.\n */\nfunction fromNamed(color) {\n var el = document.createElement('div');\n el.style.color = color;\n if (el.style.color !== '') {\n document.body.appendChild(el);\n var rgb = getComputedStyle(el).color;\n document.body.removeChild(el);\n return rgb;\n }\n else {\n return '';\n }\n}\n/**\n * @param {string} s String.\n * @return {Color} Color.\n */\nexport var fromString = (function () {\n // We maintain a small cache of parsed strings. To provide cheap LRU-like\n // semantics, whenever the cache grows too large we simply delete an\n // arbitrary 25% of the entries.\n /**\n * @const\n * @type {number}\n */\n var MAX_CACHE_SIZE = 1024;\n /**\n * @type {Object}\n */\n var cache = {};\n /**\n * @type {number}\n */\n var cacheSize = 0;\n return (\n /**\n * @param {string} s String.\n * @return {Color} Color.\n */\n function (s) {\n var color;\n if (cache.hasOwnProperty(s)) {\n color = cache[s];\n }\n else {\n if (cacheSize >= MAX_CACHE_SIZE) {\n var i = 0;\n for (var key in cache) {\n if ((i++ & 3) === 0) {\n delete cache[key];\n --cacheSize;\n }\n }\n }\n color = fromStringInternal_(s);\n cache[s] = color;\n ++cacheSize;\n }\n return color;\n });\n})();\n/**\n * Return the color as an array. This function maintains a cache of calculated\n * arrays which means the result should not be modified.\n * @param {Color|string} color Color.\n * @return {Color} Color.\n * @api\n */\nexport function asArray(color) {\n if (Array.isArray(color)) {\n return color;\n }\n else {\n return fromString(color);\n }\n}\n/**\n * @param {string} s String.\n * @private\n * @return {Color} Color.\n */\nfunction fromStringInternal_(s) {\n var r, g, b, a, color;\n if (NAMED_COLOR_RE_.exec(s)) {\n s = fromNamed(s);\n }\n if (HEX_COLOR_RE_.exec(s)) {\n // hex\n var n = s.length - 1; // number of hex digits\n var d = // number of digits per channel\n void 0; // number of digits per channel\n if (n <= 4) {\n d = 1;\n }\n else {\n d = 2;\n }\n var hasAlpha = n === 4 || n === 8;\n r = parseInt(s.substr(1 + 0 * d, d), 16);\n g = parseInt(s.substr(1 + 1 * d, d), 16);\n b = parseInt(s.substr(1 + 2 * d, d), 16);\n if (hasAlpha) {\n a = parseInt(s.substr(1 + 3 * d, d), 16);\n }\n else {\n a = 255;\n }\n if (d == 1) {\n r = (r << 4) + r;\n g = (g << 4) + g;\n b = (b << 4) + b;\n if (hasAlpha) {\n a = (a << 4) + a;\n }\n }\n color = [r, g, b, a / 255];\n }\n else if (s.indexOf('rgba(') == 0) {\n // rgba()\n color = s.slice(5, -1).split(',').map(Number);\n normalize(color);\n }\n else if (s.indexOf('rgb(') == 0) {\n // rgb()\n color = s.slice(4, -1).split(',').map(Number);\n color.push(1);\n normalize(color);\n }\n else {\n assert(false, 14); // Invalid color\n }\n return color;\n}\n/**\n * TODO this function is only used in the test, we probably shouldn't export it\n * @param {Color} color Color.\n * @return {Color} Clamped color.\n */\nexport function normalize(color) {\n color[0] = clamp((color[0] + 0.5) | 0, 0, 255);\n color[1] = clamp((color[1] + 0.5) | 0, 0, 255);\n color[2] = clamp((color[2] + 0.5) | 0, 0, 255);\n color[3] = clamp(color[3], 0, 1);\n return color;\n}\n/**\n * @param {Color} color Color.\n * @return {string} String.\n */\nexport function toString(color) {\n var r = color[0];\n if (r != (r | 0)) {\n r = (r + 0.5) | 0;\n }\n var g = color[1];\n if (g != (g | 0)) {\n g = (g + 0.5) | 0;\n }\n var b = color[2];\n if (b != (b | 0)) {\n b = (b + 0.5) | 0;\n }\n var a = color[3] === undefined ? 1 : color[3];\n return 'rgba(' + r + ',' + g + ',' + b + ',' + a + ')';\n}\n/**\n * @param {string} s String.\n * @return {boolean} Whether the string is actually a valid color\n */\nexport function isStringColor(s) {\n if (NAMED_COLOR_RE_.test(s)) {\n s = fromNamed(s);\n }\n return (HEX_COLOR_RE_.test(s) || s.indexOf('rgba(') === 0 || s.indexOf('rgb(') === 0);\n}\n//# sourceMappingURL=color.js.map","/**\n * @module ol/colorlike\n */\nimport { toString } from './color.js';\n/**\n * A type accepted by CanvasRenderingContext2D.fillStyle\n * or CanvasRenderingContext2D.strokeStyle.\n * Represents a color, pattern, or gradient. The origin for patterns and\n * gradients as fill style is an increment of 512 css pixels from map coordinate\n * `[0, 0]`. For seamless repeat patterns, width and height of the pattern image\n * must be a factor of two (2, 4, 8, ..., 512).\n *\n * @typedef {string|CanvasPattern|CanvasGradient} ColorLike\n * @api\n */\n/**\n * @param {import(\"./color.js\").Color|ColorLike} color Color.\n * @return {ColorLike} The color as an {@link ol/colorlike~ColorLike}.\n * @api\n */\nexport function asColorLike(color) {\n if (Array.isArray(color)) {\n return toString(color);\n }\n else {\n return color;\n }\n}\n//# sourceMappingURL=colorlike.js.map","/**\n * @module ol/render/canvas\n */\nimport BaseObject from '../Object.js';\nimport EventTarget from '../events/Target.js';\nimport { WORKER_OFFSCREEN_CANVAS } from '../has.js';\nimport { clear } from '../obj.js';\nimport { createCanvasContext2D } from '../dom.js';\nimport { getFontParameters } from '../css.js';\n/**\n * @typedef {Object} FillState\n * @property {import(\"../colorlike.js\").ColorLike} fillStyle FillStyle.\n */\n/**\n * @typedef Label\n * @property {number} width Width.\n * @property {number} height Height.\n * @property {Array} contextInstructions ContextInstructions.\n */\n/**\n * @typedef {Object} FillStrokeState\n * @property {import(\"../colorlike.js\").ColorLike} [currentFillStyle] Current FillStyle.\n * @property {import(\"../colorlike.js\").ColorLike} [currentStrokeStyle] Current StrokeStyle.\n * @property {CanvasLineCap} [currentLineCap] Current LineCap.\n * @property {Array} currentLineDash Current LineDash.\n * @property {number} [currentLineDashOffset] Current LineDashOffset.\n * @property {CanvasLineJoin} [currentLineJoin] Current LineJoin.\n * @property {number} [currentLineWidth] Current LineWidth.\n * @property {number} [currentMiterLimit] Current MiterLimit.\n * @property {number} [lastStroke] Last stroke.\n * @property {import(\"../colorlike.js\").ColorLike} [fillStyle] FillStyle.\n * @property {import(\"../colorlike.js\").ColorLike} [strokeStyle] StrokeStyle.\n * @property {CanvasLineCap} [lineCap] LineCap.\n * @property {Array} lineDash LineDash.\n * @property {number} [lineDashOffset] LineDashOffset.\n * @property {CanvasLineJoin} [lineJoin] LineJoin.\n * @property {number} [lineWidth] LineWidth.\n * @property {number} [miterLimit] MiterLimit.\n */\n/**\n * @typedef {Object} StrokeState\n * @property {CanvasLineCap} lineCap LineCap.\n * @property {Array} lineDash LineDash.\n * @property {number} lineDashOffset LineDashOffset.\n * @property {CanvasLineJoin} lineJoin LineJoin.\n * @property {number} lineWidth LineWidth.\n * @property {number} miterLimit MiterLimit.\n * @property {import(\"../colorlike.js\").ColorLike} strokeStyle StrokeStyle.\n */\n/**\n * @typedef {Object} TextState\n * @property {string} font Font.\n * @property {string} [textAlign] TextAlign.\n * @property {string} textBaseline TextBaseline.\n * @property {string} [placement] Placement.\n * @property {number} [maxAngle] MaxAngle.\n * @property {boolean} [overflow] Overflow.\n * @property {import(\"../style/Fill.js\").default} [backgroundFill] BackgroundFill.\n * @property {import(\"../style/Stroke.js\").default} [backgroundStroke] BackgroundStroke.\n * @property {import(\"../size.js\").Size} [scale] Scale.\n * @property {Array} [padding] Padding.\n */\n/**\n * @typedef {Object} SerializableInstructions\n * @property {Array<*>} instructions The rendering instructions.\n * @property {Array<*>} hitDetectionInstructions The rendering hit detection instructions.\n * @property {Array} coordinates The array of all coordinates.\n * @property {!Object} [textStates] The text states (decluttering).\n * @property {!Object} [fillStates] The fill states (decluttering).\n * @property {!Object} [strokeStates] The stroke states (decluttering).\n */\n/**\n * @typedef {Object} DeclutterImageWithText\n */\n/**\n * @const\n * @type {string}\n */\nexport var defaultFont = '10px sans-serif';\n/**\n * @const\n * @type {import(\"../colorlike.js\").ColorLike}\n */\nexport var defaultFillStyle = '#000';\n/**\n * @const\n * @type {CanvasLineCap}\n */\nexport var defaultLineCap = 'round';\n/**\n * @const\n * @type {Array}\n */\nexport var defaultLineDash = [];\n/**\n * @const\n * @type {number}\n */\nexport var defaultLineDashOffset = 0;\n/**\n * @const\n * @type {CanvasLineJoin}\n */\nexport var defaultLineJoin = 'round';\n/**\n * @const\n * @type {number}\n */\nexport var defaultMiterLimit = 10;\n/**\n * @const\n * @type {import(\"../colorlike.js\").ColorLike}\n */\nexport var defaultStrokeStyle = '#000';\n/**\n * @const\n * @type {string}\n */\nexport var defaultTextAlign = 'center';\n/**\n * @const\n * @type {string}\n */\nexport var defaultTextBaseline = 'middle';\n/**\n * @const\n * @type {Array}\n */\nexport var defaultPadding = [0, 0, 0, 0];\n/**\n * @const\n * @type {number}\n */\nexport var defaultLineWidth = 1;\n/**\n * @type {BaseObject}\n */\nexport var checkedFonts = new BaseObject();\n/**\n * The label cache for text rendering. To change the default cache size of 2048\n * entries, use {@link module:ol/structs/LRUCache~LRUCache#setSize cache.setSize()}.\n * Deprecated - there is no label cache any more.\n * @type {?}\n * @api\n * @deprecated\n */\nexport var labelCache = new EventTarget();\nlabelCache.setSize = function () {\n console.warn('labelCache is deprecated.'); //eslint-disable-line\n};\n/**\n * @type {CanvasRenderingContext2D}\n */\nvar measureContext = null;\n/**\n * @type {string}\n */\nvar measureFont;\n/**\n * @type {!Object}\n */\nexport var textHeights = {};\n/**\n * Clears the label cache when a font becomes available.\n * @param {string} fontSpec CSS font spec.\n */\nexport var registerFont = (function () {\n var retries = 100;\n var size = '32px ';\n var referenceFonts = ['monospace', 'serif'];\n var len = referenceFonts.length;\n var text = 'wmytzilWMYTZIL@#/&?$%10\\uF013';\n var interval, referenceWidth;\n /**\n * @param {string} fontStyle Css font-style\n * @param {string} fontWeight Css font-weight\n * @param {*} fontFamily Css font-family\n * @return {boolean} Font with style and weight is available\n */\n function isAvailable(fontStyle, fontWeight, fontFamily) {\n var available = true;\n for (var i = 0; i < len; ++i) {\n var referenceFont = referenceFonts[i];\n referenceWidth = measureTextWidth(fontStyle + ' ' + fontWeight + ' ' + size + referenceFont, text);\n if (fontFamily != referenceFont) {\n var width = measureTextWidth(fontStyle +\n ' ' +\n fontWeight +\n ' ' +\n size +\n fontFamily +\n ',' +\n referenceFont, text);\n // If width and referenceWidth are the same, then the fallback was used\n // instead of the font we wanted, so the font is not available.\n available = available && width != referenceWidth;\n }\n }\n if (available) {\n return true;\n }\n return false;\n }\n function check() {\n var done = true;\n var fonts = checkedFonts.getKeys();\n for (var i = 0, ii = fonts.length; i < ii; ++i) {\n var font = fonts[i];\n if (checkedFonts.get(font) < retries) {\n if (isAvailable.apply(this, font.split('\\n'))) {\n clear(textHeights);\n // Make sure that loaded fonts are picked up by Safari\n measureContext = null;\n measureFont = undefined;\n checkedFonts.set(font, retries);\n }\n else {\n checkedFonts.set(font, checkedFonts.get(font) + 1, true);\n done = false;\n }\n }\n }\n if (done) {\n clearInterval(interval);\n interval = undefined;\n }\n }\n return function (fontSpec) {\n var font = getFontParameters(fontSpec);\n if (!font) {\n return;\n }\n var families = font.families;\n for (var i = 0, ii = families.length; i < ii; ++i) {\n var family = families[i];\n var key = font.style + '\\n' + font.weight + '\\n' + family;\n if (checkedFonts.get(key) === undefined) {\n checkedFonts.set(key, retries, true);\n if (!isAvailable(font.style, font.weight, family)) {\n checkedFonts.set(key, 0, true);\n if (interval === undefined) {\n interval = setInterval(check, 32);\n }\n }\n }\n }\n };\n})();\n/**\n * @param {string} font Font to use for measuring.\n * @return {import(\"../size.js\").Size} Measurement.\n */\nexport var measureTextHeight = (function () {\n /**\n * @type {HTMLDivElement}\n */\n var measureElement;\n return function (fontSpec) {\n var height = textHeights[fontSpec];\n if (height == undefined) {\n if (WORKER_OFFSCREEN_CANVAS) {\n var font = getFontParameters(fontSpec);\n var metrics = measureText(fontSpec, 'Žg');\n var lineHeight = isNaN(Number(font.lineHeight))\n ? 1.2\n : Number(font.lineHeight);\n height =\n lineHeight *\n (metrics.actualBoundingBoxAscent + metrics.actualBoundingBoxDescent);\n }\n else {\n if (!measureElement) {\n measureElement = document.createElement('div');\n measureElement.innerHTML = 'M';\n measureElement.style.minHeight = '0';\n measureElement.style.maxHeight = 'none';\n measureElement.style.height = 'auto';\n measureElement.style.padding = '0';\n measureElement.style.border = 'none';\n measureElement.style.position = 'absolute';\n measureElement.style.display = 'block';\n measureElement.style.left = '-99999px';\n }\n measureElement.style.font = fontSpec;\n document.body.appendChild(measureElement);\n height = measureElement.offsetHeight;\n document.body.removeChild(measureElement);\n }\n textHeights[fontSpec] = height;\n }\n return height;\n };\n})();\n/**\n * @param {string} font Font.\n * @param {string} text Text.\n * @return {TextMetrics} Text metrics.\n */\nfunction measureText(font, text) {\n if (!measureContext) {\n measureContext = createCanvasContext2D(1, 1);\n }\n if (font != measureFont) {\n measureContext.font = font;\n measureFont = measureContext.font;\n }\n return measureContext.measureText(text);\n}\n/**\n * @param {string} font Font.\n * @param {string} text Text.\n * @return {number} Width.\n */\nexport function measureTextWidth(font, text) {\n return measureText(font, text).width;\n}\n/**\n * Measure text width using a cache.\n * @param {string} font The font.\n * @param {string} text The text to measure.\n * @param {Object} cache A lookup of cached widths by text.\n * @return {number} The text width.\n */\nexport function measureAndCacheTextWidth(font, text, cache) {\n if (text in cache) {\n return cache[text];\n }\n var width = measureTextWidth(font, text);\n cache[text] = width;\n return width;\n}\n/**\n * @param {string} font Font to use for measuring.\n * @param {Array} lines Lines to measure.\n * @param {Array} widths Array will be populated with the widths of\n * each line.\n * @return {number} Width of the whole text.\n */\nexport function measureTextWidths(font, lines, widths) {\n var numLines = lines.length;\n var width = 0;\n for (var i = 0; i < numLines; ++i) {\n var currentWidth = measureTextWidth(font, lines[i]);\n width = Math.max(width, currentWidth);\n widths.push(currentWidth);\n }\n return width;\n}\n/**\n * @param {CanvasRenderingContext2D} context Context.\n * @param {number} rotation Rotation.\n * @param {number} offsetX X offset.\n * @param {number} offsetY Y offset.\n */\nexport function rotateAtOffset(context, rotation, offsetX, offsetY) {\n if (rotation !== 0) {\n context.translate(offsetX, offsetY);\n context.rotate(rotation);\n context.translate(-offsetX, -offsetY);\n }\n}\n/**\n * @param {CanvasRenderingContext2D} context Context.\n * @param {import(\"../transform.js\").Transform|null} transform Transform.\n * @param {number} opacity Opacity.\n * @param {Label|HTMLCanvasElement|HTMLImageElement|HTMLVideoElement} labelOrImage Label.\n * @param {number} originX Origin X.\n * @param {number} originY Origin Y.\n * @param {number} w Width.\n * @param {number} h Height.\n * @param {number} x X.\n * @param {number} y Y.\n * @param {import(\"../size.js\").Size} scale Scale.\n */\nexport function drawImageOrLabel(context, transform, opacity, labelOrImage, originX, originY, w, h, x, y, scale) {\n context.save();\n if (opacity !== 1) {\n context.globalAlpha *= opacity;\n }\n if (transform) {\n context.setTransform.apply(context, transform);\n }\n if ( /** @type {*} */(labelOrImage).contextInstructions) {\n // label\n context.translate(x, y);\n context.scale(scale[0], scale[1]);\n executeLabelInstructions(/** @type {Label} */ (labelOrImage), context);\n }\n else if (scale[0] < 0 || scale[1] < 0) {\n // flipped image\n context.translate(x, y);\n context.scale(scale[0], scale[1]);\n context.drawImage(\n /** @type {HTMLCanvasElement|HTMLImageElement|HTMLVideoElement} */ (labelOrImage), originX, originY, w, h, 0, 0, w, h);\n }\n else {\n // if image not flipped translate and scale can be avoided\n context.drawImage(\n /** @type {HTMLCanvasElement|HTMLImageElement|HTMLVideoElement} */ (labelOrImage), originX, originY, w, h, x, y, w * scale[0], h * scale[1]);\n }\n context.restore();\n}\n/**\n * @param {Label} label Label.\n * @param {CanvasRenderingContext2D} context Context.\n */\nfunction executeLabelInstructions(label, context) {\n var contextInstructions = label.contextInstructions;\n for (var i = 0, ii = contextInstructions.length; i < ii; i += 2) {\n if (Array.isArray(contextInstructions[i + 1])) {\n context[contextInstructions[i]].apply(context, contextInstructions[i + 1]);\n }\n else {\n context[contextInstructions[i]] = contextInstructions[i + 1];\n }\n }\n}\n//# sourceMappingURL=canvas.js.map","/**\n * @module ol/style/RegularShape\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport ImageState from '../ImageState.js';\nimport ImageStyle from './Image.js';\nimport { asArray } from '../color.js';\nimport { asColorLike } from '../colorlike.js';\nimport { createCanvasContext2D } from '../dom.js';\nimport { defaultFillStyle, defaultLineJoin, defaultLineWidth, defaultMiterLimit, defaultStrokeStyle, } from '../render/canvas.js';\n/**\n * Specify radius for regular polygons, or radius1 and radius2 for stars.\n * @typedef {Object} Options\n * @property {import(\"./Fill.js\").default} [fill] Fill style.\n * @property {number} points Number of points for stars and regular polygons. In case of a polygon, the number of points\n * is the number of sides.\n * @property {number} [radius] Radius of a regular polygon.\n * @property {number} [radius1] First radius of a star. Ignored if radius is set.\n * @property {number} [radius2] Second radius of a star.\n * @property {number} [angle=0] Shape's angle in radians. A value of 0 will have one of the shape's point facing up.\n * @property {Array} [displacement=[0,0]] Displacement of the shape\n * @property {import(\"./Stroke.js\").default} [stroke] Stroke style.\n * @property {number} [rotation=0] Rotation in radians (positive rotation clockwise).\n * @property {boolean} [rotateWithView=false] Whether to rotate the shape with the view.\n * @property {number|import(\"../size.js\").Size} [scale=1] Scale. Unless two dimensional scaling is required a better\n * result may be obtained with appropriate settings for `radius`, `radius1` and `radius2`.\n */\n/**\n * @typedef {Object} RenderOptions\n * @property {import(\"../colorlike.js\").ColorLike} [strokeStyle] StrokeStyle.\n * @property {number} strokeWidth StrokeWidth.\n * @property {number} size Size.\n * @property {Array} lineDash LineDash.\n * @property {number} lineDashOffset LineDashOffset.\n * @property {CanvasLineJoin} lineJoin LineJoin.\n * @property {number} miterLimit MiterLimit.\n */\n/**\n * @classdesc\n * Set regular shape style for vector features. The resulting shape will be\n * a regular polygon when `radius` is provided, or a star when `radius1` and\n * `radius2` are provided.\n * @api\n */\nvar RegularShape = /** @class */ (function (_super) {\n __extends(RegularShape, _super);\n /**\n * @param {Options} options Options.\n */\n function RegularShape(options) {\n var _this = this;\n /**\n * @type {boolean}\n */\n var rotateWithView = options.rotateWithView !== undefined ? options.rotateWithView : false;\n _this = _super.call(this, {\n opacity: 1,\n rotateWithView: rotateWithView,\n rotation: options.rotation !== undefined ? options.rotation : 0,\n scale: options.scale !== undefined ? options.scale : 1,\n displacement: options.displacement !== undefined ? options.displacement : [0, 0],\n }) || this;\n /**\n * @private\n * @type {Object}\n */\n _this.canvas_ = undefined;\n /**\n * @private\n * @type {HTMLCanvasElement}\n */\n _this.hitDetectionCanvas_ = null;\n /**\n * @private\n * @type {import(\"./Fill.js\").default}\n */\n _this.fill_ = options.fill !== undefined ? options.fill : null;\n /**\n * @private\n * @type {Array}\n */\n _this.origin_ = [0, 0];\n /**\n * @private\n * @type {number}\n */\n _this.points_ = options.points;\n /**\n * @protected\n * @type {number}\n */\n _this.radius_ =\n options.radius !== undefined ? options.radius : options.radius1;\n /**\n * @private\n * @type {number|undefined}\n */\n _this.radius2_ = options.radius2;\n /**\n * @private\n * @type {number}\n */\n _this.angle_ = options.angle !== undefined ? options.angle : 0;\n /**\n * @private\n * @type {import(\"./Stroke.js\").default}\n */\n _this.stroke_ = options.stroke !== undefined ? options.stroke : null;\n /**\n * @private\n * @type {Array}\n */\n _this.anchor_ = null;\n /**\n * @private\n * @type {import(\"../size.js\").Size}\n */\n _this.size_ = null;\n /**\n * @private\n * @type {RenderOptions}\n */\n _this.renderOptions_ = null;\n _this.render();\n return _this;\n }\n /**\n * Clones the style.\n * @return {RegularShape} The cloned style.\n * @api\n */\n RegularShape.prototype.clone = function () {\n var scale = this.getScale();\n var style = new RegularShape({\n fill: this.getFill() ? this.getFill().clone() : undefined,\n points: this.getPoints(),\n radius: this.getRadius(),\n radius2: this.getRadius2(),\n angle: this.getAngle(),\n stroke: this.getStroke() ? this.getStroke().clone() : undefined,\n rotation: this.getRotation(),\n rotateWithView: this.getRotateWithView(),\n scale: Array.isArray(scale) ? scale.slice() : scale,\n displacement: this.getDisplacement().slice(),\n });\n style.setOpacity(this.getOpacity());\n return style;\n };\n /**\n * Get the anchor point in pixels. The anchor determines the center point for the\n * symbolizer.\n * @return {Array} Anchor.\n * @api\n */\n RegularShape.prototype.getAnchor = function () {\n return this.anchor_;\n };\n /**\n * Get the angle used in generating the shape.\n * @return {number} Shape's rotation in radians.\n * @api\n */\n RegularShape.prototype.getAngle = function () {\n return this.angle_;\n };\n /**\n * Get the fill style for the shape.\n * @return {import(\"./Fill.js\").default} Fill style.\n * @api\n */\n RegularShape.prototype.getFill = function () {\n return this.fill_;\n };\n /**\n * @return {HTMLCanvasElement} Image element.\n */\n RegularShape.prototype.getHitDetectionImage = function () {\n if (!this.hitDetectionCanvas_) {\n this.createHitDetectionCanvas_(this.renderOptions_);\n }\n return this.hitDetectionCanvas_;\n };\n /**\n * Get the image icon.\n * @param {number} pixelRatio Pixel ratio.\n * @return {HTMLCanvasElement} Image or Canvas element.\n * @api\n */\n RegularShape.prototype.getImage = function (pixelRatio) {\n var image = this.canvas_[pixelRatio];\n if (!image) {\n var renderOptions = this.renderOptions_;\n var context = createCanvasContext2D(renderOptions.size * pixelRatio, renderOptions.size * pixelRatio);\n this.draw_(renderOptions, context, pixelRatio);\n image = context.canvas;\n this.canvas_[pixelRatio] = image;\n }\n return image;\n };\n /**\n * Get the image pixel ratio.\n * @param {number} pixelRatio Pixel ratio.\n * @return {number} Pixel ratio.\n */\n RegularShape.prototype.getPixelRatio = function (pixelRatio) {\n return pixelRatio;\n };\n /**\n * @return {import(\"../size.js\").Size} Image size.\n */\n RegularShape.prototype.getImageSize = function () {\n return this.size_;\n };\n /**\n * @return {import(\"../ImageState.js\").default} Image state.\n */\n RegularShape.prototype.getImageState = function () {\n return ImageState.LOADED;\n };\n /**\n * Get the origin of the symbolizer.\n * @return {Array} Origin.\n * @api\n */\n RegularShape.prototype.getOrigin = function () {\n return this.origin_;\n };\n /**\n * Get the number of points for generating the shape.\n * @return {number} Number of points for stars and regular polygons.\n * @api\n */\n RegularShape.prototype.getPoints = function () {\n return this.points_;\n };\n /**\n * Get the (primary) radius for the shape.\n * @return {number} Radius.\n * @api\n */\n RegularShape.prototype.getRadius = function () {\n return this.radius_;\n };\n /**\n * Get the secondary radius for the shape.\n * @return {number|undefined} Radius2.\n * @api\n */\n RegularShape.prototype.getRadius2 = function () {\n return this.radius2_;\n };\n /**\n * Get the size of the symbolizer (in pixels).\n * @return {import(\"../size.js\").Size} Size.\n * @api\n */\n RegularShape.prototype.getSize = function () {\n return this.size_;\n };\n /**\n * Get the stroke style for the shape.\n * @return {import(\"./Stroke.js\").default} Stroke style.\n * @api\n */\n RegularShape.prototype.getStroke = function () {\n return this.stroke_;\n };\n /**\n * @param {function(import(\"../events/Event.js\").default): void} listener Listener function.\n */\n RegularShape.prototype.listenImageChange = function (listener) { };\n /**\n * Load not yet loaded URI.\n */\n RegularShape.prototype.load = function () { };\n /**\n * @param {function(import(\"../events/Event.js\").default): void} listener Listener function.\n */\n RegularShape.prototype.unlistenImageChange = function (listener) { };\n /**\n * Calculate additional canvas size needed for the miter.\n * @param {string} lineJoin Line join\n * @param {number} strokeWidth Stroke width\n * @param {number} miterLimit Miter limit\n * @return {number} Additional canvas size needed\n * @private\n */\n RegularShape.prototype.calculateLineJoinSize_ = function (lineJoin, strokeWidth, miterLimit) {\n if (strokeWidth === 0 ||\n this.points_ === Infinity ||\n (lineJoin !== 'bevel' && lineJoin !== 'miter')) {\n return strokeWidth;\n }\n // m | ^\n // i | |\\ .\n // t >| #\\\n // e | |\\ \\ .\n // r \\s\\\n // | \\t\\ . .\n // \\r\\ . .\n // | \\o\\ . . . . .\n // e \\k\\ . . . .\n // | \\e\\ . . . . .\n // d \\ \\ . . . .\n // | _ _a_ _\\# . . .\n // r1 / ` . .\n // | . .\n // b / . .\n // | . .\n // / r2 . .\n // | . .\n // / . .\n // |α . .\n // / . .\n // ° center\n var r1 = this.radius_;\n var r2 = this.radius2_ === undefined ? r1 : this.radius2_;\n if (r1 < r2) {\n var tmp = r1;\n r1 = r2;\n r2 = tmp;\n }\n var points = this.radius2_ === undefined ? this.points_ : this.points_ * 2;\n var alpha = (2 * Math.PI) / points;\n var a = r2 * Math.sin(alpha);\n var b = Math.sqrt(r2 * r2 - a * a);\n var d = r1 - b;\n var e = Math.sqrt(a * a + d * d);\n var miterRatio = e / a;\n if (lineJoin === 'miter' && miterRatio <= miterLimit) {\n return miterRatio * strokeWidth;\n }\n // Calculate the distnce from center to the stroke corner where\n // it was cut short because of the miter limit.\n // l\n // ----+---- <= distance from center to here is maxr\n // /####|k ##\\\n // /#####^#####\\\n // /#### /+\\# s #\\\n // /### h/+++\\# t #\\\n // /### t/+++++\\# r #\\\n // /### a/+++++++\\# o #\\\n // /### p/++ fill +\\# k #\\\n ///#### /+++++^+++++\\# e #\\\n //#####/+++++/+\\+++++\\#####\\\n var k = strokeWidth / 2 / miterRatio;\n var l = (strokeWidth / 2) * (d / e);\n var maxr = Math.sqrt((r1 + k) * (r1 + k) + l * l);\n var bevelAdd = maxr - r1;\n if (this.radius2_ === undefined || lineJoin === 'bevel') {\n return bevelAdd * 2;\n }\n // If outer miter is over the miter limit the inner miter may reach through the\n // center and be longer than the bevel, same calculation as above but swap r1 / r2.\n var aa = r1 * Math.sin(alpha);\n var bb = Math.sqrt(r1 * r1 - aa * aa);\n var dd = r2 - bb;\n var ee = Math.sqrt(aa * aa + dd * dd);\n var innerMiterRatio = ee / aa;\n if (innerMiterRatio <= miterLimit) {\n var innerLength = (innerMiterRatio * strokeWidth) / 2 - r2 - r1;\n return 2 * Math.max(bevelAdd, innerLength);\n }\n return bevelAdd * 2;\n };\n /**\n * @return {RenderOptions} The render options\n * @protected\n */\n RegularShape.prototype.createRenderOptions = function () {\n var lineJoin = defaultLineJoin;\n var miterLimit = 0;\n var lineDash = null;\n var lineDashOffset = 0;\n var strokeStyle;\n var strokeWidth = 0;\n if (this.stroke_) {\n strokeStyle = this.stroke_.getColor();\n if (strokeStyle === null) {\n strokeStyle = defaultStrokeStyle;\n }\n strokeStyle = asColorLike(strokeStyle);\n strokeWidth = this.stroke_.getWidth();\n if (strokeWidth === undefined) {\n strokeWidth = defaultLineWidth;\n }\n lineDash = this.stroke_.getLineDash();\n lineDashOffset = this.stroke_.getLineDashOffset();\n lineJoin = this.stroke_.getLineJoin();\n if (lineJoin === undefined) {\n lineJoin = defaultLineJoin;\n }\n miterLimit = this.stroke_.getMiterLimit();\n if (miterLimit === undefined) {\n miterLimit = defaultMiterLimit;\n }\n }\n var add = this.calculateLineJoinSize_(lineJoin, strokeWidth, miterLimit);\n var maxRadius = Math.max(this.radius_, this.radius2_ || 0);\n var size = Math.ceil(2 * maxRadius + add);\n return {\n strokeStyle: strokeStyle,\n strokeWidth: strokeWidth,\n size: size,\n lineDash: lineDash,\n lineDashOffset: lineDashOffset,\n lineJoin: lineJoin,\n miterLimit: miterLimit,\n };\n };\n /**\n * @protected\n */\n RegularShape.prototype.render = function () {\n this.renderOptions_ = this.createRenderOptions();\n var size = this.renderOptions_.size;\n var displacement = this.getDisplacement();\n this.canvas_ = {};\n this.anchor_ = [size / 2 - displacement[0], size / 2 + displacement[1]];\n this.size_ = [size, size];\n };\n /**\n * @private\n * @param {RenderOptions} renderOptions Render options.\n * @param {CanvasRenderingContext2D} context The rendering context.\n * @param {number} pixelRatio The pixel ratio.\n */\n RegularShape.prototype.draw_ = function (renderOptions, context, pixelRatio) {\n context.scale(pixelRatio, pixelRatio);\n // set origin to canvas center\n context.translate(renderOptions.size / 2, renderOptions.size / 2);\n this.createPath_(context);\n if (this.fill_) {\n var color = this.fill_.getColor();\n if (color === null) {\n color = defaultFillStyle;\n }\n context.fillStyle = asColorLike(color);\n context.fill();\n }\n if (this.stroke_) {\n context.strokeStyle = renderOptions.strokeStyle;\n context.lineWidth = renderOptions.strokeWidth;\n if (context.setLineDash && renderOptions.lineDash) {\n context.setLineDash(renderOptions.lineDash);\n context.lineDashOffset = renderOptions.lineDashOffset;\n }\n context.lineJoin = renderOptions.lineJoin;\n context.miterLimit = renderOptions.miterLimit;\n context.stroke();\n }\n };\n /**\n * @private\n * @param {RenderOptions} renderOptions Render options.\n */\n RegularShape.prototype.createHitDetectionCanvas_ = function (renderOptions) {\n if (this.fill_) {\n var color = this.fill_.getColor();\n // determine if fill is transparent (or pattern or gradient)\n var opacity = 0;\n if (typeof color === 'string') {\n color = asArray(color);\n }\n if (color === null) {\n opacity = 1;\n }\n else if (Array.isArray(color)) {\n opacity = color.length === 4 ? color[3] : 1;\n }\n if (opacity === 0) {\n // if a transparent fill style is set, create an extra hit-detection image\n // with a default fill style\n var context = createCanvasContext2D(renderOptions.size, renderOptions.size);\n this.hitDetectionCanvas_ = context.canvas;\n this.drawHitDetectionCanvas_(renderOptions, context);\n }\n }\n if (!this.hitDetectionCanvas_) {\n this.hitDetectionCanvas_ = this.getImage(1);\n }\n };\n /**\n * @private\n * @param {CanvasRenderingContext2D} context The context to draw in.\n */\n RegularShape.prototype.createPath_ = function (context) {\n var points = this.points_;\n var radius = this.radius_;\n if (points === Infinity) {\n context.arc(0, 0, radius, 0, 2 * Math.PI);\n }\n else {\n var radius2 = this.radius2_ === undefined ? radius : this.radius2_;\n if (this.radius2_ !== undefined) {\n points *= 2;\n }\n var startAngle = this.angle_ - Math.PI / 2;\n var step = (2 * Math.PI) / points;\n for (var i = 0; i < points; i++) {\n var angle0 = startAngle + i * step;\n var radiusC = i % 2 === 0 ? radius : radius2;\n context.lineTo(radiusC * Math.cos(angle0), radiusC * Math.sin(angle0));\n }\n context.closePath();\n }\n };\n /**\n * @private\n * @param {RenderOptions} renderOptions Render options.\n * @param {CanvasRenderingContext2D} context The context.\n */\n RegularShape.prototype.drawHitDetectionCanvas_ = function (renderOptions, context) {\n // set origin to canvas center\n context.translate(renderOptions.size / 2, renderOptions.size / 2);\n this.createPath_(context);\n context.fillStyle = defaultFillStyle;\n context.fill();\n if (this.stroke_) {\n context.strokeStyle = renderOptions.strokeStyle;\n context.lineWidth = renderOptions.strokeWidth;\n if (renderOptions.lineDash) {\n context.setLineDash(renderOptions.lineDash);\n context.lineDashOffset = renderOptions.lineDashOffset;\n }\n context.lineJoin = renderOptions.lineJoin;\n context.miterLimit = renderOptions.miterLimit;\n context.stroke();\n }\n };\n return RegularShape;\n}(ImageStyle));\nexport default RegularShape;\n//# sourceMappingURL=RegularShape.js.map","/**\n * @module ol/style/Circle\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport RegularShape from './RegularShape.js';\n/**\n * @typedef {Object} Options\n * @property {import(\"./Fill.js\").default} [fill] Fill style.\n * @property {number} radius Circle radius.\n * @property {import(\"./Stroke.js\").default} [stroke] Stroke style.\n * @property {Array} [displacement=[0,0]] displacement\n * @property {number|import(\"../size.js\").Size} [scale=1] Scale. A two dimensional scale will produce an ellipse.\n * Unless two dimensional scaling is required a better result may be obtained with an appropriate setting for `radius`.\n * @property {number} [rotation=0] Rotation in radians\n * (positive rotation clockwise, meaningful only when used in conjunction with a two dimensional scale).\n * @property {boolean} [rotateWithView=false] Whether to rotate the shape with the view\n * (meaningful only when used in conjunction with a two dimensional scale).\n */\n/**\n * @classdesc\n * Set circle style for vector features.\n * @api\n */\nvar CircleStyle = /** @class */ (function (_super) {\n __extends(CircleStyle, _super);\n /**\n * @param {Options} [opt_options] Options.\n */\n function CircleStyle(opt_options) {\n var _this = this;\n var options = opt_options ? opt_options : {};\n _this = _super.call(this, {\n points: Infinity,\n fill: options.fill,\n radius: options.radius,\n stroke: options.stroke,\n scale: options.scale !== undefined ? options.scale : 1,\n rotation: options.rotation !== undefined ? options.rotation : 0,\n rotateWithView: options.rotateWithView !== undefined ? options.rotateWithView : false,\n displacement: options.displacement !== undefined ? options.displacement : [0, 0],\n }) || this;\n return _this;\n }\n /**\n * Clones the style.\n * @return {CircleStyle} The cloned style.\n * @api\n */\n CircleStyle.prototype.clone = function () {\n var scale = this.getScale();\n var style = new CircleStyle({\n fill: this.getFill() ? this.getFill().clone() : undefined,\n stroke: this.getStroke() ? this.getStroke().clone() : undefined,\n radius: this.getRadius(),\n scale: Array.isArray(scale) ? scale.slice() : scale,\n rotation: this.getRotation(),\n rotateWithView: this.getRotateWithView(),\n displacement: this.getDisplacement().slice(),\n });\n style.setOpacity(this.getOpacity());\n return style;\n };\n /**\n * Set the circle radius.\n *\n * @param {number} radius Circle radius.\n * @api\n */\n CircleStyle.prototype.setRadius = function (radius) {\n this.radius_ = radius;\n this.render();\n };\n return CircleStyle;\n}(RegularShape));\nexport default CircleStyle;\n//# sourceMappingURL=Circle.js.map","/**\n * @module ol/style/Fill\n */\n/**\n * @typedef {Object} Options\n * @property {import(\"../color.js\").Color|import(\"../colorlike.js\").ColorLike} [color=null] A color, gradient or pattern.\n * See {@link module:ol/color~Color} and {@link module:ol/colorlike~ColorLike} for possible formats.\n * Default null; if null, the Canvas/renderer default black will be used.\n */\n/**\n * @classdesc\n * Set fill style for vector features.\n * @api\n */\nvar Fill = /** @class */ (function () {\n /**\n * @param {Options} [opt_options] Options.\n */\n function Fill(opt_options) {\n var options = opt_options || {};\n /**\n * @private\n * @type {import(\"../color.js\").Color|import(\"../colorlike.js\").ColorLike}\n */\n this.color_ = options.color !== undefined ? options.color : null;\n }\n /**\n * Clones the style. The color is not cloned if it is an {@link module:ol/colorlike~ColorLike}.\n * @return {Fill} The cloned style.\n * @api\n */\n Fill.prototype.clone = function () {\n var color = this.getColor();\n return new Fill({\n color: Array.isArray(color) ? color.slice() : color || undefined,\n });\n };\n /**\n * Get the fill color.\n * @return {import(\"../color.js\").Color|import(\"../colorlike.js\").ColorLike} Color.\n * @api\n */\n Fill.prototype.getColor = function () {\n return this.color_;\n };\n /**\n * Set the color.\n *\n * @param {import(\"../color.js\").Color|import(\"../colorlike.js\").ColorLike} color Color.\n * @api\n */\n Fill.prototype.setColor = function (color) {\n this.color_ = color;\n };\n return Fill;\n}());\nexport default Fill;\n//# sourceMappingURL=Fill.js.map","/**\n * @module ol/style/Stroke\n */\n/**\n * @typedef {Object} Options\n * @property {import(\"../color.js\").Color|import(\"../colorlike.js\").ColorLike} [color] A color, gradient or pattern.\n * See {@link module:ol/color~Color} and {@link module:ol/colorlike~ColorLike} for possible formats.\n * Default null; if null, the Canvas/renderer default black will be used.\n * @property {CanvasLineCap} [lineCap='round'] Line cap style: `butt`, `round`, or `square`.\n * @property {CanvasLineJoin} [lineJoin='round'] Line join style: `bevel`, `round`, or `miter`.\n * @property {Array} [lineDash] Line dash pattern. Default is `null` (no dash).\n * Please note that Internet Explorer 10 and lower do not support the `setLineDash` method on\n * the `CanvasRenderingContext2D` and therefore this option will have no visual effect in these browsers.\n * @property {number} [lineDashOffset=0] Line dash offset.\n * @property {number} [miterLimit=10] Miter limit.\n * @property {number} [width] Width.\n */\n/**\n * @classdesc\n * Set stroke style for vector features.\n * Note that the defaults given are the Canvas defaults, which will be used if\n * option is not defined. The `get` functions return whatever was entered in\n * the options; they will not return the default.\n * @api\n */\nvar Stroke = /** @class */ (function () {\n /**\n * @param {Options} [opt_options] Options.\n */\n function Stroke(opt_options) {\n var options = opt_options || {};\n /**\n * @private\n * @type {import(\"../color.js\").Color|import(\"../colorlike.js\").ColorLike}\n */\n this.color_ = options.color !== undefined ? options.color : null;\n /**\n * @private\n * @type {CanvasLineCap|undefined}\n */\n this.lineCap_ = options.lineCap;\n /**\n * @private\n * @type {Array}\n */\n this.lineDash_ = options.lineDash !== undefined ? options.lineDash : null;\n /**\n * @private\n * @type {number|undefined}\n */\n this.lineDashOffset_ = options.lineDashOffset;\n /**\n * @private\n * @type {CanvasLineJoin|undefined}\n */\n this.lineJoin_ = options.lineJoin;\n /**\n * @private\n * @type {number|undefined}\n */\n this.miterLimit_ = options.miterLimit;\n /**\n * @private\n * @type {number|undefined}\n */\n this.width_ = options.width;\n }\n /**\n * Clones the style.\n * @return {Stroke} The cloned style.\n * @api\n */\n Stroke.prototype.clone = function () {\n var color = this.getColor();\n return new Stroke({\n color: Array.isArray(color) ? color.slice() : color || undefined,\n lineCap: this.getLineCap(),\n lineDash: this.getLineDash() ? this.getLineDash().slice() : undefined,\n lineDashOffset: this.getLineDashOffset(),\n lineJoin: this.getLineJoin(),\n miterLimit: this.getMiterLimit(),\n width: this.getWidth(),\n });\n };\n /**\n * Get the stroke color.\n * @return {import(\"../color.js\").Color|import(\"../colorlike.js\").ColorLike} Color.\n * @api\n */\n Stroke.prototype.getColor = function () {\n return this.color_;\n };\n /**\n * Get the line cap type for the stroke.\n * @return {CanvasLineCap|undefined} Line cap.\n * @api\n */\n Stroke.prototype.getLineCap = function () {\n return this.lineCap_;\n };\n /**\n * Get the line dash style for the stroke.\n * @return {Array} Line dash.\n * @api\n */\n Stroke.prototype.getLineDash = function () {\n return this.lineDash_;\n };\n /**\n * Get the line dash offset for the stroke.\n * @return {number|undefined} Line dash offset.\n * @api\n */\n Stroke.prototype.getLineDashOffset = function () {\n return this.lineDashOffset_;\n };\n /**\n * Get the line join type for the stroke.\n * @return {CanvasLineJoin|undefined} Line join.\n * @api\n */\n Stroke.prototype.getLineJoin = function () {\n return this.lineJoin_;\n };\n /**\n * Get the miter limit for the stroke.\n * @return {number|undefined} Miter limit.\n * @api\n */\n Stroke.prototype.getMiterLimit = function () {\n return this.miterLimit_;\n };\n /**\n * Get the stroke width.\n * @return {number|undefined} Width.\n * @api\n */\n Stroke.prototype.getWidth = function () {\n return this.width_;\n };\n /**\n * Set the color.\n *\n * @param {import(\"../color.js\").Color|import(\"../colorlike.js\").ColorLike} color Color.\n * @api\n */\n Stroke.prototype.setColor = function (color) {\n this.color_ = color;\n };\n /**\n * Set the line cap.\n *\n * @param {CanvasLineCap|undefined} lineCap Line cap.\n * @api\n */\n Stroke.prototype.setLineCap = function (lineCap) {\n this.lineCap_ = lineCap;\n };\n /**\n * Set the line dash.\n *\n * Please note that Internet Explorer 10 and lower [do not support][mdn] the\n * `setLineDash` method on the `CanvasRenderingContext2D` and therefore this\n * property will have no visual effect in these browsers.\n *\n * [mdn]: https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/setLineDash#Browser_compatibility\n *\n * @param {Array} lineDash Line dash.\n * @api\n */\n Stroke.prototype.setLineDash = function (lineDash) {\n this.lineDash_ = lineDash;\n };\n /**\n * Set the line dash offset.\n *\n * @param {number|undefined} lineDashOffset Line dash offset.\n * @api\n */\n Stroke.prototype.setLineDashOffset = function (lineDashOffset) {\n this.lineDashOffset_ = lineDashOffset;\n };\n /**\n * Set the line join.\n *\n * @param {CanvasLineJoin|undefined} lineJoin Line join.\n * @api\n */\n Stroke.prototype.setLineJoin = function (lineJoin) {\n this.lineJoin_ = lineJoin;\n };\n /**\n * Set the miter limit.\n *\n * @param {number|undefined} miterLimit Miter limit.\n * @api\n */\n Stroke.prototype.setMiterLimit = function (miterLimit) {\n this.miterLimit_ = miterLimit;\n };\n /**\n * Set the width.\n *\n * @param {number|undefined} width Width.\n * @api\n */\n Stroke.prototype.setWidth = function (width) {\n this.width_ = width;\n };\n return Stroke;\n}());\nexport default Stroke;\n//# sourceMappingURL=Stroke.js.map","/**\n * @module ol/style/Style\n */\nimport CircleStyle from './Circle.js';\nimport Fill from './Fill.js';\nimport GeometryType from '../geom/GeometryType.js';\nimport Stroke from './Stroke.js';\nimport { assert } from '../asserts.js';\n/**\n * A function that takes an {@link module:ol/Feature} and a `{number}`\n * representing the view's resolution. The function should return a\n * {@link module:ol/style/Style} or an array of them. This way e.g. a\n * vector layer can be styled. If the function returns `undefined`, the\n * feature will not be rendered.\n *\n * @typedef {function(import(\"../Feature.js\").FeatureLike, number):(Style|Array