From b7a37ec558bf12dda4603e40e7efbb96a87bf81e Mon Sep 17 00:00:00 2001 From: Juan24 Date: Tue, 21 Apr 2026 09:50:26 -0300 Subject: [PATCH 1/3] fix translations --- package-lock.json | 336 +++++++++++++++++++++++++++--- public/fonts/Poppins-Light.ttf | Bin 0 -> 159892 bytes public/fonts/Poppins-Medium.ttf | Bin 0 -> 156520 bytes public/fonts/Poppins-Regular.ttf | Bin 0 -> 158240 bytes public/fonts/Poppins-SemiBold.ttf | Bin 0 -> 155232 bytes public/js/332.js | 2 + public/js/332.js.map | 1 + public/js/418.js | 3 + public/js/418.js.LICENSE.txt | 1 + public/js/418.js.map | 1 + resources/lang/am.json | 46 ++-- resources/lang/ar.json | 9 +- resources/lang/bn.json | 50 +++-- resources/lang/de.json | 37 ++-- resources/lang/en.json | 5 +- resources/lang/es.json | 3 +- resources/lang/fr.json | 3 +- resources/lang/ht.json | 54 ++--- resources/lang/id.json | 37 ++-- resources/lang/it.json | 33 +-- resources/lang/ja.json | 11 +- resources/lang/my.json | 42 ++-- resources/lang/ne.json | 69 +++--- resources/lang/pt.json | 33 +-- resources/lang/ru.json | 33 +-- resources/lang/rw.json | 25 +-- resources/lang/sw.json | 37 ++-- resources/lang/th.json | 31 +-- resources/lang/tr.json | 33 +-- resources/lang/ur.json | 35 ++-- resources/lang/vi.json | 46 ++-- resources/lang/zh.json | 55 ++--- resources/lang/zh_CN.json | 33 +-- 33 files changed, 718 insertions(+), 386 deletions(-) create mode 100644 public/fonts/Poppins-Light.ttf create mode 100644 public/fonts/Poppins-Medium.ttf create mode 100644 public/fonts/Poppins-Regular.ttf create mode 100644 public/fonts/Poppins-SemiBold.ttf create mode 100644 public/js/332.js create mode 100644 public/js/332.js.map create mode 100644 public/js/418.js create mode 100644 public/js/418.js.LICENSE.txt create mode 100644 public/js/418.js.map diff --git a/package-lock.json b/package-lock.json index ccbc9db..47b51fe 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3123,6 +3123,22 @@ "postcss": "^8.1.0" } }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/axios": { "version": "0.27.2", "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", @@ -3693,13 +3709,19 @@ } }, "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.9.tgz", + "integrity": "sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==", "dev": true, + "license": "MIT", "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "get-intrinsic": "^1.3.0", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3720,14 +3742,14 @@ } }, "node_modules/call-bound": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", - "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", "dev": true, "license": "MIT", "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "get-intrinsic": "^1.2.6" + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" }, "engines": { "node": ">= 0.4" @@ -3795,9 +3817,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001669", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001669.tgz", - "integrity": "sha512-DlWzFDJqstqtIVx1zeSpIMLjunf5SmwOw0N2Ck/QSQdS8PLS4+9HrLaYei4w8BIAL7IB/UEDu889d8vhCTPA0w==", + "version": "1.0.30001788", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001788.tgz", + "integrity": "sha512-6q8HFp+lOQtcf7wBK+uEenxymVWkGKkjFpCvw5W25cmMwEDU45p1xQFBQv8JDlMMry7eNxyBaR+qxgmTUZkIRQ==", "dev": true, "funding": [ { @@ -3812,7 +3834,8 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" }, "node_modules/canvg": { "version": "3.0.10", @@ -3908,15 +3931,48 @@ } }, "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.7.tgz", + "integrity": "sha512-Mz9QMT5fJe7bKI7MH31UilT5cEK5EHHRCccw/YRFsRY47AuNgaV6HY3rscp0/I4Q+tTW/5zoqpSeRRI54TkDWA==", "dev": true, + "license": "MIT", "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1", + "to-buffer": "^1.2.2" + }, + "engines": { + "node": ">= 0.10" } }, + "node_modules/cipher-base/node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/cipher-base/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/circular-json": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", @@ -4872,6 +4928,24 @@ "node": ">= 10" } }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/define-lazy-prop": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", @@ -6077,6 +6151,22 @@ } } }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/form-data": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", @@ -6409,12 +6499,13 @@ } }, "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dev": true, + "license": "MIT", "dependencies": { - "get-intrinsic": "^1.1.1" + "es-define-property": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6433,6 +6524,22 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/hash-base": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", @@ -7118,6 +7225,19 @@ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-core-module": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", @@ -7290,6 +7410,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", @@ -8819,6 +8955,16 @@ "vue": "^2.5.18" } }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/postcss": { "version": "8.4.47", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", @@ -10207,6 +10353,24 @@ "node": ">= 0.8.0" } }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", @@ -10221,18 +10385,54 @@ "license": "ISC" }, "node_modules/sha.js": { - "version": "2.4.9", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.9.tgz", - "integrity": "sha512-G8zektVqbiPHrylgew9Zg1VRB1L/DtXNUVAM6q4QLy8NE3qtHlFXTf8VLL4k1Yl6c7NMjtZUTdXV+X44nFaT6A==", + "version": "2.4.12", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.12.tgz", + "integrity": "sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==", "dev": true, + "license": "(MIT AND BSD-3-Clause)", "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1", + "to-buffer": "^1.2.0" }, "bin": { "sha.js": "bin.js" + }, + "engines": { + "node": ">= 0.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/sha.js/node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/sha.js/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/shallow-clone": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", @@ -11024,6 +11224,49 @@ "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==", "dev": true }, + "node_modules/to-buffer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.2.2.tgz", + "integrity": "sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "isarray": "^2.0.5", + "safe-buffer": "^5.2.1", + "typed-array-buffer": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/to-buffer/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/to-buffer/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -11103,6 +11346,21 @@ "node": ">= 0.6" } }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", @@ -12254,6 +12512,28 @@ "which": "bin/which" } }, + "node_modules/which-typed-array": { + "version": "1.1.20", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.20.tgz", + "integrity": "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/wildcard": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", diff --git a/public/fonts/Poppins-Light.ttf b/public/fonts/Poppins-Light.ttf new file mode 100644 index 0000000000000000000000000000000000000000..bc36bcc2427a84e29e61ea7b634024072c04b206 GIT binary patch literal 159892 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 i=r(3491),n="undefined"==typeof window?r.g:window,s=["moz","webkit"],a="AnimationFrame",o=n["request"+a],u=n["cancel"+a]||n["cancelRequest"+a],h=0;!o&&h{t.exports=function(t){this.ok=!1,this.alpha=1,"#"==t.charAt(0)&&(t=t.substr(1,6)),t=(t=t.replace(/ /g,"")).toLowerCase();var e={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"00ffff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000000",blanchedalmond:"ffebcd",blue:"0000ff",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"00ffff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dodgerblue:"1e90ff",feldspar:"d19275",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"ff00ff",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgrey:"d3d3d3",lightgreen:"90ee90",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslateblue:"8470ff",lightslategray:"778899",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"00ff00",limegreen:"32cd32",linen:"faf0e6",magenta:"ff00ff",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370d8",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"d87093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"ff0000",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",violetred:"d02090",wheat:"f5deb3",white:"ffffff",whitesmoke:"f5f5f5",yellow:"ffff00",yellowgreen:"9acd32"};t=e[t]||t;for(var r=[{re:/^rgba\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3}),\s*((?:\d?\.)?\d)\)$/,example:["rgba(123, 234, 45, 0.8)","rgba(255,234,245,1.0)"],process:function(t){return[parseInt(t[1]),parseInt(t[2]),parseInt(t[3]),parseFloat(t[4])]}},{re:/^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/,example:["rgb(123, 234, 45)","rgb(255,234,245)"],process:function(t){return[parseInt(t[1]),parseInt(t[2]),parseInt(t[3])]}},{re:/^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,example:["#00ff00","336699"],process:function(t){return[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]}},{re:/^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,example:["#fb0","f0f"],process:function(t){return[parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16),parseInt(t[3]+t[3],16)]}}],i=0;i3&&(this.alpha=o[3]),this.ok=!0}}this.r=this.r<0||isNaN(this.r)?0:this.r>255?255:this.r,this.g=this.g<0||isNaN(this.g)?0:this.g>255?255:this.g,this.b=this.b<0||isNaN(this.b)?0:this.b>255?255:this.b,this.alpha=this.alpha<0?0:this.alpha>1||isNaN(this.alpha)?1:this.alpha,this.toRGB=function(){return"rgb("+this.r+", "+this.g+", "+this.b+")"},this.toRGBA=function(){return"rgba("+this.r+", "+this.g+", "+this.b+", "+this.alpha+")"},this.toHex=function(){var t=this.r.toString(16),e=this.g.toString(16),r=this.b.toString(16);return 1==t.length&&(t="0"+t),1==e.length&&(e="0"+e),1==r.length&&(r="0"+r),"#"+t+e+r},this.getHelpXML=function(){for(var t=new Array,i=0;i "+h.toRGB()+" -> "+h.toHex());u.appendChild(c),u.appendChild(l),o.appendChild(u)}catch(t){}return o}}},9306:(t,e,r)=>{"use strict";var i=r(4901),n=r(6823),s=TypeError;t.exports=function(t){if(i(t))return t;throw new s(n(t)+" is not a function")}},5548:(t,e,r)=>{"use strict";var i=r(3517),n=r(6823),s=TypeError;t.exports=function(t){if(i(t))return t;throw new s(n(t)+" is not a constructor")}},3506:(t,e,r)=>{"use strict";var i=r(3925),n=String,s=TypeError;t.exports=function(t){if(i(t))return t;throw new s("Can't set "+n(t)+" as a prototype")}},6469:(t,e,r)=>{"use strict";var i=r(8227),n=r(2360),s=r(4913).f,a=i("unscopables"),o=Array.prototype;void 0===o[a]&&s(o,a,{configurable:!0,value:n(null)}),t.exports=function(t){o[a][t]=!0}},7829:(t,e,r)=>{"use strict";var i=r(8183).charAt;t.exports=function(t,e,r){return e+(r?i(t,e).length:1)}},679:(t,e,r)=>{"use strict";var i=r(1625),n=TypeError;t.exports=function(t,e){if(i(e,t))return t;throw new n("Incorrect invocation")}},8551:(t,e,r)=>{"use strict";var i=r(34),n=String,s=TypeError;t.exports=function(t){if(i(t))return t;throw new s(n(t)+" is not an object")}},9617:(t,e,r)=>{"use strict";var i=r(5397),n=r(5610),s=r(6198),a=function(t){return function(e,r,a){var o=i(e),u=s(o);if(0===u)return!t&&-1;var h,c=n(a,u);if(t&&r!=r){for(;u>c;)if((h=o[c++])!=h)return!0}else for(;u>c;c++)if((t||c in o)&&o[c]===r)return t||c||0;return!t&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},4598:(t,e,r)=>{"use strict";var i=r(9039);t.exports=function(t,e){var r=[][t];return!!r&&i((function(){r.call(null,e||function(){return 1},1)}))}},926:(t,e,r)=>{"use strict";var i=r(9306),n=r(8981),s=r(7055),a=r(6198),o=TypeError,u="Reduce of empty array with no initial value",h=function(t){return function(e,r,h,c){var l=n(e),f=s(l),g=a(l);if(i(r),0===g&&h<2)throw new o(u);var p=t?g-1:0,d=t?-1:1;if(h<2)for(;;){if(p in f){c=f[p],p+=d;break}if(p+=d,t?p<0:g<=p)throw new o(u)}for(;t?p>=0:g>p;p+=d)p in f&&(c=r(c,f[p],p,l));return c}};t.exports={left:h(!1),right:h(!0)}},7680:(t,e,r)=>{"use strict";var i=r(9504);t.exports=i([].slice)},4428:(t,e,r)=>{"use strict";var i=r(8227)("iterator"),n=!1;try{var s=0,a={next:function(){return{done:!!s++}},return:function(){n=!0}};a[i]=function(){return this},Array.from(a,(function(){throw 2}))}catch(t){}t.exports=function(t,e){try{if(!e&&!n)return!1}catch(t){return!1}var r=!1;try{var s={};s[i]=function(){return{next:function(){return{done:r=!0}}}},t(s)}catch(t){}return r}},2195:(t,e,r)=>{"use strict";var i=r(9504),n=i({}.toString),s=i("".slice);t.exports=function(t){return s(n(t),8,-1)}},6955:(t,e,r)=>{"use strict";var i=r(2140),n=r(4901),s=r(2195),a=r(8227)("toStringTag"),o=Object,u="Arguments"===s(function(){return arguments}());t.exports=i?s:function(t){var e,r,i;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(r=function(t,e){try{return t[e]}catch(t){}}(e=o(t),a))?r:u?s(e):"Object"===(i=s(e))&&n(e.callee)?"Arguments":i}},7740:(t,e,r)=>{"use strict";var i=r(9297),n=r(5031),s=r(7347),a=r(4913);t.exports=function(t,e,r){for(var o=n(e),u=a.f,h=s.f,c=0;c{"use strict";var i=r(8227)("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(r){try{return e[i]=!1,"/./"[t](e)}catch(t){}}return!1}},2211:(t,e,r)=>{"use strict";var i=r(9039);t.exports=!i((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},2529:t=>{"use strict";t.exports=function(t,e){return{value:t,done:e}}},6699:(t,e,r)=>{"use strict";var i=r(3724),n=r(4913),s=r(6980);t.exports=i?function(t,e,r){return n.f(t,e,s(1,r))}:function(t,e,r){return t[e]=r,t}},6980:t=>{"use strict";t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},2106:(t,e,r)=>{"use strict";var i=r(283),n=r(4913);t.exports=function(t,e,r){return r.get&&i(r.get,e,{getter:!0}),r.set&&i(r.set,e,{setter:!0}),n.f(t,e,r)}},6840:(t,e,r)=>{"use strict";var i=r(4901),n=r(4913),s=r(283),a=r(9433);t.exports=function(t,e,r,o){o||(o={});var u=o.enumerable,h=void 0!==o.name?o.name:e;if(i(r)&&s(r,h,o),o.global)u?t[e]=r:a(e,r);else{try{o.unsafe?t[e]&&(u=!0):delete t[e]}catch(t){}u?t[e]=r:n.f(t,e,{value:r,enumerable:!1,configurable:!o.nonConfigurable,writable:!o.nonWritable})}return t}},9433:(t,e,r)=>{"use strict";var i=r(4576),n=Object.defineProperty;t.exports=function(t,e){try{n(i,t,{value:e,configurable:!0,writable:!0})}catch(r){i[t]=e}return e}},3724:(t,e,r)=>{"use strict";var i=r(9039);t.exports=!i((function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]}))},4055:(t,e,r)=>{"use strict";var i=r(4576),n=r(34),s=i.document,a=n(s)&&n(s.createElement);t.exports=function(t){return a?s.createElement(t):{}}},7400:t=>{"use strict";t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},9296:(t,e,r)=>{"use strict";var i=r(4055)("span").classList,n=i&&i.constructor&&i.constructor.prototype;t.exports=n===Object.prototype?void 0:n},8727:t=>{"use strict";t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},4265:(t,e,r)=>{"use strict";var i=r(2839);t.exports=/ipad|iphone|ipod/i.test(i)&&"undefined"!=typeof Pebble},9544:(t,e,r)=>{"use strict";var i=r(2839);t.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(i)},6193:(t,e,r)=>{"use strict";var i=r(4215);t.exports="NODE"===i},7860:(t,e,r)=>{"use strict";var i=r(2839);t.exports=/web0s(?!.*chrome)/i.test(i)},2839:(t,e,r)=>{"use strict";var i=r(4576).navigator,n=i&&i.userAgent;t.exports=n?String(n):""},9519:(t,e,r)=>{"use strict";var i,n,s=r(4576),a=r(2839),o=s.process,u=s.Deno,h=o&&o.versions||u&&u.version,c=h&&h.v8;c&&(n=(i=c.split("."))[0]>0&&i[0]<4?1:+(i[0]+i[1])),!n&&a&&(!(i=a.match(/Edge\/(\d+)/))||i[1]>=74)&&(i=a.match(/Chrome\/(\d+)/))&&(n=+i[1]),t.exports=n},4215:(t,e,r)=>{"use strict";var i=r(4576),n=r(2839),s=r(2195),a=function(t){return n.slice(0,t.length)===t};t.exports=a("Bun/")?"BUN":a("Cloudflare-Workers")?"CLOUDFLARE":a("Deno/")?"DENO":a("Node.js/")?"NODE":i.Bun&&"string"==typeof Bun.version?"BUN":i.Deno&&"object"==typeof Deno.version?"DENO":"process"===s(i.process)?"NODE":i.window&&i.document?"BROWSER":"REST"},6518:(t,e,r)=>{"use strict";var i=r(4576),n=r(7347).f,s=r(6699),a=r(6840),o=r(9433),u=r(7740),h=r(415);t.exports=function(t,e){var r,c,l,f,g,p=t.target,d=t.global,v=t.stat;if(r=d?i:v?i[p]||o(p,{}):i[p]&&i[p].prototype)for(c in e){if(f=e[c],l=t.dontCallGetSet?(g=n(r,c))&&g.value:r[c],!h(d?c:p+(v?".":"#")+c,t.forced)&&void 0!==l){if(typeof f==typeof l)continue;u(f,l)}(t.sham||l&&l.sham)&&s(f,"sham",!0),a(r,c,f,t)}}},9039:t=>{"use strict";t.exports=function(t){try{return!!t()}catch(t){return!0}}},9228:(t,e,r)=>{"use strict";r(7495);var i=r(9565),n=r(6840),s=r(7323),a=r(9039),o=r(8227),u=r(6699),h=o("species"),c=RegExp.prototype;t.exports=function(t,e,r,l){var f=o(t),g=!a((function(){var e={};return e[f]=function(){return 7},7!==""[t](e)})),p=g&&!a((function(){var e=!1,r=/a/;return"split"===t&&((r={}).constructor={},r.constructor[h]=function(){return r},r.flags="",r[f]=/./[f]),r.exec=function(){return e=!0,null},r[f](""),!e}));if(!g||!p||r){var d=/./[f],v=e(f,""[t],(function(t,e,r,n,a){var o=e.exec;return o===s||o===c.exec?g&&!a?{done:!0,value:i(d,e,r,n)}:{done:!0,value:i(t,r,e,n)}:{done:!1}}));n(String.prototype,t,v[0]),n(c,f,v[1])}l&&u(c[f],"sham",!0)}},8745:(t,e,r)=>{"use strict";var i=r(616),n=Function.prototype,s=n.apply,a=n.call;t.exports="object"==typeof Reflect&&Reflect.apply||(i?a.bind(s):function(){return a.apply(s,arguments)})},6080:(t,e,r)=>{"use strict";var i=r(7476),n=r(9306),s=r(616),a=i(i.bind);t.exports=function(t,e){return n(t),void 0===e?t:s?a(t,e):function(){return t.apply(e,arguments)}}},616:(t,e,r)=>{"use strict";var i=r(9039);t.exports=!i((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")}))},9565:(t,e,r)=>{"use strict";var i=r(616),n=Function.prototype.call;t.exports=i?n.bind(n):function(){return n.apply(n,arguments)}},350:(t,e,r)=>{"use strict";var i=r(3724),n=r(9297),s=Function.prototype,a=i&&Object.getOwnPropertyDescriptor,o=n(s,"name"),u=o&&"something"===function(){}.name,h=o&&(!i||i&&a(s,"name").configurable);t.exports={EXISTS:o,PROPER:u,CONFIGURABLE:h}},6706:(t,e,r)=>{"use strict";var i=r(9504),n=r(9306);t.exports=function(t,e,r){try{return i(n(Object.getOwnPropertyDescriptor(t,e)[r]))}catch(t){}}},7476:(t,e,r)=>{"use strict";var i=r(2195),n=r(9504);t.exports=function(t){if("Function"===i(t))return n(t)}},9504:(t,e,r)=>{"use strict";var i=r(616),n=Function.prototype,s=n.call,a=i&&n.bind.bind(s,s);t.exports=i?a:function(t){return function(){return s.apply(t,arguments)}}},7751:(t,e,r)=>{"use strict";var i=r(4576),n=r(4901);t.exports=function(t,e){return arguments.length<2?(r=i[t],n(r)?r:void 0):i[t]&&i[t][e];var r}},851:(t,e,r)=>{"use strict";var i=r(6955),n=r(5966),s=r(4117),a=r(6269),o=r(8227)("iterator");t.exports=function(t){if(!s(t))return n(t,o)||n(t,"@@iterator")||a[i(t)]}},81:(t,e,r)=>{"use strict";var i=r(9565),n=r(9306),s=r(8551),a=r(6823),o=r(851),u=TypeError;t.exports=function(t,e){var r=arguments.length<2?o(t):e;if(n(r))return s(i(r,t));throw new u(a(t)+" is not iterable")}},5966:(t,e,r)=>{"use strict";var i=r(9306),n=r(4117);t.exports=function(t,e){var r=t[e];return n(r)?void 0:i(r)}},2478:(t,e,r)=>{"use strict";var i=r(9504),n=r(8981),s=Math.floor,a=i("".charAt),o=i("".replace),u=i("".slice),h=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,c=/\$([$&'`]|\d{1,2})/g;t.exports=function(t,e,r,i,l,f){var g=r+t.length,p=i.length,d=c;return void 0!==l&&(l=n(l),d=h),o(f,d,(function(n,o){var h;switch(a(o,0)){case"$":return"$";case"&":return t;case"`":return u(e,0,r);case"'":return u(e,g);case"<":h=l[u(o,1,-1)];break;default:var c=+o;if(0===c)return n;if(c>p){var f=s(c/10);return 0===f?n:f<=p?void 0===i[f-1]?a(o,1):i[f-1]+a(o,1):n}h=i[c-1]}return void 0===h?"":h}))}},4576:function(t,e,r){"use strict";var i=function(t){return t&&t.Math===Math&&t};t.exports=i("object"==typeof globalThis&&globalThis)||i("object"==typeof window&&window)||i("object"==typeof self&&self)||i("object"==typeof r.g&&r.g)||i("object"==typeof this&&this)||function(){return this}()||Function("return this")()},9297:(t,e,r)=>{"use strict";var i=r(9504),n=r(8981),s=i({}.hasOwnProperty);t.exports=Object.hasOwn||function(t,e){return s(n(t),e)}},421:t=>{"use strict";t.exports={}},3138:t=>{"use strict";t.exports=function(t,e){try{1===arguments.length?console.error(t):console.error(t,e)}catch(t){}}},397:(t,e,r)=>{"use strict";var i=r(7751);t.exports=i("document","documentElement")},5917:(t,e,r)=>{"use strict";var i=r(3724),n=r(9039),s=r(4055);t.exports=!i&&!n((function(){return 7!==Object.defineProperty(s("div"),"a",{get:function(){return 7}}).a}))},7055:(t,e,r)=>{"use strict";var i=r(9504),n=r(9039),s=r(2195),a=Object,o=i("".split);t.exports=n((function(){return!a("z").propertyIsEnumerable(0)}))?function(t){return"String"===s(t)?o(t,""):a(t)}:a},3706:(t,e,r)=>{"use strict";var i=r(9504),n=r(4901),s=r(7629),a=i(Function.toString);n(s.inspectSource)||(s.inspectSource=function(t){return a(t)}),t.exports=s.inspectSource},1181:(t,e,r)=>{"use strict";var i,n,s,a=r(8622),o=r(4576),u=r(34),h=r(6699),c=r(9297),l=r(7629),f=r(6119),g=r(421),p="Object already initialized",d=o.TypeError,v=o.WeakMap;if(a||l.state){var y=l.state||(l.state=new v);y.get=y.get,y.has=y.has,y.set=y.set,i=function(t,e){if(y.has(t))throw new d(p);return e.facade=t,y.set(t,e),e},n=function(t){return y.get(t)||{}},s=function(t){return y.has(t)}}else{var m=f("state");g[m]=!0,i=function(t,e){if(c(t,m))throw new d(p);return e.facade=t,h(t,m,e),e},n=function(t){return c(t,m)?t[m]:{}},s=function(t){return c(t,m)}}t.exports={set:i,get:n,has:s,enforce:function(t){return s(t)?n(t):i(t,{})},getterFor:function(t){return function(e){var r;if(!u(e)||(r=n(e)).type!==t)throw new d("Incompatible receiver, "+t+" required");return r}}}},4209:(t,e,r)=>{"use strict";var i=r(8227),n=r(6269),s=i("iterator"),a=Array.prototype;t.exports=function(t){return void 0!==t&&(n.Array===t||a[s]===t)}},4376:(t,e,r)=>{"use strict";var i=r(2195);t.exports=Array.isArray||function(t){return"Array"===i(t)}},4901:t=>{"use strict";var e="object"==typeof document&&document.all;t.exports=void 0===e&&void 0!==e?function(t){return"function"==typeof t||t===e}:function(t){return"function"==typeof t}},3517:(t,e,r)=>{"use strict";var i=r(9504),n=r(9039),s=r(4901),a=r(6955),o=r(7751),u=r(3706),h=function(){},c=o("Reflect","construct"),l=/^\s*(?:class|function)\b/,f=i(l.exec),g=!l.test(h),p=function(t){if(!s(t))return!1;try{return c(h,[],t),!0}catch(t){return!1}},d=function(t){if(!s(t))return!1;switch(a(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return g||!!f(l,u(t))}catch(t){return!0}};d.sham=!0,t.exports=!c||n((function(){var t;return p(p.call)||!p(Object)||!p((function(){t=!0}))||t}))?d:p},415:(t,e,r)=>{"use strict";var i=r(9039),n=r(4901),s=/#|\.prototype\./,a=function(t,e){var r=u[o(t)];return r===c||r!==h&&(n(e)?i(e):!!e)},o=a.normalize=function(t){return String(t).replace(s,".").toLowerCase()},u=a.data={},h=a.NATIVE="N",c=a.POLYFILL="P";t.exports=a},4117:t=>{"use strict";t.exports=function(t){return null==t}},34:(t,e,r)=>{"use strict";var i=r(4901);t.exports=function(t){return"object"==typeof t?null!==t:i(t)}},3925:(t,e,r)=>{"use strict";var i=r(34);t.exports=function(t){return i(t)||null===t}},6395:t=>{"use strict";t.exports=!1},788:(t,e,r)=>{"use strict";var i=r(34),n=r(2195),s=r(8227)("match");t.exports=function(t){var e;return i(t)&&(void 0!==(e=t[s])?!!e:"RegExp"===n(t))}},757:(t,e,r)=>{"use strict";var i=r(7751),n=r(4901),s=r(1625),a=r(7040),o=Object;t.exports=a?function(t){return"symbol"==typeof t}:function(t){var e=i("Symbol");return n(e)&&s(e.prototype,o(t))}},2652:(t,e,r)=>{"use strict";var i=r(6080),n=r(9565),s=r(8551),a=r(6823),o=r(4209),u=r(6198),h=r(1625),c=r(81),l=r(851),f=r(9539),g=TypeError,p=function(t,e){this.stopped=t,this.result=e},d=p.prototype;t.exports=function(t,e,r){var v,y,m,x,b,w,S,T=r&&r.that,O=!(!r||!r.AS_ENTRIES),A=!(!r||!r.IS_RECORD),C=!(!r||!r.IS_ITERATOR),E=!(!r||!r.INTERRUPTED),P=i(e,T),N=function(t){return v&&f(v,"normal",t),new p(!0,t)},M=function(t){return O?(s(t),E?P(t[0],t[1],N):P(t[0],t[1])):E?P(t,N):P(t)};if(A)v=t.iterator;else if(C)v=t;else{if(!(y=l(t)))throw new g(a(t)+" is not iterable");if(o(y)){for(m=0,x=u(t);x>m;m++)if((b=M(t[m]))&&h(d,b))return b;return new p(!1)}v=c(t,y)}for(w=A?t.next:v.next;!(S=n(w,v)).done;){try{b=M(S.value)}catch(t){f(v,"throw",t)}if("object"==typeof b&&b&&h(d,b))return b}return new p(!1)}},9539:(t,e,r)=>{"use strict";var i=r(9565),n=r(8551),s=r(5966);t.exports=function(t,e,r){var a,o;n(t);try{if(!(a=s(t,"return"))){if("throw"===e)throw r;return r}a=i(a,t)}catch(t){o=!0,a=t}if("throw"===e)throw r;if(o)throw a;return n(a),r}},3994:(t,e,r)=>{"use strict";var i=r(7657).IteratorPrototype,n=r(2360),s=r(6980),a=r(687),o=r(6269),u=function(){return this};t.exports=function(t,e,r,h){var c=e+" Iterator";return t.prototype=n(i,{next:s(+!h,r)}),a(t,c,!1,!0),o[c]=u,t}},1088:(t,e,r)=>{"use strict";var i=r(6518),n=r(9565),s=r(6395),a=r(350),o=r(4901),u=r(3994),h=r(2787),c=r(2967),l=r(687),f=r(6699),g=r(6840),p=r(8227),d=r(6269),v=r(7657),y=a.PROPER,m=a.CONFIGURABLE,x=v.IteratorPrototype,b=v.BUGGY_SAFARI_ITERATORS,w=p("iterator"),S="keys",T="values",O="entries",A=function(){return this};t.exports=function(t,e,r,a,p,v,C){u(r,e,a);var E,P,N,M=function(t){if(t===p&&I)return I;if(!b&&t&&t in V)return V[t];switch(t){case S:case T:case O:return function(){return new r(this,t)}}return function(){return new r(this)}},R=e+" Iterator",_=!1,V=t.prototype,k=V[w]||V["@@iterator"]||p&&V[p],I=!b&&k||M(p),L="Array"===e&&V.entries||k;if(L&&(E=h(L.call(new t)))!==Object.prototype&&E.next&&(s||h(E)===x||(c?c(E,x):o(E[w])||g(E,w,A)),l(E,R,!0,!0),s&&(d[R]=A)),y&&p===T&&k&&k.name!==T&&(!s&&m?f(V,"name",T):(_=!0,I=function(){return n(k,this)})),p)if(P={values:M(T),keys:v?I:M(S),entries:M(O)},C)for(N in P)(b||_||!(N in V))&&g(V,N,P[N]);else i({target:e,proto:!0,forced:b||_},P);return s&&!C||V[w]===I||g(V,w,I,{name:p}),d[e]=I,P}},7657:(t,e,r)=>{"use strict";var i,n,s,a=r(9039),o=r(4901),u=r(34),h=r(2360),c=r(2787),l=r(6840),f=r(8227),g=r(6395),p=f("iterator"),d=!1;[].keys&&("next"in(s=[].keys())?(n=c(c(s)))!==Object.prototype&&(i=n):d=!0),!u(i)||a((function(){var t={};return i[p].call(t)!==t}))?i={}:g&&(i=h(i)),o(i[p])||l(i,p,(function(){return this})),t.exports={IteratorPrototype:i,BUGGY_SAFARI_ITERATORS:d}},6269:t=>{"use strict";t.exports={}},6198:(t,e,r)=>{"use strict";var i=r(8014);t.exports=function(t){return i(t.length)}},283:(t,e,r)=>{"use strict";var i=r(9504),n=r(9039),s=r(4901),a=r(9297),o=r(3724),u=r(350).CONFIGURABLE,h=r(3706),c=r(1181),l=c.enforce,f=c.get,g=String,p=Object.defineProperty,d=i("".slice),v=i("".replace),y=i([].join),m=o&&!n((function(){return 8!==p((function(){}),"length",{value:8}).length})),x=String(String).split("String"),b=t.exports=function(t,e,r){"Symbol("===d(g(e),0,7)&&(e="["+v(g(e),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),r&&r.getter&&(e="get "+e),r&&r.setter&&(e="set "+e),(!a(t,"name")||u&&t.name!==e)&&(o?p(t,"name",{value:e,configurable:!0}):t.name=e),m&&r&&a(r,"arity")&&t.length!==r.arity&&p(t,"length",{value:r.arity});try{r&&a(r,"constructor")&&r.constructor?o&&p(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(t){}var i=l(t);return a(i,"source")||(i.source=y(x,"string"==typeof e?e:"")),t};Function.prototype.toString=b((function(){return s(this)&&f(this).source||h(this)}),"toString")},741:t=>{"use strict";var e=Math.ceil,r=Math.floor;t.exports=Math.trunc||function(t){var i=+t;return(i>0?r:e)(i)}},1955:(t,e,r)=>{"use strict";var i,n,s,a,o,u=r(4576),h=r(3389),c=r(6080),l=r(9225).set,f=r(8265),g=r(9544),p=r(4265),d=r(7860),v=r(6193),y=u.MutationObserver||u.WebKitMutationObserver,m=u.document,x=u.process,b=u.Promise,w=h("queueMicrotask");if(!w){var S=new f,T=function(){var t,e;for(v&&(t=x.domain)&&t.exit();e=S.get();)try{e()}catch(t){throw S.head&&i(),t}t&&t.enter()};g||v||d||!y||!m?!p&&b&&b.resolve?((a=b.resolve(void 0)).constructor=b,o=c(a.then,a),i=function(){o(T)}):v?i=function(){x.nextTick(T)}:(l=c(l,u),i=function(){l(T)}):(n=!0,s=m.createTextNode(""),new y(T).observe(s,{characterData:!0}),i=function(){s.data=n=!n}),w=function(t){S.head||i(),S.add(t)}}t.exports=w},6043:(t,e,r)=>{"use strict";var i=r(9306),n=TypeError,s=function(t){var e,r;this.promise=new t((function(t,i){if(void 0!==e||void 0!==r)throw new n("Bad Promise constructor");e=t,r=i})),this.resolve=i(e),this.reject=i(r)};t.exports.f=function(t){return new s(t)}},511:(t,e,r)=>{"use strict";var i=r(788),n=TypeError;t.exports=function(t){if(i(t))throw new n("The method doesn't accept regular expressions");return t}},2360:(t,e,r)=>{"use strict";var i,n=r(8551),s=r(6801),a=r(8727),o=r(421),u=r(397),h=r(4055),c=r(6119),l="prototype",f="script",g=c("IE_PROTO"),p=function(){},d=function(t){return"<"+f+">"+t+""},v=function(t){t.write(d("")),t.close();var e=t.parentWindow.Object;return t=null,e},y=function(){try{i=new ActiveXObject("htmlfile")}catch(t){}var t,e,r;y="undefined"!=typeof document?document.domain&&i?v(i):(e=h("iframe"),r="java"+f+":",e.style.display="none",u.appendChild(e),e.src=String(r),(t=e.contentWindow.document).open(),t.write(d("document.F=Object")),t.close(),t.F):v(i);for(var n=a.length;n--;)delete y[l][a[n]];return y()};o[g]=!0,t.exports=Object.create||function(t,e){var r;return null!==t?(p[l]=n(t),r=new p,p[l]=null,r[g]=t):r=y(),void 0===e?r:s.f(r,e)}},6801:(t,e,r)=>{"use strict";var i=r(3724),n=r(8686),s=r(4913),a=r(8551),o=r(5397),u=r(1072);e.f=i&&!n?Object.defineProperties:function(t,e){a(t);for(var r,i=o(e),n=u(e),h=n.length,c=0;h>c;)s.f(t,r=n[c++],i[r]);return t}},4913:(t,e,r)=>{"use strict";var i=r(3724),n=r(5917),s=r(8686),a=r(8551),o=r(6969),u=TypeError,h=Object.defineProperty,c=Object.getOwnPropertyDescriptor,l="enumerable",f="configurable",g="writable";e.f=i?s?function(t,e,r){if(a(t),e=o(e),a(r),"function"==typeof t&&"prototype"===e&&"value"in r&&g in r&&!r[g]){var i=c(t,e);i&&i[g]&&(t[e]=r.value,r={configurable:f in r?r[f]:i[f],enumerable:l in r?r[l]:i[l],writable:!1})}return h(t,e,r)}:h:function(t,e,r){if(a(t),e=o(e),a(r),n)try{return h(t,e,r)}catch(t){}if("get"in r||"set"in r)throw new u("Accessors not supported");return"value"in r&&(t[e]=r.value),t}},7347:(t,e,r)=>{"use strict";var i=r(3724),n=r(9565),s=r(8773),a=r(6980),o=r(5397),u=r(6969),h=r(9297),c=r(5917),l=Object.getOwnPropertyDescriptor;e.f=i?l:function(t,e){if(t=o(t),e=u(e),c)try{return l(t,e)}catch(t){}if(h(t,e))return a(!n(s.f,t,e),t[e])}},8480:(t,e,r)=>{"use strict";var i=r(1828),n=r(8727).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return i(t,n)}},3717:(t,e)=>{"use strict";e.f=Object.getOwnPropertySymbols},2787:(t,e,r)=>{"use strict";var i=r(9297),n=r(4901),s=r(8981),a=r(6119),o=r(2211),u=a("IE_PROTO"),h=Object,c=h.prototype;t.exports=o?h.getPrototypeOf:function(t){var e=s(t);if(i(e,u))return e[u];var r=e.constructor;return n(r)&&e instanceof r?r.prototype:e instanceof h?c:null}},1625:(t,e,r)=>{"use strict";var i=r(9504);t.exports=i({}.isPrototypeOf)},1828:(t,e,r)=>{"use strict";var i=r(9504),n=r(9297),s=r(5397),a=r(9617).indexOf,o=r(421),u=i([].push);t.exports=function(t,e){var r,i=s(t),h=0,c=[];for(r in i)!n(o,r)&&n(i,r)&&u(c,r);for(;e.length>h;)n(i,r=e[h++])&&(~a(c,r)||u(c,r));return c}},1072:(t,e,r)=>{"use strict";var i=r(1828),n=r(8727);t.exports=Object.keys||function(t){return i(t,n)}},8773:(t,e)=>{"use strict";var r={}.propertyIsEnumerable,i=Object.getOwnPropertyDescriptor,n=i&&!r.call({1:2},1);e.f=n?function(t){var e=i(this,t);return!!e&&e.enumerable}:r},2967:(t,e,r)=>{"use strict";var i=r(6706),n=r(34),s=r(7750),a=r(3506);t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,r={};try{(t=i(Object.prototype,"__proto__","set"))(r,[]),e=r instanceof Array}catch(t){}return function(r,i){return s(r),a(i),n(r)?(e?t(r,i):r.__proto__=i,r):r}}():void 0)},4270:(t,e,r)=>{"use strict";var i=r(9565),n=r(4901),s=r(34),a=TypeError;t.exports=function(t,e){var r,o;if("string"===e&&n(r=t.toString)&&!s(o=i(r,t)))return o;if(n(r=t.valueOf)&&!s(o=i(r,t)))return o;if("string"!==e&&n(r=t.toString)&&!s(o=i(r,t)))return o;throw new a("Can't convert object to primitive value")}},5031:(t,e,r)=>{"use strict";var i=r(7751),n=r(9504),s=r(8480),a=r(3717),o=r(8551),u=n([].concat);t.exports=i("Reflect","ownKeys")||function(t){var e=s.f(o(t)),r=a.f;return r?u(e,r(t)):e}},1103:t=>{"use strict";t.exports=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}}},916:(t,e,r)=>{"use strict";var i=r(4576),n=r(550),s=r(4901),a=r(415),o=r(3706),u=r(8227),h=r(4215),c=r(6395),l=r(9519),f=n&&n.prototype,g=u("species"),p=!1,d=s(i.PromiseRejectionEvent),v=a("Promise",(function(){var t=o(n),e=t!==String(n);if(!e&&66===l)return!0;if(c&&(!f.catch||!f.finally))return!0;if(!l||l<51||!/native code/.test(t)){var r=new n((function(t){t(1)})),i=function(t){t((function(){}),(function(){}))};if((r.constructor={})[g]=i,!(p=r.then((function(){}))instanceof i))return!0}return!(e||"BROWSER"!==h&&"DENO"!==h||d)}));t.exports={CONSTRUCTOR:v,REJECTION_EVENT:d,SUBCLASSING:p}},550:(t,e,r)=>{"use strict";var i=r(4576);t.exports=i.Promise},3438:(t,e,r)=>{"use strict";var i=r(8551),n=r(34),s=r(6043);t.exports=function(t,e){if(i(t),n(e)&&e.constructor===t)return e;var r=s.f(t);return(0,r.resolve)(e),r.promise}},2918:(t,e,r)=>{"use strict";var i=r(550),n=r(4428),s=r(916).CONSTRUCTOR;t.exports=s||!n((function(t){i.all(t).then(void 0,(function(){}))}))},8265:t=>{"use strict";var e=function(){this.head=null,this.tail=null};e.prototype={add:function(t){var e={item:t,next:null},r=this.tail;r?r.next=e:this.head=e,this.tail=e},get:function(){var t=this.head;if(t)return null===(this.head=t.next)&&(this.tail=null),t.item}},t.exports=e},6682:(t,e,r)=>{"use strict";var i=r(9565),n=r(8551),s=r(4901),a=r(2195),o=r(7323),u=TypeError;t.exports=function(t,e){var r=t.exec;if(s(r)){var h=i(r,t,e);return null!==h&&n(h),h}if("RegExp"===a(t))return i(o,t,e);throw new u("RegExp#exec called on incompatible receiver")}},7323:(t,e,r)=>{"use strict";var i,n,s=r(9565),a=r(9504),o=r(655),u=r(7979),h=r(8429),c=r(5745),l=r(2360),f=r(1181).get,g=r(3635),p=r(8814),d=c("native-string-replace",String.prototype.replace),v=RegExp.prototype.exec,y=v,m=a("".charAt),x=a("".indexOf),b=a("".replace),w=a("".slice),S=(n=/b*/g,s(v,i=/a/,"a"),s(v,n,"a"),0!==i.lastIndex||0!==n.lastIndex),T=h.BROKEN_CARET,O=void 0!==/()??/.exec("")[1];(S||O||T||g||p)&&(y=function(t){var e,r,i,n,a,h,c,g=this,p=f(g),A=o(t),C=p.raw;if(C)return C.lastIndex=g.lastIndex,e=s(y,C,A),g.lastIndex=C.lastIndex,e;var E=p.groups,P=T&&g.sticky,N=s(u,g),M=g.source,R=0,_=A;if(P&&(N=b(N,"y",""),-1===x(N,"g")&&(N+="g"),_=w(A,g.lastIndex),g.lastIndex>0&&(!g.multiline||g.multiline&&"\n"!==m(A,g.lastIndex-1))&&(M="(?: "+M+")",_=" "+_,R++),r=new RegExp("^(?:"+M+")",N)),O&&(r=new RegExp("^"+M+"$(?!\\s)",N)),S&&(i=g.lastIndex),n=s(v,P?r:g,_),P?n?(n.input=w(n.input,R),n[0]=w(n[0],R),n.index=g.lastIndex,g.lastIndex+=n[0].length):g.lastIndex=0:S&&n&&(g.lastIndex=g.global?n.index+n[0].length:i),O&&n&&n.length>1&&s(d,n[0],r,(function(){for(a=1;a{"use strict";var i=r(8551);t.exports=function(){var t=i(this),e="";return t.hasIndices&&(e+="d"),t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.dotAll&&(e+="s"),t.unicode&&(e+="u"),t.unicodeSets&&(e+="v"),t.sticky&&(e+="y"),e}},1034:(t,e,r)=>{"use strict";var i=r(9565),n=r(9297),s=r(1625),a=r(7979),o=RegExp.prototype;t.exports=function(t){var e=t.flags;return void 0!==e||"flags"in o||n(t,"flags")||!s(o,t)?e:i(a,t)}},8429:(t,e,r)=>{"use strict";var i=r(9039),n=r(4576).RegExp,s=i((function(){var t=n("a","y");return t.lastIndex=2,null!==t.exec("abcd")})),a=s||i((function(){return!n("a","y").sticky})),o=s||i((function(){var t=n("^r","gy");return t.lastIndex=2,null!==t.exec("str")}));t.exports={BROKEN_CARET:o,MISSED_STICKY:a,UNSUPPORTED_Y:s}},3635:(t,e,r)=>{"use strict";var i=r(9039),n=r(4576).RegExp;t.exports=i((function(){var t=n(".","s");return!(t.dotAll&&t.test("\n")&&"s"===t.flags)}))},8814:(t,e,r)=>{"use strict";var i=r(9039),n=r(4576).RegExp;t.exports=i((function(){var t=n("(?b)","g");return"b"!==t.exec("b").groups.a||"bc"!=="b".replace(t,"$c")}))},7750:(t,e,r)=>{"use strict";var i=r(4117),n=TypeError;t.exports=function(t){if(i(t))throw new n("Can't call method on "+t);return t}},3389:(t,e,r)=>{"use strict";var i=r(4576),n=r(3724),s=Object.getOwnPropertyDescriptor;t.exports=function(t){if(!n)return i[t];var e=s(i,t);return e&&e.value}},7633:(t,e,r)=>{"use strict";var i=r(7751),n=r(2106),s=r(8227),a=r(3724),o=s("species");t.exports=function(t){var e=i(t);a&&e&&!e[o]&&n(e,o,{configurable:!0,get:function(){return this}})}},687:(t,e,r)=>{"use strict";var i=r(4913).f,n=r(9297),s=r(8227)("toStringTag");t.exports=function(t,e,r){t&&!r&&(t=t.prototype),t&&!n(t,s)&&i(t,s,{configurable:!0,value:e})}},6119:(t,e,r)=>{"use strict";var i=r(5745),n=r(3392),s=i("keys");t.exports=function(t){return s[t]||(s[t]=n(t))}},7629:(t,e,r)=>{"use strict";var i=r(6395),n=r(4576),s=r(9433),a="__core-js_shared__",o=t.exports=n[a]||s(a,{});(o.versions||(o.versions=[])).push({version:"3.40.0",mode:i?"pure":"global",copyright:"© 2014-2025 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.40.0/LICENSE",source:"https://github.com/zloirock/core-js"})},5745:(t,e,r)=>{"use strict";var i=r(7629);t.exports=function(t,e){return i[t]||(i[t]=e||{})}},2293:(t,e,r)=>{"use strict";var i=r(8551),n=r(5548),s=r(4117),a=r(8227)("species");t.exports=function(t,e){var r,o=i(t).constructor;return void 0===o||s(r=i(o)[a])?e:n(r)}},8183:(t,e,r)=>{"use strict";var i=r(9504),n=r(1291),s=r(655),a=r(7750),o=i("".charAt),u=i("".charCodeAt),h=i("".slice),c=function(t){return function(e,r){var i,c,l=s(a(e)),f=n(r),g=l.length;return f<0||f>=g?t?"":void 0:(i=u(l,f))<55296||i>56319||f+1===g||(c=u(l,f+1))<56320||c>57343?t?o(l,f):i:t?h(l,f,f+2):c-56320+(i-55296<<10)+65536}};t.exports={codeAt:c(!1),charAt:c(!0)}},706:(t,e,r)=>{"use strict";var i=r(350).PROPER,n=r(9039),s=r(7452);t.exports=function(t){return n((function(){return!!s[t]()||"​…᠎"!=="​…᠎"[t]()||i&&s[t].name!==t}))}},3802:(t,e,r)=>{"use strict";var i=r(9504),n=r(7750),s=r(655),a=r(7452),o=i("".replace),u=RegExp("^["+a+"]+"),h=RegExp("(^|[^"+a+"])["+a+"]+$"),c=function(t){return function(e){var r=s(n(e));return 1&t&&(r=o(r,u,"")),2&t&&(r=o(r,h,"$1")),r}};t.exports={start:c(1),end:c(2),trim:c(3)}},4495:(t,e,r)=>{"use strict";var i=r(9519),n=r(9039),s=r(4576).String;t.exports=!!Object.getOwnPropertySymbols&&!n((function(){var t=Symbol("symbol detection");return!s(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&i&&i<41}))},9225:(t,e,r)=>{"use strict";var i,n,s,a,o=r(4576),u=r(8745),h=r(6080),c=r(4901),l=r(9297),f=r(9039),g=r(397),p=r(7680),d=r(4055),v=r(2812),y=r(9544),m=r(6193),x=o.setImmediate,b=o.clearImmediate,w=o.process,S=o.Dispatch,T=o.Function,O=o.MessageChannel,A=o.String,C=0,E={},P="onreadystatechange";f((function(){i=o.location}));var N=function(t){if(l(E,t)){var e=E[t];delete E[t],e()}},M=function(t){return function(){N(t)}},R=function(t){N(t.data)},_=function(t){o.postMessage(A(t),i.protocol+"//"+i.host)};x&&b||(x=function(t){v(arguments.length,1);var e=c(t)?t:T(t),r=p(arguments,1);return E[++C]=function(){u(e,void 0,r)},n(C),C},b=function(t){delete E[t]},m?n=function(t){w.nextTick(M(t))}:S&&S.now?n=function(t){S.now(M(t))}:O&&!y?(a=(s=new O).port2,s.port1.onmessage=R,n=h(a.postMessage,a)):o.addEventListener&&c(o.postMessage)&&!o.importScripts&&i&&"file:"!==i.protocol&&!f(_)?(n=_,o.addEventListener("message",R,!1)):n=P in d("script")?function(t){g.appendChild(d("script"))[P]=function(){g.removeChild(this),N(t)}}:function(t){setTimeout(M(t),0)}),t.exports={set:x,clear:b}},5610:(t,e,r)=>{"use strict";var i=r(1291),n=Math.max,s=Math.min;t.exports=function(t,e){var r=i(t);return r<0?n(r+e,0):s(r,e)}},5397:(t,e,r)=>{"use strict";var i=r(7055),n=r(7750);t.exports=function(t){return i(n(t))}},1291:(t,e,r)=>{"use strict";var i=r(741);t.exports=function(t){var e=+t;return e!=e||0===e?0:i(e)}},8014:(t,e,r)=>{"use strict";var i=r(1291),n=Math.min;t.exports=function(t){var e=i(t);return e>0?n(e,9007199254740991):0}},8981:(t,e,r)=>{"use strict";var i=r(7750),n=Object;t.exports=function(t){return n(i(t))}},2777:(t,e,r)=>{"use strict";var i=r(9565),n=r(34),s=r(757),a=r(5966),o=r(4270),u=r(8227),h=TypeError,c=u("toPrimitive");t.exports=function(t,e){if(!n(t)||s(t))return t;var r,u=a(t,c);if(u){if(void 0===e&&(e="default"),r=i(u,t,e),!n(r)||s(r))return r;throw new h("Can't convert object to primitive value")}return void 0===e&&(e="number"),o(t,e)}},6969:(t,e,r)=>{"use strict";var i=r(2777),n=r(757);t.exports=function(t){var e=i(t,"string");return n(e)?e:e+""}},2140:(t,e,r)=>{"use strict";var i={};i[r(8227)("toStringTag")]="z",t.exports="[object z]"===String(i)},655:(t,e,r)=>{"use strict";var i=r(6955),n=String;t.exports=function(t){if("Symbol"===i(t))throw new TypeError("Cannot convert a Symbol value to a string");return n(t)}},6823:t=>{"use strict";var e=String;t.exports=function(t){try{return e(t)}catch(t){return"Object"}}},3392:(t,e,r)=>{"use strict";var i=r(9504),n=0,s=Math.random(),a=i(1..toString);t.exports=function(t){return"Symbol("+(void 0===t?"":t)+")_"+a(++n+s,36)}},7040:(t,e,r)=>{"use strict";var i=r(4495);t.exports=i&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},8686:(t,e,r)=>{"use strict";var i=r(3724),n=r(9039);t.exports=i&&n((function(){return 42!==Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},2812:t=>{"use strict";var e=TypeError;t.exports=function(t,r){if(t{"use strict";var i=r(4576),n=r(4901),s=i.WeakMap;t.exports=n(s)&&/native code/.test(String(s))},8227:(t,e,r)=>{"use strict";var i=r(4576),n=r(5745),s=r(9297),a=r(3392),o=r(4495),u=r(7040),h=i.Symbol,c=n("wks"),l=u?h.for||h:h&&h.withoutSetter||a;t.exports=function(t){return s(c,t)||(c[t]=o&&s(h,t)?h[t]:l("Symbol."+t)),c[t]}},7452:t=>{"use strict";t.exports="\t\n\v\f\r                 \u2028\u2029\ufeff"},5276:(t,e,r)=>{"use strict";var i=r(6518),n=r(7476),s=r(9617).indexOf,a=r(4598),o=n([].indexOf),u=!!o&&1/o([1],1,-0)<0;i({target:"Array",proto:!0,forced:u||!a("indexOf")},{indexOf:function(t){var e=arguments.length>1?arguments[1]:void 0;return u?o(this,t,e)||0:s(this,t,e)}})},3792:(t,e,r)=>{"use strict";var i=r(5397),n=r(6469),s=r(6269),a=r(1181),o=r(4913).f,u=r(1088),h=r(2529),c=r(6395),l=r(3724),f="Array Iterator",g=a.set,p=a.getterFor(f);t.exports=u(Array,"Array",(function(t,e){g(this,{type:f,target:i(t),index:0,kind:e})}),(function(){var t=p(this),e=t.target,r=t.index++;if(!e||r>=e.length)return t.target=null,h(void 0,!0);switch(t.kind){case"keys":return h(r,!1);case"values":return h(e[r],!1)}return h([r,e[r]],!1)}),"values");var d=s.Arguments=s.Array;if(n("keys"),n("values"),n("entries"),!c&&l&&"values"!==d.name)try{o(d,"name",{value:"values"})}catch(t){}},2712:(t,e,r)=>{"use strict";var i=r(6518),n=r(926).left,s=r(4598),a=r(9519);i({target:"Array",proto:!0,forced:!r(6193)&&a>79&&a<83||!s("reduce")},{reduce:function(t){var e=arguments.length;return n(this,t,e,e>1?arguments[1]:void 0)}})},2109:(t,e,r)=>{"use strict";var i=r(6518),n=r(9504),s=r(4376),a=n([].reverse),o=[1,2];i({target:"Array",proto:!0,forced:String(o)===String(o.reverse())},{reverse:function(){return s(this)&&(this.length=this.length),a(this)}})},6499:(t,e,r)=>{"use strict";var i=r(6518),n=r(9565),s=r(9306),a=r(6043),o=r(1103),u=r(2652);i({target:"Promise",stat:!0,forced:r(2918)},{all:function(t){var e=this,r=a.f(e),i=r.resolve,h=r.reject,c=o((function(){var r=s(e.resolve),a=[],o=0,c=1;u(t,(function(t){var s=o++,u=!1;c++,n(r,e,t).then((function(t){u||(u=!0,a[s]=t,--c||i(a))}),h)})),--c||i(a)}));return c.error&&h(c.value),r.promise}})},2003:(t,e,r)=>{"use strict";var i=r(6518),n=r(6395),s=r(916).CONSTRUCTOR,a=r(550),o=r(7751),u=r(4901),h=r(6840),c=a&&a.prototype;if(i({target:"Promise",proto:!0,forced:s,real:!0},{catch:function(t){return this.then(void 0,t)}}),!n&&u(a)){var l=o("Promise").prototype.catch;c.catch!==l&&h(c,"catch",l,{unsafe:!0})}},436:(t,e,r)=>{"use strict";var i,n,s,a=r(6518),o=r(6395),u=r(6193),h=r(4576),c=r(9565),l=r(6840),f=r(2967),g=r(687),p=r(7633),d=r(9306),v=r(4901),y=r(34),m=r(679),x=r(2293),b=r(9225).set,w=r(1955),S=r(3138),T=r(1103),O=r(8265),A=r(1181),C=r(550),E=r(916),P=r(6043),N="Promise",M=E.CONSTRUCTOR,R=E.REJECTION_EVENT,_=E.SUBCLASSING,V=A.getterFor(N),k=A.set,I=C&&C.prototype,L=C,D=I,B=h.TypeError,j=h.document,F=h.process,z=P.f,U=z,H=!!(j&&j.createEvent&&h.dispatchEvent),X="unhandledrejection",Y=function(t){var e;return!(!y(t)||!v(e=t.then))&&e},W=function(t,e){var r,i,n,s=e.value,a=1===e.state,o=a?t.ok:t.fail,u=t.resolve,h=t.reject,l=t.domain;try{o?(a||(2===e.rejection&&Z(e),e.rejection=1),!0===o?r=s:(l&&l.enter(),r=o(s),l&&(l.exit(),n=!0)),r===t.promise?h(new B("Promise-chain cycle")):(i=Y(r))?c(i,r,u,h):u(r)):h(s)}catch(t){l&&!n&&l.exit(),h(t)}},q=function(t,e){t.notified||(t.notified=!0,w((function(){for(var r,i=t.reactions;r=i.get();)W(r,t);t.notified=!1,e&&!t.rejection&&Q(t)})))},G=function(t,e,r){var i,n;H?((i=j.createEvent("Event")).promise=e,i.reason=r,i.initEvent(t,!1,!0),h.dispatchEvent(i)):i={promise:e,reason:r},!R&&(n=h["on"+t])?n(i):t===X&&S("Unhandled promise rejection",r)},Q=function(t){c(b,h,(function(){var e,r=t.facade,i=t.value;if($(t)&&(e=T((function(){u?F.emit("unhandledRejection",i,r):G(X,r,i)})),t.rejection=u||$(t)?2:1,e.error))throw e.value}))},$=function(t){return 1!==t.rejection&&!t.parent},Z=function(t){c(b,h,(function(){var e=t.facade;u?F.emit("rejectionHandled",e):G("rejectionhandled",e,t.value)}))},K=function(t,e,r){return function(i){t(e,i,r)}},J=function(t,e,r){t.done||(t.done=!0,r&&(t=r),t.value=e,t.state=2,q(t,!0))},tt=function(t,e,r){if(!t.done){t.done=!0,r&&(t=r);try{if(t.facade===e)throw new B("Promise can't be resolved itself");var i=Y(e);i?w((function(){var r={done:!1};try{c(i,e,K(tt,r,t),K(J,r,t))}catch(e){J(r,e,t)}})):(t.value=e,t.state=1,q(t,!1))}catch(e){J({done:!1},e,t)}}};if(M&&(D=(L=function(t){m(this,D),d(t),c(i,this);var e=V(this);try{t(K(tt,e),K(J,e))}catch(t){J(e,t)}}).prototype,(i=function(t){k(this,{type:N,done:!1,notified:!1,parent:!1,reactions:new O,rejection:!1,state:0,value:null})}).prototype=l(D,"then",(function(t,e){var r=V(this),i=z(x(this,L));return r.parent=!0,i.ok=!v(t)||t,i.fail=v(e)&&e,i.domain=u?F.domain:void 0,0===r.state?r.reactions.add(i):w((function(){W(i,r)})),i.promise})),n=function(){var t=new i,e=V(t);this.promise=t,this.resolve=K(tt,e),this.reject=K(J,e)},P.f=z=function(t){return t===L||undefined===t?new n(t):U(t)},!o&&v(C)&&I!==Object.prototype)){s=I.then,_||l(I,"then",(function(t,e){var r=this;return new L((function(t,e){c(s,r,t,e)})).then(t,e)}),{unsafe:!0});try{delete I.constructor}catch(t){}f&&f(I,D)}a({global:!0,constructor:!0,wrap:!0,forced:M},{Promise:L}),g(L,N,!1,!0),p(N)},3362:(t,e,r)=>{"use strict";r(436),r(6499),r(2003),r(7743),r(1481),r(280)},7743:(t,e,r)=>{"use strict";var i=r(6518),n=r(9565),s=r(9306),a=r(6043),o=r(1103),u=r(2652);i({target:"Promise",stat:!0,forced:r(2918)},{race:function(t){var e=this,r=a.f(e),i=r.reject,h=o((function(){var a=s(e.resolve);u(t,(function(t){n(a,e,t).then(r.resolve,i)}))}));return h.error&&i(h.value),r.promise}})},1481:(t,e,r)=>{"use strict";var i=r(6518),n=r(6043);i({target:"Promise",stat:!0,forced:r(916).CONSTRUCTOR},{reject:function(t){var e=n.f(this);return(0,e.reject)(t),e.promise}})},280:(t,e,r)=>{"use strict";var i=r(6518),n=r(7751),s=r(6395),a=r(550),o=r(916).CONSTRUCTOR,u=r(3438),h=n("Promise"),c=s&&!o;i({target:"Promise",stat:!0,forced:s||o},{resolve:function(t){return u(c&&this===h?a:this,t)}})},7495:(t,e,r)=>{"use strict";var i=r(6518),n=r(7323);i({target:"RegExp",proto:!0,forced:/./.exec!==n},{exec:n})},8781:(t,e,r)=>{"use strict";var i=r(350).PROPER,n=r(6840),s=r(8551),a=r(655),o=r(9039),u=r(1034),h="toString",c=RegExp.prototype,l=c[h],f=o((function(){return"/a/b"!==l.call({source:"a",flags:"b"})})),g=i&&l.name!==h;(f||g)&&n(c,h,(function(){var t=s(this);return"/"+a(t.source)+"/"+a(u(t))}),{unsafe:!0})},9449:(t,e,r)=>{"use strict";var i,n=r(6518),s=r(7476),a=r(7347).f,o=r(8014),u=r(655),h=r(511),c=r(7750),l=r(1436),f=r(6395),g=s("".slice),p=Math.min,d=l("endsWith");n({target:"String",proto:!0,forced:!!(f||d||(i=a(String.prototype,"endsWith"),!i||i.writable))&&!d},{endsWith:function(t){var e=u(c(this));h(t);var r=arguments.length>1?arguments[1]:void 0,i=e.length,n=void 0===r?i:p(o(r),i),s=u(t);return g(e,n-s.length,n)===s}})},1699:(t,e,r)=>{"use strict";var i=r(6518),n=r(9504),s=r(511),a=r(7750),o=r(655),u=r(1436),h=n("".indexOf);i({target:"String",proto:!0,forced:!u("includes")},{includes:function(t){return!!~h(o(a(this)),o(s(t)),arguments.length>1?arguments[1]:void 0)}})},1761:(t,e,r)=>{"use strict";var i=r(9565),n=r(9228),s=r(8551),a=r(4117),o=r(8014),u=r(655),h=r(7750),c=r(5966),l=r(7829),f=r(6682);n("match",(function(t,e,r){return[function(e){var r=h(this),n=a(e)?void 0:c(e,t);return n?i(n,e,r):new RegExp(e)[t](u(r))},function(t){var i=s(this),n=u(t),a=r(e,i,n);if(a.done)return a.value;if(!i.global)return f(i,n);var h=i.unicode;i.lastIndex=0;for(var c,g=[],p=0;null!==(c=f(i,n));){var d=u(c[0]);g[p]=d,""===d&&(i.lastIndex=l(n,o(i.lastIndex),h)),p++}return 0===p?null:g}]}))},5440:(t,e,r)=>{"use strict";var i=r(8745),n=r(9565),s=r(9504),a=r(9228),o=r(9039),u=r(8551),h=r(4901),c=r(4117),l=r(1291),f=r(8014),g=r(655),p=r(7750),d=r(7829),v=r(5966),y=r(2478),m=r(6682),x=r(8227)("replace"),b=Math.max,w=Math.min,S=s([].concat),T=s([].push),O=s("".indexOf),A=s("".slice),C="$0"==="a".replace(/./,"$0"),E=!!/./[x]&&""===/./[x]("a","$0");a("replace",(function(t,e,r){var s=E?"$":"$0";return[function(t,r){var i=p(this),s=c(t)?void 0:v(t,x);return s?n(s,t,i,r):n(e,g(i),t,r)},function(t,n){var a=u(this),o=g(t);if("string"==typeof n&&-1===O(n,s)&&-1===O(n,"$<")){var c=r(e,a,o,n);if(c.done)return c.value}var p=h(n);p||(n=g(n));var v,x=a.global;x&&(v=a.unicode,a.lastIndex=0);for(var C,E=[];null!==(C=m(a,o))&&(T(E,C),x);){""===g(C[0])&&(a.lastIndex=d(o,f(a.lastIndex),v))}for(var P,N="",M=0,R=0;R=M&&(N+=A(o,M,k)+_,M=k+V.length)}return N+A(o,M)}]}),!!o((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$")}))||!C||E)},744:(t,e,r)=>{"use strict";var i=r(9565),n=r(9504),s=r(9228),a=r(8551),o=r(4117),u=r(7750),h=r(2293),c=r(7829),l=r(8014),f=r(655),g=r(5966),p=r(6682),d=r(8429),v=r(9039),y=d.UNSUPPORTED_Y,m=Math.min,x=n([].push),b=n("".slice),w=!v((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var r="ab".split(t);return 2!==r.length||"a"!==r[0]||"b"!==r[1]})),S="c"==="abbc".split(/(b)*/)[1]||4!=="test".split(/(?:)/,-1).length||2!=="ab".split(/(?:ab)*/).length||4!==".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length;s("split",(function(t,e,r){var n="0".split(void 0,0).length?function(t,r){return void 0===t&&0===r?[]:i(e,this,t,r)}:e;return[function(e,r){var s=u(this),a=o(e)?void 0:g(e,t);return a?i(a,e,s,r):i(n,f(s),e,r)},function(t,i){var s=a(this),o=f(t);if(!S){var u=r(n,s,o,i,n!==e);if(u.done)return u.value}var g=h(s,RegExp),d=s.unicode,v=(s.ignoreCase?"i":"")+(s.multiline?"m":"")+(s.unicode?"u":"")+(y?"g":"y"),w=new g(y?"^(?:"+s.source+")":s,v),T=void 0===i?4294967295:i>>>0;if(0===T)return[];if(0===o.length)return null===p(w,o)?[o]:[];for(var O=0,A=0,C=[];A{"use strict";var i,n=r(6518),s=r(7476),a=r(7347).f,o=r(8014),u=r(655),h=r(511),c=r(7750),l=r(1436),f=r(6395),g=s("".slice),p=Math.min,d=l("startsWith");n({target:"String",proto:!0,forced:!!(f||d||(i=a(String.prototype,"startsWith"),!i||i.writable))&&!d},{startsWith:function(t){var e=u(c(this));h(t);var r=o(p(arguments.length>1?arguments[1]:void 0,e.length)),i=u(t);return g(e,r,r+i.length)===i}})},2762:(t,e,r)=>{"use strict";var i=r(6518),n=r(3802).trim;i({target:"String",proto:!0,forced:r(706)("trim")},{trim:function(){return n(this)}})},2953:(t,e,r)=>{"use strict";var i=r(4576),n=r(7400),s=r(9296),a=r(3792),o=r(6699),u=r(687),h=r(8227)("iterator"),c=a.values,l=function(t,e){if(t){if(t[h]!==c)try{o(t,h,c)}catch(e){t[h]=c}if(u(t,e,!0),n[e])for(var r in a)if(t[r]!==a[r])try{o(t,r,a[r])}catch(e){t[r]=a[r]}}};for(var f in n)l(i[f]&&i[f].prototype,f);l(s,"DOMTokenList")},7332:(t,e,r)=>{"use strict";r.r(e),r.d(e,{AElement:()=>fe,AnimateColorElement:()=>ae,AnimateElement:()=>se,AnimateTransformElement:()=>oe,BoundingBox:()=>Lt,CB1:()=>st,CB2:()=>at,CB3:()=>ot,CB4:()=>ut,Canvg:()=>He,CircleElement:()=>Wt,ClipPathElement:()=>Ne,DefsElement:()=>Jt,DescElement:()=>Le,Document:()=>Fe,Element:()=>Mt,EllipseElement:()=>qt,FeColorMatrixElement:()=>Ce,FeCompositeElement:()=>Ve,FeDropShadowElement:()=>Re,FeGaussianBlurElement:()=>ke,FeMorphologyElement:()=>_e,FilterElement:()=>Me,Font:()=>It,FontElement:()=>ue,FontFaceElement:()=>he,GElement:()=>te,GlyphElement:()=>Ft,GradientElement:()=>ee,ImageElement:()=>ye,LineElement:()=>Gt,LinearGradientElement:()=>re,MarkerElement:()=>Kt,MaskElement:()=>Ee,Matrix:()=>At,MissingGlyphElement:()=>ce,Mouse:()=>dt,PSEUDO_ZERO:()=>et,Parser:()=>wt,PathElement:()=>jt,PathParser:()=>Dt,PatternElement:()=>Zt,Point:()=>pt,PolygonElement:()=>$t,PolylineElement:()=>Qt,Property:()=>ft,QB1:()=>ht,QB2:()=>ct,QB3:()=>lt,RadialGradientElement:()=>ie,RectElement:()=>Yt,RenderedElement:()=>Bt,Rotate:()=>Tt,SVGElement:()=>Xt,SVGFontLoader:()=>xe,Scale:()=>Ot,Screen:()=>mt,Skew:()=>Ct,SkewX:()=>Et,SkewY:()=>Pt,StopElement:()=>ne,StyleElement:()=>be,SymbolElement:()=>me,TRefElement:()=>le,TSpanElement:()=>Ut,TextElement:()=>zt,TextPathElement:()=>de,TitleElement:()=>Ie,Transform:()=>Nt,Translate:()=>St,UnknownElement:()=>Rt,UseElement:()=>we,ViewPort:()=>gt,compressSpaces:()=>B,default:()=>He,getSelectorSpecificity:()=>tt,normalizeAttributeName:()=>H,normalizeColor:()=>Y,parseExternalUrl:()=>X,presets:()=>D,toNumbers:()=>z,trimLeft:()=>j,trimRight:()=>F,vectorMagnitude:()=>rt,vectorsAngle:()=>nt,vectorsRatio:()=>it});r(3362);function i(t,e,r,i,n,s,a){try{var o=t[s](a),u=o.value}catch(t){return void r(t)}o.done?e(u):Promise.resolve(u).then(i,n)}function n(t){return function(){var e=this,r=arguments;return new Promise((function(n,s){var a=t.apply(e,r);function o(t){i(a,n,s,o,u,"next",t)}function u(t){i(a,n,s,o,u,"throw",t)}o(void 0)}))}}r(1761),r(5440),r(1392),r(3792),r(2953);var s=r(2284);function a(t){var e=function(t,e){if("object"!=(0,s.A)(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var i=r.call(t,e||"default");if("object"!=(0,s.A)(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==(0,s.A)(e)?e:e+""}function o(t,e,r){return(e=a(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}r(2712),r(9449),r(744);var u=r(3146),h=(r(2762),r(2855)),c=(r(5276),r(1699),r(2109),function(t,e){return(c=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(t,e)});function l(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function r(){this.constructor=t}c(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}function f(t,e){var r=t[0],i=t[1];return[r*Math.cos(e)-i*Math.sin(e),r*Math.sin(e)+i*Math.cos(e)]}function g(){for(var t=[],e=0;et.phi1&&(t.phi2-=2*p),1===t.sweepFlag&&t.phi2i)return[];if(0===i)return[[t*r/(t*t+e*e),e*r/(t*t+e*e)]];var n=Math.sqrt(i);return[[(t*r+e*n)/(t*t+e*e),(e*r-t*n)/(t*t+e*e)],[(t*r-e*n)/(t*t+e*e),(e*r+t*n)/(t*t+e*e)]]}var y,m=Math.PI/180;function x(t,e,r){return(1-r)*t+r*e}function b(t,e,r,i){return t+Math.cos(i/180*p)*e+Math.sin(i/180*p)*r}function w(t,e,r,i){var n=1e-6,s=e-t,a=r-e,o=3*s+3*(i-r)-6*a,u=6*(a-s),h=3*s;return Math.abs(o)v&&(n.sweepFlag=+!n.sweepFlag),n}))}t.ROUND=function(t){function e(e){return Math.round(e*t)/t}return void 0===t&&(t=1e13),g(t),function(t){return void 0!==t.x1&&(t.x1=e(t.x1)),void 0!==t.y1&&(t.y1=e(t.y1)),void 0!==t.x2&&(t.x2=e(t.x2)),void 0!==t.y2&&(t.y2=e(t.y2)),void 0!==t.x&&(t.x=e(t.x)),void 0!==t.y&&(t.y=e(t.y)),void 0!==t.rX&&(t.rX=e(t.rX)),void 0!==t.rY&&(t.rY=e(t.rY)),t}},t.TO_ABS=e,t.TO_REL=function(){return n((function(t,e,r){return t.relative||(void 0!==t.x1&&(t.x1-=e),void 0!==t.y1&&(t.y1-=r),void 0!==t.x2&&(t.x2-=e),void 0!==t.y2&&(t.y2-=r),void 0!==t.x&&(t.x-=e),void 0!==t.y&&(t.y-=r),t.relative=!0),t}))},t.NORMALIZE_HVZ=function(t,e,r){return void 0===t&&(t=!0),void 0===e&&(e=!0),void 0===r&&(r=!0),n((function(i,n,s,a,o){if(isNaN(a)&&!(i.type&P.MOVE_TO))throw new Error("path must start with moveto");return e&&i.type&P.HORIZ_LINE_TO&&(i.type=P.LINE_TO,i.y=i.relative?0:s),r&&i.type&P.VERT_LINE_TO&&(i.type=P.LINE_TO,i.x=i.relative?0:n),t&&i.type&P.CLOSE_PATH&&(i.type=P.LINE_TO,i.x=i.relative?a-n:a,i.y=i.relative?o-s:o),i.type&P.ARC&&(0===i.rX||0===i.rY)&&(i.type=P.LINE_TO,delete i.rX,delete i.rY,delete i.xRot,delete i.lArcFlag,delete i.sweepFlag),i}))},t.NORMALIZE_ST=r,t.QT_TO_C=i,t.INFO=n,t.SANITIZE=function(t){void 0===t&&(t=0),g(t);var e=NaN,r=NaN,i=NaN,s=NaN;return n((function(n,a,o,u,h){var c=Math.abs,l=!1,f=0,g=0;if(n.type&P.SMOOTH_CURVE_TO&&(f=isNaN(e)?0:a-e,g=isNaN(r)?0:o-r),n.type&(P.CURVE_TO|P.SMOOTH_CURVE_TO)?(e=n.relative?a+n.x2:n.x2,r=n.relative?o+n.y2:n.y2):(e=NaN,r=NaN),n.type&P.SMOOTH_QUAD_TO?(i=isNaN(i)?a:2*a-i,s=isNaN(s)?o:2*o-s):n.type&P.QUAD_TO?(i=n.relative?a+n.x1:n.x1,s=n.relative?o+n.y1:n.y2):(i=NaN,s=NaN),n.type&P.LINE_COMMANDS||n.type&P.ARC&&(0===n.rX||0===n.rY||!n.lArcFlag)||n.type&P.CURVE_TO||n.type&P.SMOOTH_CURVE_TO||n.type&P.QUAD_TO||n.type&P.SMOOTH_QUAD_TO){var p=void 0===n.x?0:n.relative?n.x:n.x-a,d=void 0===n.y?0:n.relative?n.y:n.y-o;f=isNaN(i)?void 0===n.x1?f:n.relative?n.x:n.x1-a:i-a,g=isNaN(s)?void 0===n.y1?g:n.relative?n.y:n.y1-o:s-o;var v=void 0===n.x2?0:n.relative?n.x:n.x2-a,y=void 0===n.y2?0:n.relative?n.y:n.y2-o;c(p)<=t&&c(d)<=t&&c(f)<=t&&c(g)<=t&&c(v)<=t&&c(y)<=t&&(l=!0)}return n.type&P.CLOSE_PATH&&c(a-u)<=t&&c(o-h)<=t&&(l=!0),l?[]:n}))},t.MATRIX=s,t.ROTATE=function(t,e,r){void 0===e&&(e=0),void 0===r&&(r=0),g(t,e,r);var i=Math.sin(t),n=Math.cos(t);return s(n,i,-i,n,e-e*n+r*i,r-e*i-r*n)},t.TRANSLATE=function(t,e){return void 0===e&&(e=0),g(t,e),s(1,0,0,1,t,e)},t.SCALE=function(t,e){return void 0===e&&(e=t),g(t,e),s(t,0,0,e,0,0)},t.SKEW_X=function(t){return g(t),s(1,0,Math.atan(t),1,0,0)},t.SKEW_Y=function(t){return g(t),s(1,Math.atan(t),0,1,0,0)},t.X_AXIS_SYMMETRY=function(t){return void 0===t&&(t=0),g(t),s(-1,0,0,1,t,0)},t.Y_AXIS_SYMMETRY=function(t){return void 0===t&&(t=0),g(t),s(1,0,0,-1,0,t)},t.A_TO_C=function(){return n((function(t,e,r){return P.ARC===t.type?function(t,e,r){var i,n,s,a;t.cX||d(t,e,r);for(var o=Math.min(t.phi1,t.phi2),u=Math.max(t.phi1,t.phi2)-o,h=Math.ceil(u/90),c=new Array(h),l=e,g=r,p=0;po.maxX&&(o.maxX=t),to.maxY&&(o.maxY=t),tV&&u(S(r,n.x1,n.x2,n.x,V));for(var f=0,g=w(i,n.y1,n.y2,n.y);fV&&h(S(i,n.y1,n.y2,n.y,V))}if(n.type&P.ARC){u(n.x),h(n.y),d(n,r,i);for(var p=n.xRot/180*Math.PI,y=Math.cos(p)*n.rX,m=Math.sin(p)*n.rX,x=-Math.sin(p)*n.rY,T=Math.cos(p)*n.rY,O=n.phi1n.phi2?[n.phi2+360,n.phi1+360]:[n.phi2,n.phi1],A=O[0],C=O[1],E=function(t){var e=t[0],r=t[1],i=180*Math.atan2(r,e)/Math.PI;return iA&&VA&&Vu)throw new SyntaxError('Expected positive number, got "'+u+'" at index "'+n+'"')}else if((3===this.curArgs.length||4===this.curArgs.length)&&"0"!==this.curNumber&&"1"!==this.curNumber)throw new SyntaxError('Expected a flag, got "'+this.curNumber+'" at index "'+n+'"');this.curArgs.push(u),this.curArgs.length===N[this.curCommandType]&&(P.HORIZ_LINE_TO===this.curCommandType?i({type:P.HORIZ_LINE_TO,relative:this.curCommandRelative,x:u}):P.VERT_LINE_TO===this.curCommandType?i({type:P.VERT_LINE_TO,relative:this.curCommandRelative,y:u}):this.curCommandType===P.MOVE_TO||this.curCommandType===P.LINE_TO||this.curCommandType===P.SMOOTH_QUAD_TO?(i({type:this.curCommandType,relative:this.curCommandRelative,x:this.curArgs[0],y:this.curArgs[1]}),P.MOVE_TO===this.curCommandType&&(this.curCommandType=P.LINE_TO)):this.curCommandType===P.CURVE_TO?i({type:P.CURVE_TO,relative:this.curCommandRelative,x1:this.curArgs[0],y1:this.curArgs[1],x2:this.curArgs[2],y2:this.curArgs[3],x:this.curArgs[4],y:this.curArgs[5]}):this.curCommandType===P.SMOOTH_CURVE_TO?i({type:P.SMOOTH_CURVE_TO,relative:this.curCommandRelative,x2:this.curArgs[0],y2:this.curArgs[1],x:this.curArgs[2],y:this.curArgs[3]}):this.curCommandType===P.QUAD_TO?i({type:P.QUAD_TO,relative:this.curCommandRelative,x1:this.curArgs[0],y1:this.curArgs[1],x:this.curArgs[2],y:this.curArgs[3]}):this.curCommandType===P.ARC&&i({type:P.ARC,relative:this.curCommandRelative,rX:this.curArgs[0],rY:this.curArgs[1],xRot:this.curArgs[2],lArcFlag:this.curArgs[3],sweepFlag:this.curArgs[4],x:this.curArgs[5],y:this.curArgs[6]})),this.curNumber="",this.curNumberHasExpDigits=!1,this.curNumberHasExp=!1,this.curNumberHasDecimal=!1,this.canParseCommandOrComma=!0}if(!A(s))if(","===s&&this.canParseCommandOrComma)this.canParseCommandOrComma=!1;else if("+"!==s&&"-"!==s&&"."!==s)if(o)this.curNumber=s,this.curNumberHasDecimal=!1;else{if(0!==this.curArgs.length)throw new SyntaxError("Unterminated command at index "+n+".");if(!this.canParseCommandOrComma)throw new SyntaxError('Unexpected character "'+s+'" at index '+n+". Command cannot follow comma");if(this.canParseCommandOrComma=!1,"z"!==s&&"Z"!==s)if("h"===s||"H"===s)this.curCommandType=P.HORIZ_LINE_TO,this.curCommandRelative="h"===s;else if("v"===s||"V"===s)this.curCommandType=P.VERT_LINE_TO,this.curCommandRelative="v"===s;else if("m"===s||"M"===s)this.curCommandType=P.MOVE_TO,this.curCommandRelative="m"===s;else if("l"===s||"L"===s)this.curCommandType=P.LINE_TO,this.curCommandRelative="l"===s;else if("c"===s||"C"===s)this.curCommandType=P.CURVE_TO,this.curCommandRelative="c"===s;else if("s"===s||"S"===s)this.curCommandType=P.SMOOTH_CURVE_TO,this.curCommandRelative="s"===s;else if("q"===s||"Q"===s)this.curCommandType=P.QUAD_TO,this.curCommandRelative="q"===s;else if("t"===s||"T"===s)this.curCommandType=P.SMOOTH_QUAD_TO,this.curCommandRelative="t"===s;else{if("a"!==s&&"A"!==s)throw new SyntaxError('Unexpected character "'+s+'" at index '+n+".");this.curCommandType=P.ARC,this.curCommandRelative="a"===s}else e.push({type:P.CLOSE_PATH}),this.canParseCommandOrComma=!0,this.curCommandType=-1}else this.curNumber=s,this.curNumberHasDecimal="."===s}else this.curNumber+=s,this.curNumberHasDecimal=!0;else this.curNumber+=s;else this.curNumber+=s,this.curNumberHasExp=!0;else this.curNumber+=s,this.curNumberHasExpDigits=this.curNumberHasExp}return e},e.prototype.transform=function(t){return Object.create(this,{parse:{value:function(e,r){void 0===r&&(r=[]);for(var i=0,n=Object.getPrototypeOf(this).parse.call(this,e);i>>w;if(o[x+3]=Z,0!==Z){var K=255/Z;o[x]=(j*b>>>w)*K,o[x+1]=(F*b>>>w)*K,o[x+2]=(z*b>>>w)*K}else o[x]=o[x+1]=o[x+2]=0;j-=k,F-=L,z-=D,U-=B,k-=v.r,L-=v.g,D-=v.b,B-=v.a;var J=$+s+1;J=m+(J>>w,ht>0?(ht=255/ht,o[Et]=(pt*b>>>w)*ht,o[Et+1]=(dt*b>>>w)*ht,o[Et+2]=(vt*b>>>w)*ht):o[Et]=o[Et+1]=o[Et+2]=0,pt-=ct,dt-=lt,vt-=ft,yt-=gt,ct-=v.r,lt-=v.g,ft-=v.b,gt-=v.a,Et=st+((Et=Ct+l)0&&void 0!==arguments[0]?arguments[0]:{},e={window:null,ignoreAnimation:!0,ignoreMouse:!0,DOMParser:t,createCanvas:(t,e)=>new OffscreenCanvas(t,e),createImage:t=>n((function*(){var e=yield fetch(t),r=yield e.blob();return yield createImageBitmap(r)}))()};return"undefined"==typeof DOMParser&&void 0!==t||Reflect.deleteProperty(e,"DOMParser"),e},node:function(t){var{DOMParser:e,canvas:r,fetch:i}=t;return{window:null,ignoreAnimation:!0,ignoreMouse:!0,DOMParser:e,fetch:i,createCanvas:r.createCanvas,createImage:r.loadImage}}});function B(t){return t.replace(/(?!\u3000)\s+/gm," ")}function j(t){return t.replace(/^[\n \t]+/,"")}function F(t){return t.replace(/[\n \t]+$/,"")}function z(t){return((t||"").match(/-?(\d+(?:\.\d*(?:[eE][+-]?\d+)?)?|\.\d+)(?=\D|$)/gm)||[]).map(parseFloat)}var U=/^[A-Z-]+$/;function H(t){return U.test(t)?t.toLowerCase():t}function X(t){var e=/url\(('([^']+)'|"([^"]+)"|([^'")]+))\)/.exec(t)||[];return e[2]||e[3]||e[4]}function Y(t){if(!t.startsWith("rgb"))return t;var e=3;return t.replace(/\d+(\.\d+)?/g,((t,r)=>e--&&r?String(Math.round(parseFloat(t))):t))}var W=/(\[[^\]]+\])/g,q=/(#[^\s+>~.[:]+)/g,G=/(\.[^\s+>~.[:]+)/g,Q=/(::[^\s+>~.[:]+|:first-line|:first-letter|:before|:after)/gi,$=/(:[\w-]+\([^)]*\))/gi,Z=/(:[^\s+>~.[:]+)/g,K=/([^\s+>~.[:]+)/g;function J(t,e){var r=e.exec(t);return r?[t.replace(e," "),r.length]:[t,0]}function tt(t){var e=[0,0,0],r=t.replace(/:not\(([^)]*)\)/g," $1 ").replace(/{[\s\S]*/gm," "),i=0;return[r,i]=J(r,W),e[1]+=i,[r,i]=J(r,q),e[0]+=i,[r,i]=J(r,G),e[1]+=i,[r,i]=J(r,Q),e[2]+=i,[r,i]=J(r,$),e[1]+=i,[r,i]=J(r,Z),e[1]+=i,r=r.replace(/[*\s+>~]/g," ").replace(/[#.]/g," "),[r,i]=J(r,K),e[2]+=i,e.join("")}var et=1e-8;function rt(t){return Math.sqrt(Math.pow(t[0],2)+Math.pow(t[1],2))}function it(t,e){return(t[0]*e[0]+t[1]*e[1])/(rt(t)*rt(e))}function nt(t,e){return(t[0]*e[1]0&&void 0!==arguments[0]?arguments[0]:" ",{document:e,name:r}=this;return B(this.getString()).trim().split(t).map((t=>new ft(e,r,t)))}hasValue(t){var{value:e}=this;return null!==e&&""!==e&&(t||0!==e)&&void 0!==e}isString(t){var{value:e}=this,r="string"==typeof e;return r&&t?t.test(e):r}isUrlDefinition(){return this.isString(/^url\(/)}isPixels(){if(!this.hasValue())return!1;var t=this.getString();switch(!0){case t.endsWith("px"):case/^[0-9]+$/.test(t):return!0;default:return!1}}setValue(t){return this.value=t,this}getValue(t){return void 0===t||this.hasValue()?this.value:t}getNumber(t){if(!this.hasValue())return void 0===t?0:parseFloat(t);var{value:e}=this,r=parseFloat(e);return this.isString(/%$/)&&(r/=100),r}getString(t){return void 0===t||this.hasValue()?void 0===this.value?"":String(this.value):String(t)}getColor(t){var e=this.getString(t);return this.isNormalizedColor||(this.isNormalizedColor=!0,e=Y(e),this.value=e),e}getDpi(){return 96}getRem(){return this.document.rootEmSize}getEm(){return this.document.emSize}getUnits(){return this.getString().replace(/[0-9.-]/g,"")}getPixels(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!this.hasValue())return 0;var[r,i]="boolean"==typeof t?[void 0,t]:[t],{viewPort:n}=this.document.screen;switch(!0){case this.isString(/vmin$/):return this.getNumber()/100*Math.min(n.computeSize("x"),n.computeSize("y"));case this.isString(/vmax$/):return this.getNumber()/100*Math.max(n.computeSize("x"),n.computeSize("y"));case this.isString(/vw$/):return this.getNumber()/100*n.computeSize("x");case this.isString(/vh$/):return this.getNumber()/100*n.computeSize("y");case this.isString(/rem$/):return this.getNumber()*this.getRem();case this.isString(/em$/):return this.getNumber()*this.getEm();case this.isString(/ex$/):return this.getNumber()*this.getEm()/2;case this.isString(/px$/):return this.getNumber();case this.isString(/pt$/):return this.getNumber()*this.getDpi()*(1/72);case this.isString(/pc$/):return 15*this.getNumber();case this.isString(/cm$/):return this.getNumber()*this.getDpi()/2.54;case this.isString(/mm$/):return this.getNumber()*this.getDpi()/25.4;case this.isString(/in$/):return this.getNumber()*this.getDpi();case this.isString(/%$/)&&i:return this.getNumber()*this.getEm();case this.isString(/%$/):return this.getNumber()*n.computeSize(r);default:var s=this.getNumber();return e&&s<1?s*n.computeSize(r):s}}getMilliseconds(){return this.hasValue()?this.isString(/ms$/)?this.getNumber():1e3*this.getNumber():0}getRadians(){if(!this.hasValue())return 0;switch(!0){case this.isString(/deg$/):return this.getNumber()*(Math.PI/180);case this.isString(/grad$/):return this.getNumber()*(Math.PI/200);case this.isString(/rad$/):return this.getNumber();default:return this.getNumber()*(Math.PI/180)}}getDefinition(){var t=this.getString(),e=/#([^)'"]+)/.exec(t);return e&&(e=e[1]),e||(e=t),this.document.definitions[e]}getFillStyleDefinition(t,e){var r=this.getDefinition();if(!r)return null;if("function"==typeof r.createGradient)return r.createGradient(this.document.ctx,t,e);if("function"==typeof r.createPattern){if(r.getHrefAttribute().hasValue()){var i=r.getAttribute("patternTransform");r=r.getHrefAttribute().getDefinition(),i.hasValue()&&r.getAttribute("patternTransform",!0).setValue(i.value)}return r.createPattern(this.document.ctx,t,e)}return null}getTextBaseline(){return this.hasValue()?ft.textBaselineMapping[this.getString()]:null}addOpacity(t){for(var e=this.getColor(),r=e.length,i=0,n=0;n1&&void 0!==arguments[1]?arguments[1]:0,[r=e,i=e]=z(t);return new pt(r,i)}static parseScale(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,[r=e,i=r]=z(t);return new pt(r,i)}static parsePath(t){for(var e=z(t),r=e.length,i=[],n=0;n0}runEvents(){if(this.working){var{screen:t,events:e,eventElements:r}=this,{style:i}=t.ctx.canvas;i&&(i.cursor=""),e.forEach(((t,e)=>{for(var{run:i}=t,n=r[e];n;)i(n),n=n.parent})),this.events=[],this.eventElements=[]}}checkPath(t,e){if(this.working&&e){var{events:r,eventElements:i}=this;r.forEach(((r,n)=>{var{x:s,y:a}=r;!i[n]&&e.isPointInPath&&e.isPointInPath(s,a)&&(i[n]=t)}))}}checkBoundingBox(t,e){if(this.working&&e){var{events:r,eventElements:i}=this;r.forEach(((r,n)=>{var{x:s,y:a}=r;!i[n]&&e.isPointInBox(s,a)&&(i[n]=t)}))}}mapXY(t,e){for(var{window:r,ctx:i}=this.screen,n=new pt(t,e),s=i.canvas;s;)n.x-=s.offsetLeft,n.y-=s.offsetTop,s=s.offsetParent;return r.scrollX&&(n.x+=r.scrollX),r.scrollY&&(n.y+=r.scrollY),n}onClick(t){var{x:e,y:r}=this.mapXY(t.clientX,t.clientY);this.events.push({type:"onclick",x:e,y:r,run(t){t.onClick&&t.onClick()}})}onMouseMove(t){var{x:e,y:r}=this.mapXY(t.clientX,t.clientY);this.events.push({type:"onmousemove",x:e,y:r,run(t){t.onMouseMove&&t.onMouseMove()}})}}var vt="undefined"!=typeof window?window:null,yt="undefined"!=typeof fetch?fetch.bind(void 0):null;class mt{constructor(t){var{fetch:e=yt,window:r=vt}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.ctx=t,this.FRAMERATE=30,this.MAX_VIRTUAL_PIXELS=3e4,this.CLIENT_WIDTH=800,this.CLIENT_HEIGHT=600,this.viewPort=new gt,this.mouse=new dt(this),this.animations=[],this.waits=[],this.frameDuration=0,this.isReadyLock=!1,this.isFirstRender=!0,this.intervalId=null,this.window=r,this.fetch=e}wait(t){this.waits.push(t)}ready(){return this.readyPromise?this.readyPromise:Promise.resolve()}isReady(){if(this.isReadyLock)return!0;var t=this.waits.every((t=>t()));return t&&(this.waits=[],this.resolveReady&&this.resolveReady()),this.isReadyLock=t,t}setDefaults(t){t.strokeStyle="rgba(0,0,0,0)",t.lineCap="butt",t.lineJoin="miter",t.miterLimit=4}setViewBox(t){var{document:e,ctx:r,aspectRatio:i,width:n,desiredWidth:s,height:a,desiredHeight:o,minX:u=0,minY:h=0,refX:c,refY:l,clip:f=!1,clipX:g=0,clipY:p=0}=t,d=B(i).replace(/^defer\s/,""),[v,y]=d.split(" "),m=v||"xMidYMid",x=y||"meet",b=n/s,w=a/o,S=Math.min(b,w),T=Math.max(b,w),O=s,A=o;"meet"===x&&(O*=S,A*=S),"slice"===x&&(O*=T,A*=T);var C=new ft(e,"refX",c),E=new ft(e,"refY",l),P=C.hasValue()&&E.hasValue();if(P&&r.translate(-S*C.getPixels("x"),-S*E.getPixels("y")),f){var N=S*g,M=S*p;r.beginPath(),r.moveTo(N,M),r.lineTo(n,M),r.lineTo(n,a),r.lineTo(N,a),r.closePath(),r.clip()}if(!P){var R="meet"===x&&S===w,_="slice"===x&&T===w,V="meet"===x&&S===b,k="slice"===x&&T===b;m.startsWith("xMid")&&(R||_)&&r.translate(n/2-O/2,0),m.endsWith("YMid")&&(V||k)&&r.translate(0,a/2-A/2),m.startsWith("xMax")&&(R||_)&&r.translate(n-O,0),m.endsWith("YMax")&&(V||k)&&r.translate(0,a-A)}switch(!0){case"none"===m:r.scale(b,w);break;case"meet"===x:r.scale(S,S);break;case"slice"===x:r.scale(T,T)}r.translate(-u,-h)}start(t){var{enableRedraw:e=!1,ignoreMouse:r=!1,ignoreAnimation:i=!1,ignoreDimensions:n=!1,ignoreClear:s=!1,forceRedraw:a,scaleWidth:o,scaleHeight:h,offsetX:c,offsetY:l}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{FRAMERATE:f,mouse:g}=this,p=1e3/f;if(this.frameDuration=p,this.readyPromise=new Promise((t=>{this.resolveReady=t})),this.isReady()&&this.render(t,n,s,o,h,c,l),e){var d=Date.now(),v=d,y=0,m=()=>{d=Date.now(),(y=d-v)>=p&&(v=d-y%p,this.shouldUpdate(i,a)&&(this.render(t,n,s,o,h,c,l),g.runEvents())),this.intervalId=u(m)};r||g.start(),this.intervalId=u(m)}}stop(){this.intervalId&&(u.cancel(this.intervalId),this.intervalId=null),this.mouse.stop()}shouldUpdate(t,e){if(!t){var{frameDuration:r}=this;if(this.animations.reduce(((t,e)=>e.update(r)||t),!1))return!0}return!("function"!=typeof e||!e())||(!(this.isReadyLock||!this.isReady())||!!this.mouse.hasEvents())}render(t,e,r,i,n,s,a){var{CLIENT_WIDTH:o,CLIENT_HEIGHT:u,viewPort:h,ctx:c,isFirstRender:l}=this,f=c.canvas;h.clear(),f.width&&f.height?h.setCurrent(f.width,f.height):h.setCurrent(o,u);var g=t.getStyle("width"),p=t.getStyle("height");!e&&(l||"number"!=typeof i&&"number"!=typeof n)&&(g.hasValue()&&(f.width=g.getPixels("x"),f.style&&(f.style.width="".concat(f.width,"px"))),p.hasValue()&&(f.height=p.getPixels("y"),f.style&&(f.style.height="".concat(f.height,"px"))));var d=f.clientWidth||f.width,v=f.clientHeight||f.height;if(e&&g.hasValue()&&p.hasValue()&&(d=g.getPixels("x"),v=p.getPixels("y")),h.setCurrent(d,v),"number"==typeof s&&t.getAttribute("x",!0).setValue(s),"number"==typeof a&&t.getAttribute("y",!0).setValue(a),"number"==typeof i||"number"==typeof n){var y=z(t.getAttribute("viewBox").getString()),m=0,x=0;if("number"==typeof i){var b=t.getStyle("width");b.hasValue()?m=b.getPixels("x")/i:isNaN(y[2])||(m=y[2]/i)}if("number"==typeof n){var w=t.getStyle("height");w.hasValue()?x=w.getPixels("y")/n:isNaN(y[3])||(x=y[3]/n)}m||(m=x),x||(x=m),t.getAttribute("width",!0).setValue(i),t.getAttribute("height",!0).setValue(n);var S=t.getStyle("transform",!0,!0);S.setValue("".concat(S.getString()," scale(").concat(1/m,", ").concat(1/x,")"))}r||c.clearRect(0,0,d,v),t.render(c),l&&(this.isFirstRender=!1)}}mt.defaultWindow=vt,mt.defaultFetch=yt;var{defaultFetch:xt}=mt,bt="undefined"!=typeof DOMParser?DOMParser:null;class wt{constructor(){var{fetch:t=xt,DOMParser:e=bt}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.fetch=t,this.DOMParser=e}parse(t){var e=this;return n((function*(){return t.startsWith("<")?e.parseFromString(t):e.load(t)}))()}parseFromString(t){var e=new this.DOMParser;try{return this.checkDocument(e.parseFromString(t,"image/svg+xml"))}catch(r){return this.checkDocument(e.parseFromString(t,"text/xml"))}}checkDocument(t){var e=t.getElementsByTagName("parsererror")[0];if(e)throw new Error(e.textContent);return t}load(t){var e=this;return n((function*(){var r=yield e.fetch(t),i=yield r.text();return e.parseFromString(i)}))()}}class St{constructor(t,e){this.type="translate",this.point=null,this.point=pt.parse(e)}apply(t){var{x:e,y:r}=this.point;t.translate(e||0,r||0)}unapply(t){var{x:e,y:r}=this.point;t.translate(-1*e||0,-1*r||0)}applyToPoint(t){var{x:e,y:r}=this.point;t.applyTransform([1,0,0,1,e||0,r||0])}}class Tt{constructor(t,e,r){this.type="rotate",this.angle=null,this.originX=null,this.originY=null,this.cx=0,this.cy=0;var i=z(e);this.angle=new ft(t,"angle",i[0]),this.originX=r[0],this.originY=r[1],this.cx=i[1]||0,this.cy=i[2]||0}apply(t){var{cx:e,cy:r,originX:i,originY:n,angle:s}=this,a=e+i.getPixels("x"),o=r+n.getPixels("y");t.translate(a,o),t.rotate(s.getRadians()),t.translate(-a,-o)}unapply(t){var{cx:e,cy:r,originX:i,originY:n,angle:s}=this,a=e+i.getPixels("x"),o=r+n.getPixels("y");t.translate(a,o),t.rotate(-1*s.getRadians()),t.translate(-a,-o)}applyToPoint(t){var{cx:e,cy:r,angle:i}=this,n=i.getRadians();t.applyTransform([1,0,0,1,e||0,r||0]),t.applyTransform([Math.cos(n),Math.sin(n),-Math.sin(n),Math.cos(n),0,0]),t.applyTransform([1,0,0,1,-e||0,-r||0])}}class Ot{constructor(t,e,r){this.type="scale",this.scale=null,this.originX=null,this.originY=null;var i=pt.parseScale(e);0!==i.x&&0!==i.y||(i.x=et,i.y=et),this.scale=i,this.originX=r[0],this.originY=r[1]}apply(t){var{scale:{x:e,y:r},originX:i,originY:n}=this,s=i.getPixels("x"),a=n.getPixels("y");t.translate(s,a),t.scale(e,r||e),t.translate(-s,-a)}unapply(t){var{scale:{x:e,y:r},originX:i,originY:n}=this,s=i.getPixels("x"),a=n.getPixels("y");t.translate(s,a),t.scale(1/e,1/r||e),t.translate(-s,-a)}applyToPoint(t){var{x:e,y:r}=this.scale;t.applyTransform([e||0,0,0,r||0,0,0])}}class At{constructor(t,e,r){this.type="matrix",this.matrix=[],this.originX=null,this.originY=null,this.matrix=z(e),this.originX=r[0],this.originY=r[1]}apply(t){var{originX:e,originY:r,matrix:i}=this,n=e.getPixels("x"),s=r.getPixels("y");t.translate(n,s),t.transform(i[0],i[1],i[2],i[3],i[4],i[5]),t.translate(-n,-s)}unapply(t){var{originX:e,originY:r,matrix:i}=this,n=i[0],s=i[2],a=i[4],o=i[1],u=i[3],h=i[5],c=1/(n*(1*u-0*h)-s*(1*o-0*h)+a*(0*o-0*u)),l=e.getPixels("x"),f=r.getPixels("y");t.translate(l,f),t.transform(c*(1*u-0*h),c*(0*h-1*o),c*(0*a-1*s),c*(1*n-0*a),c*(s*h-a*u),c*(a*o-n*h)),t.translate(-l,-f)}applyToPoint(t){t.applyTransform(this.matrix)}}class Ct extends At{constructor(t,e,r){super(t,e,r),this.type="skew",this.angle=null,this.angle=new ft(t,"angle",e)}}class Et extends Ct{constructor(t,e,r){super(t,e,r),this.type="skewX",this.matrix=[1,0,Math.tan(this.angle.getRadians()),1,0,0]}}class Pt extends Ct{constructor(t,e,r){super(t,e,r),this.type="skewY",this.matrix=[1,Math.tan(this.angle.getRadians()),0,1,0,0]}}class Nt{constructor(t,e,r){this.document=t,this.transforms=[];var i=function(t){return B(t).trim().replace(/\)([a-zA-Z])/g,") $1").replace(/\)(\s?,\s?)/g,") ").split(/\s(?=[a-z])/)}(e);i.forEach((t=>{if("none"!==t){var[e,i]=function(t){var[e,r]=t.split("(");return[e.trim(),r.trim().replace(")","")]}(t),n=Nt.transformTypes[e];void 0!==n&&this.transforms.push(new n(this.document,i,r))}}))}static fromElement(t,e){var r=e.getStyle("transform",!1,!0),[i,n=i]=e.getStyle("transform-origin",!1,!0).split(),s=[i,n];return r.hasValue()?new Nt(t,r.getString(),s):null}apply(t){for(var{transforms:e}=this,r=e.length,i=0;i=0;r--)e[r].unapply(t)}applyToPoint(t){for(var{transforms:e}=this,r=e.length,i=0;i2&&void 0!==arguments[2]&&arguments[2];if(this.document=t,this.node=e,this.captureTextNodes=r,this.attributes={},this.styles={},this.stylesSpecificity={},this.animationFrozen=!1,this.animationFrozenValue="",this.parent=null,this.children=[],e&&1===e.nodeType){if(Array.from(e.attributes).forEach((e=>{var r=H(e.nodeName);this.attributes[r]=new ft(t,r,e.value)})),this.addStylesFromStyleDefinition(),this.getAttribute("style").hasValue()){var i=this.getAttribute("style").getString().split(";").map((t=>t.trim()));i.forEach((e=>{if(e){var[r,i]=e.split(":").map((t=>t.trim()));this.styles[r]=new ft(t,r,i)}}))}var{definitions:n}=t,s=this.getAttribute("id");s.hasValue()&&(n[s.getString()]||(n[s.getString()]=this)),Array.from(e.childNodes).forEach((e=>{if(1===e.nodeType)this.addChild(e);else if(r&&(3===e.nodeType||4===e.nodeType)){var i=t.createTextNode(e);i.getText().length>0&&this.addChild(i)}}))}}getAttribute(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=this.attributes[t];if(!r&&e){var i=new ft(this.document,t,"");return this.attributes[t]=i,i}return r||ft.empty(this.document)}getHrefAttribute(){for(var t in this.attributes)if("href"===t||t.endsWith(":href"))return this.attributes[t];return ft.empty(this.document)}getStyle(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=this.styles[t];if(i)return i;var n=this.getAttribute(t);if(null!=n&&n.hasValue())return this.styles[t]=n,n;if(!r){var{parent:s}=this;if(s){var a=s.getStyle(t);if(null!=a&&a.hasValue())return a}}if(e){var o=new ft(this.document,t,"");return this.styles[t]=o,o}return i||ft.empty(this.document)}render(t){if("none"!==this.getStyle("display").getString()&&"hidden"!==this.getStyle("visibility").getString()){if(t.save(),this.getStyle("mask").hasValue()){var e=this.getStyle("mask").getDefinition();e&&(this.applyEffects(t),e.apply(t,this))}else if("none"!==this.getStyle("filter").getValue("none")){var r=this.getStyle("filter").getDefinition();r&&(this.applyEffects(t),r.apply(t,this))}else this.setContext(t),this.renderChildren(t),this.clearContext(t);t.restore()}}setContext(t){}applyEffects(t){var e=Nt.fromElement(this.document,this);e&&e.apply(t);var r=this.getStyle("clip-path",!1,!0);if(r.hasValue()){var i=r.getDefinition();i&&i.apply(t)}}clearContext(t){}renderChildren(t){this.children.forEach((e=>{e.render(t)}))}addChild(t){var e=t instanceof Mt?t:this.document.createElement(t);e.parent=this,Mt.ignoreChildTypes.includes(e.type)||this.children.push(e)}matchesSelector(t){var e,{node:r}=this;if("function"==typeof r.matches)return r.matches(t);var i=null===(e=r.getAttribute)||void 0===e?void 0:e.call(r,"class");return!(!i||""===i)&&i.split(" ").some((e=>".".concat(e)===t))}addStylesFromStyleDefinition(){var{styles:t,stylesSpecificity:e}=this.document;for(var r in t)if(!r.startsWith("@")&&this.matchesSelector(r)){var i=t[r],n=e[r];if(i)for(var s in i){var a=this.stylesSpecificity[s];void 0===a&&(a="000"),n>=a&&(this.styles[s]=i[s],this.stylesSpecificity[s]=n)}}}removeStyles(t,e){return e.reduce(((e,r)=>{var i=t.getStyle(r);if(!i.hasValue())return e;var n=i.getString();return i.setValue(""),[...e,[r,n]]}),[])}restoreStyles(t,e){e.forEach((e=>{var[r,i]=e;t.getStyle(r,!0).setValue(i)}))}isFirstChild(){var t;return 0===(null===(t=this.parent)||void 0===t?void 0:t.children.indexOf(this))}}Mt.ignoreChildTypes=["title"];class Rt extends Mt{constructor(t,e,r){super(t,e,r)}}function _t(t){var e=t.trim();return/^('|")/.test(e)?e:'"'.concat(e,'"')}function Vt(t){if(!t)return"";var e=t.trim().toLowerCase();switch(e){case"normal":case"italic":case"oblique":case"inherit":case"initial":case"unset":return e;default:return/^oblique\s+(-|)\d+deg$/.test(e)?e:""}}function kt(t){if(!t)return"";var e=t.trim().toLowerCase();switch(e){case"normal":case"bold":case"lighter":case"bolder":case"inherit":case"initial":case"unset":return e;default:return/^[\d.]+$/.test(e)?e:""}}class It{constructor(t,e,r,i,n,s){var a=s?"string"==typeof s?It.parse(s):s:{};this.fontFamily=n||a.fontFamily,this.fontSize=i||a.fontSize,this.fontStyle=t||a.fontStyle,this.fontWeight=r||a.fontWeight,this.fontVariant=e||a.fontVariant}static parse(){var t=arguments.length>1?arguments[1]:void 0,e="",r="",i="",n="",s="",a=B(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").trim().split(" "),o={fontSize:!1,fontStyle:!1,fontWeight:!1,fontVariant:!1};return a.forEach((t=>{switch(!0){case!o.fontStyle&&It.styles.includes(t):"inherit"!==t&&(e=t),o.fontStyle=!0;break;case!o.fontVariant&&It.variants.includes(t):"inherit"!==t&&(r=t),o.fontStyle=!0,o.fontVariant=!0;break;case!o.fontWeight&&It.weights.includes(t):"inherit"!==t&&(i=t),o.fontStyle=!0,o.fontVariant=!0,o.fontWeight=!0;break;case!o.fontSize:"inherit"!==t&&([n]=t.split("/")),o.fontStyle=!0,o.fontVariant=!0,o.fontWeight=!0,o.fontSize=!0;break;default:"inherit"!==t&&(s+=t)}})),new It(e,r,i,n,s,t)}toString(){return[Vt(this.fontStyle),this.fontVariant,kt(this.fontWeight),this.fontSize,(t=this.fontFamily,void 0===L?t:t.trim().split(",").map(_t).join(","))].join(" ").trim();var t}}It.styles="normal|italic|oblique|inherit",It.variants="normal|small-caps|inherit",It.weights="normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900|inherit";class Lt{constructor(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Number.NaN,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.NaN,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.NaN,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:Number.NaN;this.x1=t,this.y1=e,this.x2=r,this.y2=i,this.addPoint(t,e),this.addPoint(r,i)}get x(){return this.x1}get y(){return this.y1}get width(){return this.x2-this.x1}get height(){return this.y2-this.y1}addPoint(t,e){void 0!==t&&((isNaN(this.x1)||isNaN(this.x2))&&(this.x1=t,this.x2=t),tthis.x2&&(this.x2=t)),void 0!==e&&((isNaN(this.y1)||isNaN(this.y2))&&(this.y1=e,this.y2=e),ethis.y2&&(this.y2=e))}addX(t){this.addPoint(t,null)}addY(t){this.addPoint(null,t)}addBoundingBox(t){if(t){var{x1:e,y1:r,x2:i,y2:n}=t;this.addPoint(e,r),this.addPoint(i,n)}}sumCubic(t,e,r,i,n){return Math.pow(1-t,3)*e+3*Math.pow(1-t,2)*t*r+3*(1-t)*Math.pow(t,2)*i+Math.pow(t,3)*n}bezierCurveAdd(t,e,r,i,n){var s=6*e-12*r+6*i,a=-3*e+9*r-9*i+3*n,o=3*r-3*e;if(0!==a){var u=Math.pow(s,2)-4*o*a;if(!(u<0)){var h=(-s+Math.sqrt(u))/(2*a);0=e.length-1}next(){var t=this.commands[++this.i];return this.previousCommand=this.command,this.command=t,t}getPoint(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"x",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"y",r=new pt(this.command[t],this.command[e]);return this.makeAbsolute(r)}getAsControlPoint(t,e){var r=this.getPoint(t,e);return this.control=r,r}getAsCurrentPoint(t,e){var r=this.getPoint(t,e);return this.current=r,r}getReflectedControlPoint(){var t=this.previousCommand.type;if(t!==P.CURVE_TO&&t!==P.SMOOTH_CURVE_TO&&t!==P.QUAD_TO&&t!==P.SMOOTH_QUAD_TO)return this.current;var{current:{x:e,y:r},control:{x:i,y:n}}=this;return new pt(2*e-i,2*r-n)}makeAbsolute(t){if(this.command.relative){var{x:e,y:r}=this.current;t.x+=e,t.y+=r}return t}addMarker(t,e,r){var{points:i,angles:n}=this;r&&n.length>0&&!n[n.length-1]&&(n[n.length-1]=i[i.length-1].angleTo(r)),this.addMarkerAngle(t,e?e.angleTo(t):null)}addMarkerAngle(t,e){this.points.push(t),this.angles.push(e)}getMarkerPoints(){return this.points}getMarkerAngles(){for(var{angles:t}=this,e=t.length,r=0;r1&&void 0!==arguments[1]&&arguments[1];if(!e){var r=this.getStyle("fill"),i=this.getStyle("fill-opacity"),n=this.getStyle("stroke"),s=this.getStyle("stroke-opacity");if(r.isUrlDefinition()){var a=r.getFillStyleDefinition(this,i);a&&(t.fillStyle=a)}else if(r.hasValue()){"currentColor"===r.getString()&&r.setValue(this.getStyle("color").getColor());var o=r.getColor();"inherit"!==o&&(t.fillStyle="none"===o?"rgba(0,0,0,0)":o)}if(i.hasValue()){var u=new ft(this.document,"fill",t.fillStyle).addOpacity(i).getColor();t.fillStyle=u}if(n.isUrlDefinition()){var h=n.getFillStyleDefinition(this,s);h&&(t.strokeStyle=h)}else if(n.hasValue()){"currentColor"===n.getString()&&n.setValue(this.getStyle("color").getColor());var c=n.getString();"inherit"!==c&&(t.strokeStyle="none"===c?"rgba(0,0,0,0)":c)}if(s.hasValue()){var l=new ft(this.document,"stroke",t.strokeStyle).addOpacity(s).getString();t.strokeStyle=l}var f=this.getStyle("stroke-width");if(f.hasValue()){var g=f.getPixels();t.lineWidth=g||et}var p=this.getStyle("stroke-linecap"),d=this.getStyle("stroke-linejoin"),v=this.getStyle("stroke-miterlimit"),y=this.getStyle("stroke-dasharray"),m=this.getStyle("stroke-dashoffset");if(p.hasValue()&&(t.lineCap=p.getString()),d.hasValue()&&(t.lineJoin=d.getString()),v.hasValue()&&(t.miterLimit=v.getNumber()),y.hasValue()&&"none"!==y.getString()){var x=z(y.getString());void 0!==t.setLineDash?t.setLineDash(x):void 0!==t.webkitLineDash?t.webkitLineDash=x:void 0===t.mozDash||1===x.length&&0===x[0]||(t.mozDash=x);var b=m.getPixels();void 0!==t.lineDashOffset?t.lineDashOffset=b:void 0!==t.webkitLineDashOffset?t.webkitLineDashOffset=b:void 0!==t.mozDashOffset&&(t.mozDashOffset=b)}}if(this.modifiedEmSizeStack=!1,void 0!==t.font){var w=this.getStyle("font"),S=this.getStyle("font-style"),T=this.getStyle("font-variant"),O=this.getStyle("font-weight"),A=this.getStyle("font-size"),C=this.getStyle("font-family"),E=new It(S.getString(),T.getString(),O.getString(),A.hasValue()?"".concat(A.getPixels(!0),"px"):"",C.getString(),It.parse(w.getString(),t.font));S.setValue(E.fontStyle),T.setValue(E.fontVariant),O.setValue(E.fontWeight),A.setValue(E.fontSize),C.setValue(E.fontFamily),t.font=E.toString(),A.isPixels()&&(this.document.emSize=A.getPixels(),this.modifiedEmSizeStack=!0)}e||(this.applyEffects(t),t.globalAlpha=this.calculateOpacity())}clearContext(t){super.clearContext(t),this.modifiedEmSizeStack&&this.document.popEmSize()}}class jt extends Bt{constructor(t,e,r){super(t,e,r),this.type="path",this.pathParser=null,this.pathParser=new Dt(this.getAttribute("d").getString())}path(t){var{pathParser:e}=this,r=new Lt;for(e.reset(),t&&t.beginPath();!e.isEnd();)switch(e.next().type){case Dt.MOVE_TO:this.pathM(t,r);break;case Dt.LINE_TO:this.pathL(t,r);break;case Dt.HORIZ_LINE_TO:this.pathH(t,r);break;case Dt.VERT_LINE_TO:this.pathV(t,r);break;case Dt.CURVE_TO:this.pathC(t,r);break;case Dt.SMOOTH_CURVE_TO:this.pathS(t,r);break;case Dt.QUAD_TO:this.pathQ(t,r);break;case Dt.SMOOTH_QUAD_TO:this.pathT(t,r);break;case Dt.ARC:this.pathA(t,r);break;case Dt.CLOSE_PATH:this.pathZ(t,r)}return r}getBoundingBox(t){return this.path()}getMarkers(){var{pathParser:t}=this,e=t.getMarkerPoints(),r=t.getMarkerAngles(),i=e.map(((t,e)=>[t,r[e]]));return i}renderChildren(t){this.path(t),this.document.screen.mouse.checkPath(this,t);var e=this.getStyle("fill-rule");""!==t.fillStyle&&("inherit"!==e.getString("inherit")?t.fill(e.getString()):t.fill()),""!==t.strokeStyle&&("non-scaling-stroke"===this.getAttribute("vector-effect").getString()?(t.save(),t.setTransform(1,0,0,1,0,0),t.stroke(),t.restore()):t.stroke());var r=this.getMarkers();if(r){var i=r.length-1,n=this.getStyle("marker-start"),s=this.getStyle("marker-mid"),a=this.getStyle("marker-end");if(n.isUrlDefinition()){var o=n.getDefinition(),[u,h]=r[0];o.render(t,u,h)}if(s.isUrlDefinition())for(var c=s.getDefinition(),l=1;l1&&(i*=Math.sqrt(l),n*=Math.sqrt(l));var f=(a===o?-1:1)*Math.sqrt((Math.pow(i,2)*Math.pow(n,2)-Math.pow(i,2)*Math.pow(c.y,2)-Math.pow(n,2)*Math.pow(c.x,2))/(Math.pow(i,2)*Math.pow(c.y,2)+Math.pow(n,2)*Math.pow(c.x,2)));isNaN(f)&&(f=0);var g=new pt(f*i*c.y/n,f*-n*c.x/i),p=new pt((e.x+h.x)/2+Math.cos(u)*g.x-Math.sin(u)*g.y,(e.y+h.y)/2+Math.sin(u)*g.x+Math.cos(u)*g.y),d=nt([1,0],[(c.x-g.x)/i,(c.y-g.y)/n]),v=[(c.x-g.x)/i,(c.y-g.y)/n],y=[(-c.x-g.x)/i,(-c.y-g.y)/n],m=nt(v,y);return it(v,y)<=-1&&(m=Math.PI),it(v,y)>=1&&(m=0),{currentPoint:h,rX:i,rY:n,sweepFlag:o,xAxisRotation:u,centp:p,a1:d,ad:m}}pathA(t,e){var{pathParser:r}=this,{currentPoint:i,rX:n,rY:s,sweepFlag:a,xAxisRotation:o,centp:u,a1:h,ad:c}=jt.pathA(r),l=1-a?1:-1,f=h+l*(c/2),g=new pt(u.x+n*Math.cos(f),u.y+s*Math.sin(f));if(r.addMarkerAngle(g,f-l*Math.PI/2),r.addMarkerAngle(i,f-l*Math.PI),e.addPoint(i.x,i.y),t&&!isNaN(h)&&!isNaN(c)){var p=n>s?n:s,d=n>s?1:n/s,v=n>s?s/n:1;t.translate(u.x,u.y),t.rotate(o),t.scale(d,v),t.arc(0,0,p,h,h+c,Boolean(1-a)),t.scale(1/d,1/v),t.rotate(-o),t.translate(-u.x,-u.y)}}static pathZ(t){t.current=t.start}pathZ(t,e){jt.pathZ(this.pathParser),t&&e.x1!==e.x2&&e.y1!==e.y2&&t.closePath()}}class Ft extends jt{constructor(t,e,r){super(t,e,r),this.type="glyph",this.horizAdvX=this.getAttribute("horiz-adv-x").getNumber(),this.unicode=this.getAttribute("unicode").getString(),this.arabicForm=this.getAttribute("arabic-form").getString()}}class zt extends Bt{constructor(t,e,r){super(t,e,new.target===zt||r),this.type="text",this.x=0,this.y=0,this.measureCache=-1}setContext(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];super.setContext(t,e);var r=this.getStyle("dominant-baseline").getTextBaseline()||this.getStyle("alignment-baseline").getTextBaseline();r&&(t.textBaseline=r)}initializeCoordinates(){this.x=0,this.y=0,this.leafTexts=[],this.textChunkStart=0,this.minX=Number.POSITIVE_INFINITY,this.maxX=Number.NEGATIVE_INFINITY}getBoundingBox(t){if("text"!==this.type)return this.getTElementBoundingBox(t);this.initializeCoordinates(),this.adjustChildCoordinatesRecursive(t);var e=null;return this.children.forEach(((r,i)=>{var n=this.getChildBoundingBox(t,this,this,i);e?e.addBoundingBox(n):e=n})),e}getFontSize(){var{document:t,parent:e}=this,r=It.parse(t.ctx.font).fontSize;return e.getStyle("font-size").getNumber(r)}getTElementBoundingBox(t){var e=this.getFontSize();return new Lt(this.x,this.y-e,this.x+this.measureText(t),this.y)}getGlyph(t,e,r){var i=e[r],n=null;if(t.isArabic){var s=e.length,a=e[r-1],o=e[r+1],u="isolated";if((0===r||" "===a)&&r0&&" "!==a&&r0&&" "!==a&&(r===s-1||" "===o)&&(u="initial"),void 0!==t.glyphs[i]){var h=t.glyphs[i];n=h instanceof Ft?h:h[u]}}else n=t.glyphs[i];return n||(n=t.missingGlyph),n}getText(){return""}getTextFromNode(t){var e=t||this.node,r=Array.from(e.parentNode.childNodes),i=r.indexOf(e),n=r.length-1,s=B(e.textContent||"");return 0===i&&(s=j(s)),i===n&&(s=F(s)),s}renderChildren(t){if("text"===this.type){this.initializeCoordinates(),this.adjustChildCoordinatesRecursive(t),this.children.forEach(((e,r)=>{this.renderChild(t,this,this,r)}));var{mouse:e}=this.document.screen;e.isWorking()&&e.checkBoundingBox(this,this.getBoundingBox(t))}else this.renderTElementChildren(t)}renderTElementChildren(t){var{document:e,parent:r}=this,i=this.getText(),n=r.getStyle("font-family").getDefinition();if(n)for(var{unitsPerEm:s}=n.fontFace,a=It.parse(e.ctx.font),o=r.getStyle("font-size").getNumber(a.fontSize),u=r.getStyle("font-style").getString(a.fontStyle),h=o/s,c=n.isRTL?i.split("").reverse().join(""):i,l=z(r.getAttribute("dx").getString()),f=c.length,g=0;g=this.leafTexts.length)){var t=this.leafTexts[this.textChunkStart],e=t.getStyle("text-anchor").getString("start"),r=0;r="start"===e?t.x-this.minX:"end"===e?t.x-this.maxX:t.x-(this.minX+this.maxX)/2;for(var i=this.textChunkStart;i{this.adjustChildCoordinatesRecursiveCore(t,this,this,r)})),this.applyAnchoring()}adjustChildCoordinatesRecursiveCore(t,e,r,i){var n=r.children[i];n.children.length>0?n.children.forEach(((r,i)=>{e.adjustChildCoordinatesRecursiveCore(t,e,n,i)})):this.adjustChildCoordinates(t,e,r,i)}adjustChildCoordinates(t,e,r,i){var n=r.children[i];if("function"!=typeof n.measureText)return n;t.save(),n.setContext(t,!0);var s=n.getAttribute("x"),a=n.getAttribute("y"),o=n.getAttribute("dx"),u=n.getAttribute("dy"),h=n.getStyle("font-family").getDefinition(),c=Boolean(h)&&h.isRTL;0===i&&(s.hasValue()||s.setValue(n.getInheritedAttribute("x")),a.hasValue()||a.setValue(n.getInheritedAttribute("y")),o.hasValue()||o.setValue(n.getInheritedAttribute("dx")),u.hasValue()||u.setValue(n.getInheritedAttribute("dy")));var l=n.measureText(t);return c&&(e.x-=l),s.hasValue()?(e.applyAnchoring(),n.x=s.getPixels("x"),o.hasValue()&&(n.x+=o.getPixels("x"))):(o.hasValue()&&(e.x+=o.getPixels("x")),n.x=e.x),e.x=n.x,c||(e.x+=l),a.hasValue()?(n.y=a.getPixels("y"),u.hasValue()&&(n.y+=u.getPixels("y"))):(u.hasValue()&&(e.y+=u.getPixels("y")),n.y=e.y),e.y=n.y,e.leafTexts.push(n),e.minX=Math.min(e.minX,n.x,n.x+l),e.maxX=Math.max(e.maxX,n.x,n.x+l),n.clearContext(t),t.restore(),n}getChildBoundingBox(t,e,r,i){var n=r.children[i];if("function"!=typeof n.getBoundingBox)return null;var s=n.getBoundingBox(t);return s?(n.children.forEach(((r,i)=>{var a=e.getChildBoundingBox(t,e,n,i);s.addBoundingBox(a)})),s):null}renderChild(t,e,r,i){var n=r.children[i];n.render(t),n.children.forEach(((r,i)=>{e.renderChild(t,e,n,i)}))}measureText(t){var{measureCache:e}=this;if(~e)return e;var r=this.getText(),i=this.measureTargetText(t,r);return this.measureCache=i,i}measureTargetText(t,e){if(!e.length)return 0;var{parent:r}=this,i=r.getStyle("font-family").getDefinition();if(i){for(var n=this.getFontSize(),s=i.isRTL?e.split("").reverse().join(""):e,a=z(r.getAttribute("dx").getString()),o=s.length,u=0,h=0;h0?"":this.getTextFromNode()}getText(){return this.text}}class Ht extends Ut{constructor(){super(...arguments),this.type="textNode"}}class Xt extends Bt{constructor(){super(...arguments),this.type="svg",this.root=!1}setContext(t){var e,{document:r}=this,{screen:i,window:n}=r,s=t.canvas;if(i.setDefaults(t),s.style&&void 0!==t.font&&n&&void 0!==n.getComputedStyle){t.font=n.getComputedStyle(s).getPropertyValue("font");var a=new ft(r,"fontSize",It.parse(t.font).fontSize);a.hasValue()&&(r.rootEmSize=a.getPixels("y"),r.emSize=r.rootEmSize)}this.getAttribute("x").hasValue()||this.getAttribute("x",!0).setValue(0),this.getAttribute("y").hasValue()||this.getAttribute("y",!0).setValue(0);var{width:o,height:u}=i.viewPort;this.getStyle("width").hasValue()||this.getStyle("width",!0).setValue("100%"),this.getStyle("height").hasValue()||this.getStyle("height",!0).setValue("100%"),this.getStyle("color").hasValue()||this.getStyle("color",!0).setValue("black");var h=this.getAttribute("refX"),c=this.getAttribute("refY"),l=this.getAttribute("viewBox"),f=l.hasValue()?z(l.getString()):null,g=!this.root&&"visible"!==this.getStyle("overflow").getValue("hidden"),p=0,d=0,v=0,y=0;f&&(p=f[0],d=f[1]),this.root||(o=this.getStyle("width").getPixels("x"),u=this.getStyle("height").getPixels("y"),"marker"===this.type&&(v=p,y=d,p=0,d=0)),i.viewPort.setCurrent(o,u),!this.node||this.parent&&"foreignObject"!==(null===(e=this.node.parentNode)||void 0===e?void 0:e.nodeName)||!this.getStyle("transform",!1,!0).hasValue()||this.getStyle("transform-origin",!1,!0).hasValue()||this.getStyle("transform-origin",!0,!0).setValue("50% 50%"),super.setContext(t),t.translate(this.getAttribute("x").getPixels("x"),this.getAttribute("y").getPixels("y")),f&&(o=f[2],u=f[3]),r.setViewBox({ctx:t,aspectRatio:this.getAttribute("preserveAspectRatio").getString(),width:i.viewPort.width,desiredWidth:o,height:i.viewPort.height,desiredHeight:u,minX:p,minY:d,refX:h.getValue(),refY:c.getValue(),clip:g,clipX:v,clipY:y}),f&&(i.viewPort.removeCurrent(),i.viewPort.setCurrent(o,u))}clearContext(t){super.clearContext(t),this.document.screen.viewPort.removeCurrent()}resize(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t,r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=this.getAttribute("width",!0),n=this.getAttribute("height",!0),s=this.getAttribute("viewBox"),a=this.getAttribute("style"),o=i.getNumber(0),u=n.getNumber(0);if(r)if("string"==typeof r)this.getAttribute("preserveAspectRatio",!0).setValue(r);else{var h=this.getAttribute("preserveAspectRatio");h.hasValue()&&h.setValue(h.getString().replace(/^\s*(\S.*\S)\s*$/,"$1"))}if(i.setValue(t),n.setValue(e),s.hasValue()||s.setValue("0 0 ".concat(o||t," ").concat(u||e)),a.hasValue()){var c=this.getStyle("width"),l=this.getStyle("height");c.hasValue()&&c.setValue("".concat(t,"px")),l.hasValue()&&l.setValue("".concat(e,"px"))}}}class Yt extends jt{constructor(){super(...arguments),this.type="rect"}path(t){var e=this.getAttribute("x").getPixels("x"),r=this.getAttribute("y").getPixels("y"),i=this.getStyle("width",!1,!0).getPixels("x"),n=this.getStyle("height",!1,!0).getPixels("y"),s=this.getAttribute("rx"),a=this.getAttribute("ry"),o=s.getPixels("x"),u=a.getPixels("y");if(s.hasValue()&&!a.hasValue()&&(u=o),a.hasValue()&&!s.hasValue()&&(o=u),o=Math.min(o,i/2),u=Math.min(u,n/2),t){var h=(Math.sqrt(2)-1)/3*4;t.beginPath(),n>0&&i>0&&(t.moveTo(e+o,r),t.lineTo(e+i-o,r),t.bezierCurveTo(e+i-o+h*o,r,e+i,r+u-h*u,e+i,r+u),t.lineTo(e+i,r+n-u),t.bezierCurveTo(e+i,r+n-u+h*u,e+i-o+h*o,r+n,e+i-o,r+n),t.lineTo(e+o,r+n),t.bezierCurveTo(e+o-h*o,r+n,e,r+n-u+h*u,e,r+n-u),t.lineTo(e,r+u),t.bezierCurveTo(e,r+u-h*u,e+o-h*o,r,e+o,r),t.closePath())}return new Lt(e,r,e+i,r+n)}getMarkers(){return null}}class Wt extends jt{constructor(){super(...arguments),this.type="circle"}path(t){var e=this.getAttribute("cx").getPixels("x"),r=this.getAttribute("cy").getPixels("y"),i=this.getAttribute("r").getPixels();return t&&i>0&&(t.beginPath(),t.arc(e,r,i,0,2*Math.PI,!1),t.closePath()),new Lt(e-i,r-i,e+i,r+i)}getMarkers(){return null}}class qt extends jt{constructor(){super(...arguments),this.type="ellipse"}path(t){var e=(Math.sqrt(2)-1)/3*4,r=this.getAttribute("rx").getPixels("x"),i=this.getAttribute("ry").getPixels("y"),n=this.getAttribute("cx").getPixels("x"),s=this.getAttribute("cy").getPixels("y");return t&&r>0&&i>0&&(t.beginPath(),t.moveTo(n+r,s),t.bezierCurveTo(n+r,s+e*i,n+e*r,s+i,n,s+i),t.bezierCurveTo(n-e*r,s+i,n-r,s+e*i,n-r,s),t.bezierCurveTo(n-r,s-e*i,n-e*r,s-i,n,s-i),t.bezierCurveTo(n+e*r,s-i,n+r,s-e*i,n+r,s),t.closePath()),new Lt(n-r,s-i,n+r,s+i)}getMarkers(){return null}}class Gt extends jt{constructor(){super(...arguments),this.type="line"}getPoints(){return[new pt(this.getAttribute("x1").getPixels("x"),this.getAttribute("y1").getPixels("y")),new pt(this.getAttribute("x2").getPixels("x"),this.getAttribute("y2").getPixels("y"))]}path(t){var[{x:e,y:r},{x:i,y:n}]=this.getPoints();return t&&(t.beginPath(),t.moveTo(e,r),t.lineTo(i,n)),new Lt(e,r,i,n)}getMarkers(){var[t,e]=this.getPoints(),r=t.angleTo(e);return[[t,r],[e,r]]}}class Qt extends jt{constructor(t,e,r){super(t,e,r),this.type="polyline",this.points=[],this.points=pt.parsePath(this.getAttribute("points").getString())}path(t){var{points:e}=this,[{x:r,y:i}]=e,n=new Lt(r,i);return t&&(t.beginPath(),t.moveTo(r,i)),e.forEach((e=>{var{x:r,y:i}=e;n.addPoint(r,i),t&&t.lineTo(r,i)})),n}getMarkers(){var{points:t}=this,e=t.length-1,r=[];return t.forEach(((i,n)=>{n!==e&&r.push([i,i.angleTo(t[n+1])])})),r.length>0&&r.push([t[t.length-1],r[r.length-1][1]]),r}}class $t extends Qt{constructor(){super(...arguments),this.type="polygon"}path(t){var e=super.path(t),[{x:r,y:i}]=this.points;return t&&(t.lineTo(r,i),t.closePath()),e}}class Zt extends Mt{constructor(){super(...arguments),this.type="pattern"}createPattern(t,e,r){var i=this.getStyle("width").getPixels("x",!0),n=this.getStyle("height").getPixels("y",!0),s=new Xt(this.document,null);s.attributes.viewBox=new ft(this.document,"viewBox",this.getAttribute("viewBox").getValue()),s.attributes.width=new ft(this.document,"width","".concat(i,"px")),s.attributes.height=new ft(this.document,"height","".concat(n,"px")),s.attributes.transform=new ft(this.document,"transform",this.getAttribute("patternTransform").getValue()),s.children=this.children;var a=this.document.createCanvas(i,n),o=a.getContext("2d"),u=this.getAttribute("x"),h=this.getAttribute("y");u.hasValue()&&h.hasValue()&&o.translate(u.getPixels("x",!0),h.getPixels("y",!0)),r.hasValue()?this.styles["fill-opacity"]=r:Reflect.deleteProperty(this.styles,"fill-opacity");for(var c=-1;c<=1;c++)for(var l=-1;l<=1;l++)o.save(),s.attributes.x=new ft(this.document,"x",c*a.width),s.attributes.y=new ft(this.document,"y",l*a.height),s.render(o),o.restore();return t.createPattern(a,"repeat")}}class Kt extends Mt{constructor(){super(...arguments),this.type="marker"}render(t,e,r){if(e){var{x:i,y:n}=e,s=this.getAttribute("orient").getString("auto"),a=this.getAttribute("markerUnits").getString("strokeWidth");t.translate(i,n),"auto"===s&&t.rotate(r),"strokeWidth"===a&&t.scale(t.lineWidth,t.lineWidth),t.save();var o=new Xt(this.document,null);o.type=this.type,o.attributes.viewBox=new ft(this.document,"viewBox",this.getAttribute("viewBox").getValue()),o.attributes.refX=new ft(this.document,"refX",this.getAttribute("refX").getValue()),o.attributes.refY=new ft(this.document,"refY",this.getAttribute("refY").getValue()),o.attributes.width=new ft(this.document,"width",this.getAttribute("markerWidth").getValue()),o.attributes.height=new ft(this.document,"height",this.getAttribute("markerHeight").getValue()),o.attributes.overflow=new ft(this.document,"overflow",this.getAttribute("overflow").getValue()),o.attributes.fill=new ft(this.document,"fill",this.getAttribute("fill").getColor("black")),o.attributes.stroke=new ft(this.document,"stroke",this.getAttribute("stroke").getValue("none")),o.children=this.children,o.render(t),t.restore(),"strokeWidth"===a&&t.scale(1/t.lineWidth,1/t.lineWidth),"auto"===s&&t.rotate(-r),t.translate(-i,-n)}}}class Jt extends Mt{constructor(){super(...arguments),this.type="defs"}render(){}}class te extends Bt{constructor(){super(...arguments),this.type="g"}getBoundingBox(t){var e=new Lt;return this.children.forEach((r=>{e.addBoundingBox(r.getBoundingBox(t))})),e}}class ee extends Mt{constructor(t,e,r){super(t,e,r),this.attributesToInherit=["gradientUnits"],this.stops=[];var{stops:i,children:n}=this;n.forEach((t=>{"stop"===t.type&&i.push(t)}))}getGradientUnits(){return this.getAttribute("gradientUnits").getString("objectBoundingBox")}createGradient(t,e,r){var i=this;this.getHrefAttribute().hasValue()&&(i=this.getHrefAttribute().getDefinition(),this.inheritStopContainer(i));var{stops:n}=i,s=this.getGradient(t,e);if(!s)return this.addParentOpacity(r,n[n.length-1].color);if(n.forEach((t=>{s.addColorStop(t.offset,this.addParentOpacity(r,t.color))})),this.getAttribute("gradientTransform").hasValue()){var{document:a}=this,{MAX_VIRTUAL_PIXELS:o,viewPort:u}=a.screen,[h]=u.viewPorts,c=new Yt(a,null);c.attributes.x=new ft(a,"x",-o/3),c.attributes.y=new ft(a,"y",-o/3),c.attributes.width=new ft(a,"width",o),c.attributes.height=new ft(a,"height",o);var l=new te(a,null);l.attributes.transform=new ft(a,"transform",this.getAttribute("gradientTransform").getValue()),l.children=[c];var f=new Xt(a,null);f.attributes.x=new ft(a,"x",0),f.attributes.y=new ft(a,"y",0),f.attributes.width=new ft(a,"width",h.width),f.attributes.height=new ft(a,"height",h.height),f.children=[l];var g=a.createCanvas(h.width,h.height),p=g.getContext("2d");return p.fillStyle=s,f.render(p),p.createPattern(g,"no-repeat")}return s}inheritStopContainer(t){this.attributesToInherit.forEach((e=>{!this.getAttribute(e).hasValue()&&t.getAttribute(e).hasValue()&&this.getAttribute(e,!0).setValue(t.getAttribute(e).getValue())}))}addParentOpacity(t,e){return t.hasValue()?new ft(this.document,"color",e).addOpacity(t).getColor():e}}class re extends ee{constructor(t,e,r){super(t,e,r),this.type="linearGradient",this.attributesToInherit.push("x1","y1","x2","y2")}getGradient(t,e){var r="objectBoundingBox"===this.getGradientUnits(),i=r?e.getBoundingBox(t):null;if(r&&!i)return null;this.getAttribute("x1").hasValue()||this.getAttribute("y1").hasValue()||this.getAttribute("x2").hasValue()||this.getAttribute("y2").hasValue()||(this.getAttribute("x1",!0).setValue(0),this.getAttribute("y1",!0).setValue(0),this.getAttribute("x2",!0).setValue(1),this.getAttribute("y2",!0).setValue(0));var n=r?i.x+i.width*this.getAttribute("x1").getNumber():this.getAttribute("x1").getPixels("x"),s=r?i.y+i.height*this.getAttribute("y1").getNumber():this.getAttribute("y1").getPixels("y"),a=r?i.x+i.width*this.getAttribute("x2").getNumber():this.getAttribute("x2").getPixels("x"),o=r?i.y+i.height*this.getAttribute("y2").getNumber():this.getAttribute("y2").getPixels("y");return n===a&&s===o?null:t.createLinearGradient(n,s,a,o)}}class ie extends ee{constructor(t,e,r){super(t,e,r),this.type="radialGradient",this.attributesToInherit.push("cx","cy","r","fx","fy","fr")}getGradient(t,e){var r="objectBoundingBox"===this.getGradientUnits(),i=e.getBoundingBox(t);if(r&&!i)return null;this.getAttribute("cx").hasValue()||this.getAttribute("cx",!0).setValue("50%"),this.getAttribute("cy").hasValue()||this.getAttribute("cy",!0).setValue("50%"),this.getAttribute("r").hasValue()||this.getAttribute("r",!0).setValue("50%");var n=r?i.x+i.width*this.getAttribute("cx").getNumber():this.getAttribute("cx").getPixels("x"),s=r?i.y+i.height*this.getAttribute("cy").getNumber():this.getAttribute("cy").getPixels("y"),a=n,o=s;this.getAttribute("fx").hasValue()&&(a=r?i.x+i.width*this.getAttribute("fx").getNumber():this.getAttribute("fx").getPixels("x")),this.getAttribute("fy").hasValue()&&(o=r?i.y+i.height*this.getAttribute("fy").getNumber():this.getAttribute("fy").getPixels("y"));var u=r?(i.width+i.height)/2*this.getAttribute("r").getNumber():this.getAttribute("r").getPixels(),h=this.getAttribute("fr").getPixels();return t.createRadialGradient(a,o,h,n,s,u)}}class ne extends Mt{constructor(t,e,r){super(t,e,r),this.type="stop";var i=Math.max(0,Math.min(1,this.getAttribute("offset").getNumber())),n=this.getStyle("stop-opacity"),s=this.getStyle("stop-color",!0);""===s.getString()&&s.setValue("#000"),n.hasValue()&&(s=s.addOpacity(n)),this.offset=i,this.color=s.getColor()}}class se extends Mt{constructor(t,e,r){super(t,e,r),this.type="animate",this.duration=0,this.initialValue=null,this.initialUnits="",this.removed=!1,this.frozen=!1,t.screen.animations.push(this),this.begin=this.getAttribute("begin").getMilliseconds(),this.maxDuration=this.begin+this.getAttribute("dur").getMilliseconds(),this.from=this.getAttribute("from"),this.to=this.getAttribute("to"),this.values=new ft(t,"values",null);var i=this.getAttribute("values");i.hasValue()&&this.values.setValue(i.getString().split(";"))}getProperty(){var t=this.getAttribute("attributeType").getString(),e=this.getAttribute("attributeName").getString();return"CSS"===t?this.parent.getStyle(e,!0):this.parent.getAttribute(e,!0)}calcValue(){var{initialUnits:t}=this,{progress:e,from:r,to:i}=this.getProgress(),n=r.getNumber()+(i.getNumber()-r.getNumber())*e;return"%"===t&&(n*=100),"".concat(n).concat(t)}update(t){var{parent:e}=this,r=this.getProperty();if(this.initialValue||(this.initialValue=r.getString(),this.initialUnits=r.getUnits()),this.duration>this.maxDuration){var i=this.getAttribute("fill").getString("remove");if("indefinite"===this.getAttribute("repeatCount").getString()||"indefinite"===this.getAttribute("repeatDur").getString())this.duration=0;else if("freeze"!==i||this.frozen){if("remove"===i&&!this.removed)return this.removed=!0,r.setValue(e.animationFrozen?e.animationFrozenValue:this.initialValue),!0}else this.frozen=!0,e.animationFrozen=!0,e.animationFrozenValue=r.getString();return!1}this.duration+=t;var n=!1;if(this.begine+(n[r]-e)*t)).join(" ");return s}}class ue extends Mt{constructor(t,e,r){super(t,e,r),this.type="font",this.glyphs={},this.horizAdvX=this.getAttribute("horiz-adv-x").getNumber();var{definitions:i}=t,{children:n}=this;for(var s of n)switch(s.type){case"font-face":this.fontFace=s;var a=s.getStyle("font-family");a.hasValue()&&(i[a.getString()]=this);break;case"missing-glyph":this.missingGlyph=s;break;case"glyph":var o=s;o.arabicForm?(this.isRTL=!0,this.isArabic=!0,void 0===this.glyphs[o.unicode]&&(this.glyphs[o.unicode]={}),this.glyphs[o.unicode][o.arabicForm]=o):this.glyphs[o.unicode]=o}}render(){}}class he extends Mt{constructor(t,e,r){super(t,e,r),this.type="font-face",this.ascent=this.getAttribute("ascent").getNumber(),this.descent=this.getAttribute("descent").getNumber(),this.unitsPerEm=this.getAttribute("units-per-em").getNumber()}}class ce extends jt{constructor(){super(...arguments),this.type="missing-glyph",this.horizAdvX=0}}class le extends zt{constructor(){super(...arguments),this.type="tref"}getText(){var t=this.getHrefAttribute().getDefinition();if(t){var e=t.children[0];if(e)return e.getText()}return""}}class fe extends zt{constructor(t,e,r){super(t,e,r),this.type="a";var{childNodes:i}=e,n=i[0],s=i.length>0&&Array.from(i).every((t=>3===t.nodeType));this.hasText=s,this.text=s?this.getTextFromNode(n):""}getText(){return this.text}renderChildren(t){if(this.hasText){super.renderChildren(t);var{document:e,x:r,y:i}=this,{mouse:n}=e.screen,s=new ft(e,"fontSize",It.parse(e.ctx.font).fontSize);n.isWorking()&&n.checkBoundingBox(this,new Lt(r,i-s.getPixels("y"),r+this.measureText(t),i))}else if(this.children.length>0){var a=new te(this.document,null);a.children=this.children,a.parent=this,a.render(t)}}onClick(){var{window:t}=this.document;t&&t.open(this.getHrefAttribute().getString())}onMouseMove(){this.document.ctx.canvas.style.cursor="pointer"}}function ge(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,i)}return r}function pe(t){for(var e=1;e{var{type:r,points:i}=e;switch(r){case Dt.LINE_TO:t&&t.lineTo(i[0],i[1]);break;case Dt.MOVE_TO:t&&t.moveTo(i[0],i[1]);break;case Dt.CURVE_TO:t&&t.bezierCurveTo(i[0],i[1],i[2],i[3],i[4],i[5]);break;case Dt.QUAD_TO:t&&t.quadraticCurveTo(i[0],i[1],i[2],i[3]);break;case Dt.ARC:var[n,s,a,o,u,h,c,l]=i,f=a>o?a:o,g=a>o?1:a/o,p=a>o?o/a:1;t&&(t.translate(n,s),t.rotate(c),t.scale(g,p),t.arc(0,0,f,u,u+h,Boolean(1-l)),t.scale(1/g,1/p),t.rotate(-c),t.translate(-n,-s));break;case Dt.CLOSE_PATH:t&&t.closePath()}}))}renderChildren(t){this.setTextData(t),t.save();var e=this.parent.getStyle("text-decoration").getString(),r=this.getFontSize(),{glyphInfo:i}=this,n=t.fillStyle;"underline"===e&&t.beginPath(),i.forEach(((i,n)=>{var{p0:s,p1:a,rotation:o,text:u}=i;t.save(),t.translate(s.x,s.y),t.rotate(o),t.fillStyle&&t.fillText(u,0,0),t.strokeStyle&&t.strokeText(u,0,0),t.restore(),"underline"===e&&(0===n&&t.moveTo(s.x,s.y+r/8),t.lineTo(a.x,a.y+r/5))})),"underline"===e&&(t.lineWidth=r/20,t.strokeStyle=n,t.stroke(),t.closePath()),t.restore()}getLetterSpacingAt(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return this.letterSpacingCache[t]||0}findSegmentToFitChar(t,e,r,i,n,s,a,o,u){var h=s,c=this.measureText(t,o);" "===o&&"justify"===e&&r-1&&(h+=this.getLetterSpacingAt(u));var l=this.textHeight/20,f=this.getEquidistantPointOnPath(h,l,0),g=this.getEquidistantPointOnPath(h+c,l,0),p={p0:f,p1:g},d=f&&g?Math.atan2(g.y-f.y,g.x-f.x):0;if(a){var v=Math.cos(Math.PI/2+d)*a,y=Math.cos(-d)*a;p.p0=pe(pe({},f),{},{x:f.x+v,y:f.y+y}),p.p1=pe(pe({},g),{},{x:g.x+v,y:g.y+y})}return{offset:h+=c,segment:p,rotation:d}}measureText(t,e){var{measuresCache:r}=this,i=e||this.getText();if(r.has(i))return r.get(i);var n=this.measureTargetText(t,i);return r.set(i,n),n}setTextData(t){if(!this.glyphInfo){var e=this.getText(),r=e.split(""),i=e.split(" ").length-1,n=this.parent.getAttribute("dx").split().map((t=>t.getPixels("x"))),s=this.parent.getAttribute("dy").getPixels("y"),a=this.parent.getStyle("text-anchor").getString("start"),o=this.getStyle("letter-spacing"),u=this.parent.getStyle("letter-spacing"),h=0;o.hasValue()&&"inherit"!==o.getValue()?o.hasValue()&&"initial"!==o.getValue()&&"unset"!==o.getValue()&&(h=o.getPixels()):h=u.getPixels();var c=[],l=e.length;this.letterSpacingCache=c;for(var f=0;f0===r?0:t+e||0),0),p=this.measureText(t),d=Math.max(p+g,0);this.textWidth=p,this.textHeight=this.getFontSize(),this.glyphInfo=[];var v=this.getPathLength(),y=this.getStyle("startOffset").getNumber(0)*v,m=0;"middle"!==a&&"center"!==a||(m=-d/2),"end"!==a&&"right"!==a||(m=-d),m+=y,r.forEach(((e,n)=>{var{offset:o,segment:u,rotation:h}=this.findSegmentToFitChar(t,a,d,v,i,m,s,e,n);m=o,u.p0&&u.p1&&this.glyphInfo.push({text:r[n],p0:u.p0,p1:u.p1,rotation:h})}))}}parsePathData(t){if(this.pathLength=-1,!t)return[];var e=[],{pathParser:r}=t;for(r.reset();!r.isEnd();){var{current:i}=r,n=i?i.x:0,s=i?i.y:0,a=r.next(),o=a.type,u=[];switch(a.type){case Dt.MOVE_TO:this.pathM(r,u);break;case Dt.LINE_TO:o=this.pathL(r,u);break;case Dt.HORIZ_LINE_TO:o=this.pathH(r,u);break;case Dt.VERT_LINE_TO:o=this.pathV(r,u);break;case Dt.CURVE_TO:this.pathC(r,u);break;case Dt.SMOOTH_CURVE_TO:o=this.pathS(r,u);break;case Dt.QUAD_TO:this.pathQ(r,u);break;case Dt.SMOOTH_QUAD_TO:o=this.pathT(r,u);break;case Dt.ARC:u=this.pathA(r);break;case Dt.CLOSE_PATH:jt.pathZ(r)}a.type!==Dt.CLOSE_PATH?e.push({type:o,points:u,start:{x:n,y:s},pathLength:this.calcLength(n,s,o,u)}):e.push({type:Dt.CLOSE_PATH,points:[],pathLength:0})}return e}pathM(t,e){var{x:r,y:i}=jt.pathM(t).point;e.push(r,i)}pathL(t,e){var{x:r,y:i}=jt.pathL(t).point;return e.push(r,i),Dt.LINE_TO}pathH(t,e){var{x:r,y:i}=jt.pathH(t).point;return e.push(r,i),Dt.LINE_TO}pathV(t,e){var{x:r,y:i}=jt.pathV(t).point;return e.push(r,i),Dt.LINE_TO}pathC(t,e){var{point:r,controlPoint:i,currentPoint:n}=jt.pathC(t);e.push(r.x,r.y,i.x,i.y,n.x,n.y)}pathS(t,e){var{point:r,controlPoint:i,currentPoint:n}=jt.pathS(t);return e.push(r.x,r.y,i.x,i.y,n.x,n.y),Dt.CURVE_TO}pathQ(t,e){var{controlPoint:r,currentPoint:i}=jt.pathQ(t);e.push(r.x,r.y,i.x,i.y)}pathT(t,e){var{controlPoint:r,currentPoint:i}=jt.pathT(t);return e.push(r.x,r.y,i.x,i.y),Dt.QUAD_TO}pathA(t){var{rX:e,rY:r,sweepFlag:i,xAxisRotation:n,centp:s,a1:a,ad:o}=jt.pathA(t);return 0===i&&o>0&&(o-=2*Math.PI),1===i&&o<0&&(o+=2*Math.PI),[s.x,s.y,e,r,a,o,n,i]}calcLength(t,e,r,i){var n=0,s=null,a=null,o=0;switch(r){case Dt.LINE_TO:return this.getLineLength(t,e,i[0],i[1]);case Dt.CURVE_TO:for(n=0,s=this.getPointOnCubicBezier(0,t,e,i[0],i[1],i[2],i[3],i[4],i[5]),o=.01;o<=1;o+=.01)a=this.getPointOnCubicBezier(o,t,e,i[0],i[1],i[2],i[3],i[4],i[5]),n+=this.getLineLength(s.x,s.y,a.x,a.y),s=a;return n;case Dt.QUAD_TO:for(n=0,s=this.getPointOnQuadraticBezier(0,t,e,i[0],i[1],i[2],i[3]),o=.01;o<=1;o+=.01)a=this.getPointOnQuadraticBezier(o,t,e,i[0],i[1],i[2],i[3]),n+=this.getLineLength(s.x,s.y,a.x,a.y),s=a;return n;case Dt.ARC:n=0;var u=i[4],h=i[5],c=i[4]+h,l=Math.PI/180;if(Math.abs(u-c)c;o-=l)a=this.getPointOnEllipticalArc(i[0],i[1],i[2],i[3],o,0),n+=this.getLineLength(s.x,s.y,a.x,a.y),s=a;else for(o=u+l;o5&&void 0!==arguments[5]?arguments[5]:e,a=arguments.length>6&&void 0!==arguments[6]?arguments[6]:r,o=(n-r)/(i-e+et),u=Math.sqrt(t*t/(1+o*o));ie)return null;var{dataArray:n}=this;for(var s of n){if(!s||!(s.pathLength<5e-5||r+s.pathLength+5e-5=0&&o>c)break;i=this.getPointOnEllipticalArc(s.points[0],s.points[1],s.points[2],s.points[3],o,s.points[6]);break;case Dt.CURVE_TO:(o=a/s.pathLength)>1&&(o=1),i=this.getPointOnCubicBezier(o,s.start.x,s.start.y,s.points[0],s.points[1],s.points[2],s.points[3],s.points[4],s.points[5]);break;case Dt.QUAD_TO:(o=a/s.pathLength)>1&&(o=1),i=this.getPointOnQuadraticBezier(o,s.start.x,s.start.y,s.points[0],s.points[1],s.points[2],s.points[3])}if(i)return i;break}r+=s.pathLength}return null}getLineLength(t,e,r,i){return Math.sqrt((r-t)*(r-t)+(i-e)*(i-e))}getPathLength(){return-1===this.pathLength&&(this.pathLength=this.dataArray.reduce(((t,e)=>e.pathLength>0?t+e.pathLength:t),0)),this.pathLength}getPointOnCubicBezier(t,e,r,i,n,s,a,o,u){return{x:o*st(t)+s*at(t)+i*ot(t)+e*ut(t),y:u*st(t)+a*at(t)+n*ot(t)+r*ut(t)}}getPointOnQuadraticBezier(t,e,r,i,n,s,a){return{x:s*ht(t)+i*ct(t)+e*lt(t),y:a*ht(t)+n*ct(t)+r*lt(t)}}getPointOnEllipticalArc(t,e,r,i,n,s){var a=Math.cos(s),o=Math.sin(s),u=r*Math.cos(n),h=i*Math.sin(n);return{x:t+(u*a-h*o),y:e+(u*o+h*a)}}buildEquidistantCache(t,e){var r=this.getPathLength(),i=e||.25,n=t||r/100;if(!this.equidistantCache||this.equidistantCache.step!==n||this.equidistantCache.precision!==i){this.equidistantCache={step:n,precision:i,points:[]};for(var s=0,a=0;a<=r;a+=i){var o=this.getPointOnPath(a),u=this.getPointOnPath(a+i);o&&u&&((s+=this.getLineLength(o.x,o.y,u.x,u.y))>=n&&(this.equidistantCache.points.push({x:o.x,y:o.y,distance:a}),s-=n))}}}getEquidistantPointOnPath(t,e,r){if(this.buildEquidistantCache(e,r),t<0||t-this.getPathLength()>5e-5)return null;var i=Math.round(t/this.getPathLength()*(this.equidistantCache.points.length-1));return this.equidistantCache.points[i]||null}}var ve=/^\s*data:(([^/,;]+\/[^/,;]+)(?:;([^,;=]+=[^,;=]+))?)?(?:;(base64))?,(.*)$/i;class ye extends Bt{constructor(t,e,r){super(t,e,r),this.type="image",this.loaded=!1;var i=this.getHrefAttribute().getString();if(i){var n=i.endsWith(".svg")||/^\s*data:image\/svg\+xml/i.test(i);t.images.push(this),n?this.loadSvg(i):this.loadImage(i),this.isSvg=n}}loadImage(t){var e=this;return n((function*(){try{var r=yield e.document.createImage(t);e.image=r}catch(e){console.error('Error while loading image "'.concat(t,'":'),e)}e.loaded=!0}))()}loadSvg(t){var e=this;return n((function*(){var r=ve.exec(t);if(r){var i=r[5];"base64"===r[4]?e.image=atob(i):e.image=decodeURIComponent(i)}else try{var n=yield e.document.fetch(t),s=yield n.text();e.image=s}catch(e){console.error('Error while loading image "'.concat(t,'":'),e)}e.loaded=!0}))()}renderChildren(t){var{document:e,image:r,loaded:i}=this,n=this.getAttribute("x").getPixels("x"),s=this.getAttribute("y").getPixels("y"),a=this.getStyle("width").getPixels("x"),o=this.getStyle("height").getPixels("y");if(i&&r&&a&&o){if(t.save(),t.translate(n,s),this.isSvg){var u=e.canvg.forkString(t,this.image,{ignoreMouse:!0,ignoreAnimation:!0,ignoreDimensions:!0,ignoreClear:!0,offsetX:0,offsetY:0,scaleWidth:a,scaleHeight:o});u.document.documentElement.parent=this,u.render()}else{var h=this.image;e.setViewBox({ctx:t,aspectRatio:this.getAttribute("preserveAspectRatio").getString(),width:a,desiredWidth:h.width,height:o,desiredHeight:h.height}),this.loaded&&(void 0===h.complete||h.complete)&&t.drawImage(h,0,0)}t.restore()}}getBoundingBox(){var t=this.getAttribute("x").getPixels("x"),e=this.getAttribute("y").getPixels("y"),r=this.getStyle("width").getPixels("x"),i=this.getStyle("height").getPixels("y");return new Lt(t,e,t+r,e+i)}}class me extends Bt{constructor(){super(...arguments),this.type="symbol"}render(t){}}class xe{constructor(t){this.document=t,this.loaded=!1,t.fonts.push(this)}load(t,e){var r=this;return n((function*(){try{var{document:i}=r,n=(yield i.canvg.parser.load(e)).getElementsByTagName("font");Array.from(n).forEach((e=>{var r=i.createElement(e);i.definitions[t]=r}))}catch(t){console.error('Error while loading font "'.concat(e,'":'),t)}r.loaded=!0}))()}}class be extends Mt{constructor(t,e,r){super(t,e,r),this.type="style";var i=B(Array.from(e.childNodes).map((t=>t.textContent)).join("").replace(/(\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+\/)|(^[\s]*\/\/.*)/gm,"").replace(/@import.*;/g,""));i.split("}").forEach((e=>{var r=e.trim();if(r){var i=r.split("{"),n=i[0].split(","),s=i[1].split(";");n.forEach((e=>{var r=e.trim();if(r){var i=t.styles[r]||{};if(s.forEach((e=>{var r=e.indexOf(":"),n=e.substr(0,r).trim(),s=e.substr(r+1,e.length-r).trim();n&&s&&(i[n]=new ft(t,n,s))})),t.styles[r]=i,t.stylesSpecificity[r]=tt(r),"@font-face"===r){var n=i["font-family"].getString().replace(/"|'/g,"");i.src.getString().split(",").forEach((e=>{if(e.indexOf('format("svg")')>0){var r=X(e);r&&new xe(t).load(n,r)}}))}}}))}}))}}be.parseExternalUrl=X;class we extends Bt{constructor(){super(...arguments),this.type="use"}setContext(t){super.setContext(t);var e=this.getAttribute("x"),r=this.getAttribute("y");e.hasValue()&&t.translate(e.getPixels("x"),0),r.hasValue()&&t.translate(0,r.getPixels("y"))}path(t){var{element:e}=this;e&&e.path(t)}renderChildren(t){var{document:e,element:r}=this;if(r){var i=r;if("symbol"===r.type&&((i=new Xt(e,null)).attributes.viewBox=new ft(e,"viewBox",r.getAttribute("viewBox").getString()),i.attributes.preserveAspectRatio=new ft(e,"preserveAspectRatio",r.getAttribute("preserveAspectRatio").getString()),i.attributes.overflow=new ft(e,"overflow",r.getAttribute("overflow").getString()),i.children=r.children,r.styles.opacity=new ft(e,"opacity",this.calculateOpacity())),"svg"===i.type){var n=this.getStyle("width",!1,!0),s=this.getStyle("height",!1,!0);n.hasValue()&&(i.attributes.width=new ft(e,"width",n.getString())),s.hasValue()&&(i.attributes.height=new ft(e,"height",s.getString()))}var a=i.parent;i.parent=this,i.render(t),i.parent=a}}getBoundingBox(t){var{element:e}=this;return e?e.getBoundingBox(t):null}elementTransform(){var{document:t,element:e}=this;return Nt.fromElement(t,e)}get element(){return this.cachedElement||(this.cachedElement=this.getHrefAttribute().getDefinition()),this.cachedElement}}function Se(t,e,r,i,n,s){return t[r*i*4+4*e+s]}function Te(t,e,r,i,n,s,a){t[r*i*4+4*e+s]=a}function Oe(t,e,r){return t[e]*r}function Ae(t,e,r,i){return e+Math.cos(t)*r+Math.sin(t)*i}class Ce extends Mt{constructor(t,e,r){super(t,e,r),this.type="feColorMatrix";var i=z(this.getAttribute("values").getString());switch(this.getAttribute("type").getString("matrix")){case"saturate":var n=i[0];i=[.213+.787*n,.715-.715*n,.072-.072*n,0,0,.213-.213*n,.715+.285*n,.072-.072*n,0,0,.213-.213*n,.715-.715*n,.072+.928*n,0,0,0,0,0,1,0,0,0,0,0,1];break;case"hueRotate":var s=i[0]*Math.PI/180;i=[Ae(s,.213,.787,-.213),Ae(s,.715,-.715,-.715),Ae(s,.072,-.072,.928),0,0,Ae(s,.213,-.213,.143),Ae(s,.715,.285,.14),Ae(s,.072,-.072,-.283),0,0,Ae(s,.213,-.213,-.787),Ae(s,.715,-.715,.715),Ae(s,.072,.928,.072),0,0,0,0,0,1,0,0,0,0,0,1];break;case"luminanceToAlpha":i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,.2125,.7154,.0721,0,0,0,0,0,0,1]}this.matrix=i,this.includeOpacity=this.getAttribute("includeOpacity").hasValue()}apply(t,e,r,i,n){for(var{includeOpacity:s,matrix:a}=this,o=t.getImageData(0,0,i,n),u=0;u{o.addBoundingBox(e.getBoundingBox(t))})),i=Math.floor(o.x1),n=Math.floor(o.y1),s=Math.floor(o.width),a=Math.floor(o.height)}var u=this.removeStyles(e,Ee.ignoreStyles),h=r.createCanvas(i+s,n+a),c=h.getContext("2d");r.screen.setDefaults(c),this.renderChildren(c),new Ce(r,{nodeType:1,childNodes:[],attributes:[{nodeName:"type",value:"luminanceToAlpha"},{nodeName:"includeOpacity",value:"true"}]}).apply(c,0,0,i+s,n+a);var l=r.createCanvas(i+s,n+a),f=l.getContext("2d");r.screen.setDefaults(f),e.render(f),f.globalCompositeOperation="destination-in",f.fillStyle=c.createPattern(h,"no-repeat"),f.fillRect(0,0,i+s,n+a),t.fillStyle=f.createPattern(l,"no-repeat"),t.fillRect(0,0,i+s,n+a),this.restoreStyles(e,u)}render(t){}}Ee.ignoreStyles=["mask","transform","clip-path"];var Pe=()=>{};class Ne extends Mt{constructor(){super(...arguments),this.type="clipPath"}apply(t){var{document:e}=this,r=Reflect.getPrototypeOf(t),{beginPath:i,closePath:n}=t;r&&(r.beginPath=Pe,r.closePath=Pe),Reflect.apply(i,t,[]),this.children.forEach((i=>{if(void 0!==i.path){var s=void 0!==i.elementTransform?i.elementTransform():null;s||(s=Nt.fromElement(e,i)),s&&s.apply(t),i.path(t),r&&(r.closePath=n),s&&s.unapply(t)}})),Reflect.apply(n,t,[]),t.clip(),r&&(r.beginPath=i,r.closePath=n)}render(t){}}class Me extends Mt{constructor(){super(...arguments),this.type="filter"}apply(t,e){var{document:r,children:i}=this,n=e.getBoundingBox(t);if(n){var s=0,a=0;i.forEach((t=>{var e=t.extraFilterDistance||0;s=Math.max(s,e),a=Math.max(a,e)}));var o=Math.floor(n.width),u=Math.floor(n.height),h=o+2*s,c=u+2*a;if(!(h<1||c<1)){var l=Math.floor(n.x),f=Math.floor(n.y),g=this.removeStyles(e,Me.ignoreStyles),p=r.createCanvas(h,c),d=p.getContext("2d");r.screen.setDefaults(d),d.translate(-l+s,-f+a),e.render(d),i.forEach((t=>{"function"==typeof t.apply&&t.apply(d,0,0,h,c)})),t.drawImage(p,0,0,h,c,l-s,f-a,h,c),this.restoreStyles(e,g)}}}render(t){}}Me.ignoreStyles=["filter","transform","clip-path"];class Re extends Mt{constructor(t,e,r){super(t,e,r),this.type="feDropShadow",this.addStylesFromStyleDefinition()}apply(t,e,r,i,n){}}class _e extends Mt{constructor(){super(...arguments),this.type="feMorphology"}apply(t,e,r,i,n){}}class Ve extends Mt{constructor(){super(...arguments),this.type="feComposite"}apply(t,e,r,i,n){}}class ke extends Mt{constructor(t,e,r){super(t,e,r),this.type="feGaussianBlur",this.blurRadius=Math.floor(this.getAttribute("stdDeviation").getNumber()),this.extraFilterDistance=this.blurRadius}apply(t,e,r,i,n){var{document:s,blurRadius:a}=this,o=s.window?s.window.document.body:null,u=t.canvas;u.id=s.getUniqueId(),o&&(u.style.display="none",o.appendChild(u)),k(u,e,r,i,n,a),o&&o.removeChild(u)}}class Ie extends Mt{constructor(){super(...arguments),this.type="title"}}class Le extends Mt{constructor(){super(...arguments),this.type="desc"}}var De={svg:Xt,rect:Yt,circle:Wt,ellipse:qt,line:Gt,polyline:Qt,polygon:$t,path:jt,pattern:Zt,marker:Kt,defs:Jt,linearGradient:re,radialGradient:ie,stop:ne,animate:se,animateColor:ae,animateTransform:oe,font:ue,"font-face":he,"missing-glyph":ce,glyph:Ft,text:zt,tspan:Ut,tref:le,a:fe,textPath:de,image:ye,g:te,symbol:me,style:be,use:we,mask:Ee,clipPath:Ne,filter:Me,feDropShadow:Re,feMorphology:_e,feComposite:Ve,feColorMatrix:Ce,feGaussianBlur:ke,title:Ie,desc:Le};function Be(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,i)}return r}function je(){return je=n((function*(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=document.createElement("img");return e&&(r.crossOrigin="Anonymous"),new Promise(((e,i)=>{r.onload=()=>{e(r)},r.onerror=(t,e,r,n,s)=>{i(s)},r.src=t}))})),je.apply(this,arguments)}class Fe{constructor(t){var{rootEmSize:e=12,emSize:r=12,createCanvas:i=Fe.createCanvas,createImage:n=Fe.createImage,anonymousCrossOrigin:s}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.canvg=t,this.definitions={},this.styles={},this.stylesSpecificity={},this.images=[],this.fonts=[],this.emSizeStack=[],this.uniqueId=0,this.screen=t.screen,this.rootEmSize=e,this.emSize=r,this.createCanvas=i,this.createImage=this.bindCreateImage(n,s),this.screen.wait(this.isImagesLoaded.bind(this)),this.screen.wait(this.isFontsLoaded.bind(this))}bindCreateImage(t,e){return"boolean"==typeof e?(r,i)=>t(r,"boolean"==typeof i?i:e):t}get window(){return this.screen.window}get fetch(){return this.screen.fetch}get ctx(){return this.screen.ctx}get emSize(){var{emSizeStack:t}=this;return t[t.length-1]}set emSize(t){var{emSizeStack:e}=this;e.push(t)}popEmSize(){var{emSizeStack:t}=this;t.pop()}getUniqueId(){return"canvg".concat(++this.uniqueId)}isImagesLoaded(){return this.images.every((t=>t.loaded))}isFontsLoaded(){return this.fonts.every((t=>t.loaded))}createDocumentElement(t){var e=this.createElement(t.documentElement);return e.root=!0,e.addStylesFromStyleDefinition(),this.documentElement=e,e}createElement(t){var e=t.nodeName.replace(/^[^:]+:/,""),r=Fe.elementTypes[e];return void 0!==r?new r(this,t):new Rt(this,t)}createTextNode(t){return new Ht(this,t)}setViewBox(t){this.screen.setViewBox(function(t){for(var e=1;e2&&void 0!==arguments[2]?arguments[2]:{};this.parser=new wt(r),this.screen=new mt(t,r),this.options=r;var i=new Fe(this,r),n=i.createDocumentElement(e);this.document=i,this.documentElement=n}static from(t,e){var r=arguments;return n((function*(){var i=r.length>2&&void 0!==r[2]?r[2]:{},n=new wt(i),s=yield n.parse(e);return new He(t,s,i)}))()}static fromString(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=new wt(r).parseFromString(e);return new He(t,i,r)}fork(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return He.from(t,e,Ue(Ue({},this.options),r))}forkString(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return He.fromString(t,e,Ue(Ue({},this.options),r))}ready(){return this.screen.ready()}isReady(){return this.screen.isReady()}render(){var t=arguments,e=this;return n((function*(){var r=t.length>0&&void 0!==t[0]?t[0]:{};e.start(Ue({enableRedraw:!0,ignoreAnimation:!0,ignoreMouse:!0},r)),yield e.ready(),e.stop()}))()}start(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{documentElement:e,screen:r,options:i}=this;r.start(e,Ue(Ue({enableRedraw:!0},i),t))}stop(){this.screen.stop()}resize(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t,r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];this.documentElement.resize(t,e,r)}}}}]); +//# sourceMappingURL=332.js.map \ No newline at end of file diff --git a/public/js/332.js.map b/public/js/332.js.map new file mode 100644 index 0000000..aceb82d --- /dev/null +++ b/public/js/332.js.map @@ -0,0 +1 @@ +{"version":3,"file":"js/332.js","mappings":"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AK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAClwCC,EAAW,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI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","sources":["webpack:///./node_modules/performance-now/lib/performance-now.js","webpack:///./node_modules/raf/index.js","webpack:///./node_modules/rgbcolor/index.js","webpack:///./node_modules/core-js/internals/a-callable.js","webpack:///./node_modules/core-js/internals/a-constructor.js","webpack:///./node_modules/core-js/internals/a-possible-prototype.js","webpack:///./node_modules/core-js/internals/add-to-unscopables.js","webpack:///./node_modules/core-js/internals/advance-string-index.js","webpack:///./node_modules/core-js/internals/an-instance.js","webpack:///./node_modules/core-js/internals/an-object.js","webpack:///./node_modules/core-js/internals/array-includes.js","webpack:///./node_modules/core-js/internals/array-method-is-strict.js","webpack:///./node_modules/core-js/internals/array-reduce.js","webpack:///./node_modules/core-js/internals/array-slice.js","webpack:///./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:///./node_modules/core-js/internals/classof-raw.js","webpack:///./node_modules/core-js/internals/classof.js","webpack:///./node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/core-js/internals/correct-is-regexp-logic.js","webpack:///./node_modules/core-js/internals/correct-prototype-getter.js","webpack:///./node_modules/core-js/internals/create-iter-result-object.js","webpack:///./node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///./node_modules/core-js/internals/create-property-descriptor.js","webpack:///./node_modules/core-js/internals/define-built-in-accessor.js","webpack:///./node_modules/core-js/internals/define-built-in.js","webpack:///./node_modules/core-js/internals/define-global-property.js","webpack:///./node_modules/core-js/internals/descriptors.js","webpack:///./node_modules/core-js/internals/document-create-element.js","webpack:///./node_modules/core-js/internals/dom-iterables.js","webpack:///./node_modules/core-js/internals/dom-token-list-prototype.js","webpack:///./node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/core-js/internals/environment-is-ios-pebble.js","webpack:///./node_modules/core-js/internals/environment-is-ios.js","webpack:///./node_modules/core-js/internals/environment-is-node.js","webpack:///./node_modules/core-js/internals/environment-is-webos-webkit.js","webpack:///./node_modules/core-js/internals/environment-user-agent.js","webpack:///./node_modules/core-js/internals/environment-v8-version.js","webpack:///./node_modules/core-js/internals/environment.js","webpack:///./node_modules/core-js/internals/export.js","webpack:///./node_modules/core-js/internals/fails.js","webpack:///./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack:///./node_modules/core-js/internals/function-apply.js","webpack:///./node_modules/core-js/internals/function-bind-context.js","webpack:///./node_modules/core-js/internals/function-bind-native.js","webpack:///./node_modules/core-js/internals/function-call.js","webpack:///./node_modules/core-js/internals/function-name.js","webpack:///./node_modules/core-js/internals/function-uncurry-this-accessor.js","webpack:///./node_modules/core-js/internals/function-uncurry-this-clause.js","webpack:///./node_modules/core-js/internals/function-uncurry-this.js","webpack:///./node_modules/core-js/internals/get-built-in.js","webpack:///./node_modules/core-js/internals/get-iterator-method.js","webpack:///./node_modules/core-js/internals/get-iterator.js","webpack:///./node_modules/core-js/internals/get-method.js","webpack:///./node_modules/core-js/internals/get-substitution.js","webpack:///./node_modules/core-js/internals/global-this.js","webpack:///./node_modules/core-js/internals/has-own-property.js","webpack:///./node_modules/core-js/internals/hidden-keys.js","webpack:///./node_modules/core-js/internals/host-report-errors.js","webpack:///./node_modules/core-js/internals/html.js","webpack:///./node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/core-js/internals/indexed-object.js","webpack:///./node_modules/core-js/internals/inspect-source.js","webpack:///./node_modules/core-js/internals/internal-state.js","webpack:///./node_modules/core-js/internals/is-array-iterator-method.js","webpack:///./node_modules/core-js/internals/is-array.js","webpack:///./node_modules/core-js/internals/is-callable.js","webpack:///./node_modules/core-js/internals/is-constructor.js","webpack:///./node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/core-js/internals/is-null-or-undefined.js","webpack:///./node_modules/core-js/internals/is-object.js","webpack:///./node_modules/core-js/internals/is-possible-prototype.js","webpack:///./node_modules/core-js/internals/is-pure.js","webpack:///./node_modules/core-js/internals/is-regexp.js","webpack:///./node_modules/core-js/internals/is-symbol.js","webpack:///./node_modules/core-js/internals/iterate.js","webpack:///./node_modules/core-js/internals/iterator-close.js","webpack:///./node_modules/core-js/internals/iterator-create-constructor.js","webpack:///./node_modules/core-js/internals/iterator-define.js","webpack:///./node_modules/core-js/internals/iterators-core.js","webpack:///./node_modules/core-js/internals/iterators.js","webpack:///./node_modules/core-js/internals/length-of-array-like.js","webpack:///./node_modules/core-js/internals/make-built-in.js","webpack:///./node_modules/core-js/internals/math-trunc.js","webpack:///./node_modules/core-js/internals/microtask.js","webpack:///./node_modules/core-js/internals/new-promise-capability.js","webpack:///./node_modules/core-js/internals/not-a-regexp.js","webpack:///./node_modules/core-js/internals/object-create.js","webpack:///./node_modules/core-js/internals/object-define-properties.js","webpack:///./node_modules/core-js/internals/object-define-property.js","webpack:///./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names.js","webpack:///./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/core-js/internals/object-get-prototype-of.js","webpack:///./node_modules/core-js/internals/object-is-prototype-of.js","webpack:///./node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/core-js/internals/object-keys.js","webpack:///./node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./node_modules/core-js/internals/object-set-prototype-of.js","webpack:///./node_modules/core-js/internals/ordinary-to-primitive.js","webpack:///./node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/core-js/internals/perform.js","webpack:///./node_modules/core-js/internals/promise-constructor-detection.js","webpack:///./node_modules/core-js/internals/promise-native-constructor.js","webpack:///./node_modules/core-js/internals/promise-resolve.js","webpack:///./node_modules/core-js/internals/promise-statics-incorrect-iteration.js","webpack:///./node_modules/core-js/internals/queue.js","webpack:///./node_modules/core-js/internals/regexp-exec-abstract.js","webpack:///./node_modules/core-js/internals/regexp-exec.js","webpack:///./node_modules/core-js/internals/regexp-flags.js","webpack:///./node_modules/core-js/internals/regexp-get-flags.js","webpack:///./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack:///./node_modules/core-js/internals/regexp-unsupported-dot-all.js","webpack:///./node_modules/core-js/internals/regexp-unsupported-ncg.js","webpack:///./node_modules/core-js/internals/require-object-coercible.js","webpack:///./node_modules/core-js/internals/safe-get-built-in.js","webpack:///./node_modules/core-js/internals/set-species.js","webpack:///./node_modules/core-js/internals/set-to-string-tag.js","webpack:///./node_modules/core-js/internals/shared-key.js","webpack:///./node_modules/core-js/internals/shared-store.js","webpack:///./node_modules/core-js/internals/shared.js","webpack:///./node_modules/core-js/internals/species-constructor.js","webpack:///./node_modules/core-js/internals/string-multibyte.js","webpack:///./node_modules/core-js/internals/string-trim-forced.js","webpack:///./node_modules/core-js/internals/string-trim.js","webpack:///./node_modules/core-js/internals/symbol-constructor-detection.js","webpack:///./node_modules/core-js/internals/task.js","webpack:///./node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/core-js/internals/to-indexed-object.js","webpack:///./node_modules/core-js/internals/to-integer-or-infinity.js","webpack:///./node_modules/core-js/internals/to-length.js","webpack:///./node_modules/core-js/internals/to-object.js","webpack:///./node_modules/core-js/internals/to-primitive.js","webpack:///./node_modules/core-js/internals/to-property-key.js","webpack:///./node_modules/core-js/internals/to-string-tag-support.js","webpack:///./node_modules/core-js/internals/to-string.js","webpack:///./node_modules/core-js/internals/try-to-string.js","webpack:///./node_modules/core-js/internals/uid.js","webpack:///./node_modules/core-js/internals/use-symbol-as-uid.js","webpack:///./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack:///./node_modules/core-js/internals/validate-arguments-length.js","webpack:///./node_modules/core-js/internals/weak-map-basic-detection.js","webpack:///./node_modules/core-js/internals/well-known-symbol.js","webpack:///./node_modules/core-js/internals/whitespaces.js","webpack:///./node_modules/core-js/modules/es.array.index-of.js","webpack:///./node_modules/core-js/modules/es.array.iterator.js","webpack:///./node_modules/core-js/modules/es.array.reduce.js","webpack:///./node_modules/core-js/modules/es.array.reverse.js","webpack:///./node_modules/core-js/modules/es.promise.all.js","webpack:///./node_modules/core-js/modules/es.promise.catch.js","webpack:///./node_modules/core-js/modules/es.promise.constructor.js","webpack:///./node_modules/core-js/modules/es.promise.js","webpack:///./node_modules/core-js/modules/es.promise.race.js","webpack:///./node_modules/core-js/modules/es.promise.reject.js","webpack:///./node_modules/core-js/modules/es.promise.resolve.js","webpack:///./node_modules/core-js/modules/es.regexp.exec.js","webpack:///./node_modules/core-js/modules/es.regexp.to-string.js","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/core-js/modules/es.string.includes.js","webpack:///./node_modules/core-js/modules/es.string.match.js","webpack:///./node_modules/core-js/modules/es.string.replace.js","webpack:///./node_modules/core-js/modules/es.string.split.js","webpack:///./node_modules/core-js/modules/es.string.starts-with.js","webpack:///./node_modules/core-js/modules/es.string.trim.js","webpack:///./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./node_modules/svg-pathdata/lib/SVGPathData.module.js","webpack:///./node_modules/stackblur-canvas/dist/stackblur-es.js","webpack:///./node_modules/canvg/lib/index.es.js"],"sourcesContent":["// Generated by CoffeeScript 1.12.2\n(function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","/*\n\tBased on rgbcolor.js by Stoyan Stefanov \n\thttp://www.phpied.com/rgb-color-parser-in-javascript/\n*/\n\nmodule.exports = function(color_string) {\n this.ok = false;\n this.alpha = 1.0;\n\n // strip any leading #\n if (color_string.charAt(0) == '#') { // remove # if any\n color_string = color_string.substr(1,6);\n }\n\n color_string = color_string.replace(/ /g,'');\n color_string = color_string.toLowerCase();\n\n // before getting into regexps, try simple matches\n // and overwrite the input\n var simple_colors = {\n aliceblue: 'f0f8ff',\n antiquewhite: 'faebd7',\n aqua: '00ffff',\n aquamarine: '7fffd4',\n azure: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '000000',\n blanchedalmond: 'ffebcd',\n blue: '0000ff',\n blueviolet: '8a2be2',\n brown: 'a52a2a',\n burlywood: 'deb887',\n cadetblue: '5f9ea0',\n chartreuse: '7fff00',\n chocolate: 'd2691e',\n coral: 'ff7f50',\n cornflowerblue: '6495ed',\n cornsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: '00ffff',\n darkblue: '00008b',\n darkcyan: '008b8b',\n darkgoldenrod: 'b8860b',\n darkgray: 'a9a9a9',\n darkgreen: '006400',\n darkkhaki: 'bdb76b',\n darkmagenta: '8b008b',\n darkolivegreen: '556b2f',\n darkorange: 'ff8c00',\n darkorchid: '9932cc',\n darkred: '8b0000',\n darksalmon: 'e9967a',\n darkseagreen: '8fbc8f',\n darkslateblue: '483d8b',\n darkslategray: '2f4f4f',\n darkturquoise: '00ced1',\n darkviolet: '9400d3',\n deeppink: 'ff1493',\n deepskyblue: '00bfff',\n dimgray: '696969',\n dodgerblue: '1e90ff',\n feldspar: 'd19275',\n firebrick: 'b22222',\n floralwhite: 'fffaf0',\n forestgreen: '228b22',\n fuchsia: 'ff00ff',\n gainsboro: 'dcdcdc',\n ghostwhite: 'f8f8ff',\n gold: 'ffd700',\n goldenrod: 'daa520',\n gray: '808080',\n green: '008000',\n greenyellow: 'adff2f',\n honeydew: 'f0fff0',\n hotpink: 'ff69b4',\n indianred : 'cd5c5c',\n indigo : '4b0082',\n ivory: 'fffff0',\n khaki: 'f0e68c',\n lavender: 'e6e6fa',\n lavenderblush: 'fff0f5',\n lawngreen: '7cfc00',\n lemonchiffon: 'fffacd',\n lightblue: 'add8e6',\n lightcoral: 'f08080',\n lightcyan: 'e0ffff',\n lightgoldenrodyellow: 'fafad2',\n lightgrey: 'd3d3d3',\n lightgreen: '90ee90',\n lightpink: 'ffb6c1',\n lightsalmon: 'ffa07a',\n lightseagreen: '20b2aa',\n lightskyblue: '87cefa',\n lightslateblue: '8470ff',\n lightslategray: '778899',\n lightsteelblue: 'b0c4de',\n lightyellow: 'ffffe0',\n lime: '00ff00',\n limegreen: '32cd32',\n linen: 'faf0e6',\n magenta: 'ff00ff',\n maroon: '800000',\n mediumaquamarine: '66cdaa',\n mediumblue: '0000cd',\n mediumorchid: 'ba55d3',\n mediumpurple: '9370d8',\n mediumseagreen: '3cb371',\n mediumslateblue: '7b68ee',\n mediumspringgreen: '00fa9a',\n mediumturquoise: '48d1cc',\n mediumvioletred: 'c71585',\n midnightblue: '191970',\n mintcream: 'f5fffa',\n mistyrose: 'ffe4e1',\n moccasin: 'ffe4b5',\n navajowhite: 'ffdead',\n navy: '000080',\n oldlace: 'fdf5e6',\n olive: '808000',\n olivedrab: '6b8e23',\n orange: 'ffa500',\n orangered: 'ff4500',\n orchid: 'da70d6',\n palegoldenrod: 'eee8aa',\n palegreen: '98fb98',\n paleturquoise: 'afeeee',\n palevioletred: 'd87093',\n papayawhip: 'ffefd5',\n peachpuff: 'ffdab9',\n peru: 'cd853f',\n pink: 'ffc0cb',\n plum: 'dda0dd',\n powderblue: 'b0e0e6',\n purple: '800080',\n rebeccapurple: '663399',\n red: 'ff0000',\n rosybrown: 'bc8f8f',\n royalblue: '4169e1',\n saddlebrown: '8b4513',\n salmon: 'fa8072',\n sandybrown: 'f4a460',\n seagreen: '2e8b57',\n seashell: 'fff5ee',\n sienna: 'a0522d',\n silver: 'c0c0c0',\n skyblue: '87ceeb',\n slateblue: '6a5acd',\n slategray: '708090',\n snow: 'fffafa',\n springgreen: '00ff7f',\n steelblue: '4682b4',\n tan: 'd2b48c',\n teal: '008080',\n thistle: 'd8bfd8',\n tomato: 'ff6347',\n turquoise: '40e0d0',\n violet: 'ee82ee',\n violetred: 'd02090',\n wheat: 'f5deb3',\n white: 'ffffff',\n whitesmoke: 'f5f5f5',\n yellow: 'ffff00',\n yellowgreen: '9acd32'\n };\n color_string = simple_colors[color_string] || color_string;\n // emd of simple type-in colors\n\n // array of color definition objects\n var color_defs = [\n {\n re: /^rgba\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3}),\\s*((?:\\d?\\.)?\\d)\\)$/,\n example: ['rgba(123, 234, 45, 0.8)', 'rgba(255,234,245,1.0)'],\n process: function (bits){\n return [\n parseInt(bits[1]),\n parseInt(bits[2]),\n parseInt(bits[3]),\n parseFloat(bits[4])\n ];\n }\n },\n {\n re: /^rgb\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,\n example: ['rgb(123, 234, 45)', 'rgb(255,234,245)'],\n process: function (bits){\n return [\n parseInt(bits[1]),\n parseInt(bits[2]),\n parseInt(bits[3])\n ];\n }\n },\n {\n re: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n example: ['#00ff00', '336699'],\n process: function (bits){\n return [\n parseInt(bits[1], 16),\n parseInt(bits[2], 16),\n parseInt(bits[3], 16)\n ];\n }\n },\n {\n re: /^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n example: ['#fb0', 'f0f'],\n process: function (bits){\n return [\n parseInt(bits[1] + bits[1], 16),\n parseInt(bits[2] + bits[2], 16),\n parseInt(bits[3] + bits[3], 16)\n ];\n }\n }\n ];\n\n // search through the definitions to find a match\n for (var i = 0; i < color_defs.length; i++) {\n var re = color_defs[i].re;\n var processor = color_defs[i].process;\n var bits = re.exec(color_string);\n if (bits) {\n var channels = processor(bits);\n this.r = channels[0];\n this.g = channels[1];\n this.b = channels[2];\n if (channels.length > 3) {\n this.alpha = channels[3];\n }\n this.ok = true;\n }\n\n }\n\n // validate/cleanup values\n this.r = (this.r < 0 || isNaN(this.r)) ? 0 : ((this.r > 255) ? 255 : this.r);\n this.g = (this.g < 0 || isNaN(this.g)) ? 0 : ((this.g > 255) ? 255 : this.g);\n this.b = (this.b < 0 || isNaN(this.b)) ? 0 : ((this.b > 255) ? 255 : this.b);\n this.alpha = (this.alpha < 0) ? 0 : ((this.alpha > 1.0 || isNaN(this.alpha)) ? 1.0 : this.alpha);\n\n // some getters\n this.toRGB = function () {\n return 'rgb(' + this.r + ', ' + this.g + ', ' + this.b + ')';\n }\n this.toRGBA = function () {\n return 'rgba(' + this.r + ', ' + this.g + ', ' + this.b + ', ' + this.alpha + ')';\n }\n this.toHex = function () {\n var r = this.r.toString(16);\n var g = this.g.toString(16);\n var b = this.b.toString(16);\n if (r.length == 1) r = '0' + r;\n if (g.length == 1) g = '0' + g;\n if (b.length == 1) b = '0' + b;\n return '#' + r + g + b;\n }\n\n // help\n this.getHelpXML = function () {\n\n var examples = new Array();\n // add regexps\n for (var i = 0; i < color_defs.length; i++) {\n var example = color_defs[i].example;\n for (var j = 0; j < example.length; j++) {\n examples[examples.length] = example[j];\n }\n }\n // add type-in colors\n for (var sc in simple_colors) {\n examples[examples.length] = sc;\n }\n\n var xml = document.createElement('ul');\n xml.setAttribute('id', 'rgbcolor-examples');\n for (var i = 0; i < examples.length; i++) {\n try {\n var list_item = document.createElement('li');\n var list_color = new RGBColor(examples[i]);\n var example_div = document.createElement('div');\n example_div.style.cssText =\n 'margin: 3px; '\n + 'border: 1px solid black; '\n + 'background:' + list_color.toHex() + '; '\n + 'color:' + list_color.toHex()\n ;\n example_div.appendChild(document.createTextNode('test'));\n var list_item_value = document.createTextNode(\n ' ' + examples[i] + ' -> ' + list_color.toRGB() + ' -> ' + list_color.toHex()\n );\n list_item.appendChild(example_div);\n list_item.appendChild(list_item_value);\n xml.appendChild(list_item);\n\n } catch(e){}\n }\n return xml;\n\n }\n\n}\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\nvar isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","'use strict';\nvar isPossiblePrototype = require('../internals/is-possible-prototype');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (isPossiblePrototype(argument)) return argument;\n throw new $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] === undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","'use strict';\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw new $TypeError('Incorrect invocation');\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n if (length === 0) return !IS_INCLUDES && -1;\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el !== el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call -- required for testing\n method.call(null, argument || function () { return 1; }, 1);\n });\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar $TypeError = TypeError;\n\nvar REDUCE_EMPTY = 'Reduce of empty array with no initial value';\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = lengthOfArrayLike(O);\n aCallable(callbackfn);\n if (length === 0 && argumentsLength < 2) throw new $TypeError(REDUCE_EMPTY);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw new $TypeError(REDUCE_EMPTY);\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n try {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n } catch (error) { return false; } // workaround of old WebKit + `eval` bug\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\n// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","'use strict';\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(globalThis, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n globalThis[key] = value;\n } return value;\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isObject = require('../internals/is-object');\n\nvar document = globalThis.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\n// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","'use strict';\n// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","'use strict';\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","'use strict';\nvar userAgent = require('../internals/environment-user-agent');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && typeof Pebble != 'undefined';\n","'use strict';\nvar userAgent = require('../internals/environment-user-agent');\n\n// eslint-disable-next-line redos/no-vulnerable -- safe\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","'use strict';\nvar ENVIRONMENT = require('../internals/environment');\n\nmodule.exports = ENVIRONMENT === 'NODE';\n","'use strict';\nvar userAgent = require('../internals/environment-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\nvar navigator = globalThis.navigator;\nvar userAgent = navigator && navigator.userAgent;\n\nmodule.exports = userAgent ? String(userAgent) : '';\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar userAgent = require('../internals/environment-user-agent');\n\nvar process = globalThis.process;\nvar Deno = globalThis.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","'use strict';\n/* global Bun, Deno -- detection */\nvar globalThis = require('../internals/global-this');\nvar userAgent = require('../internals/environment-user-agent');\nvar classof = require('../internals/classof-raw');\n\nvar userAgentStartsWith = function (string) {\n return userAgent.slice(0, string.length) === string;\n};\n\nmodule.exports = (function () {\n if (userAgentStartsWith('Bun/')) return 'BUN';\n if (userAgentStartsWith('Cloudflare-Workers')) return 'CLOUDFLARE';\n if (userAgentStartsWith('Deno/')) return 'DENO';\n if (userAgentStartsWith('Node.js/')) return 'NODE';\n if (globalThis.Bun && typeof Bun.version == 'string') return 'BUN';\n if (globalThis.Deno && typeof Deno.version == 'object') return 'DENO';\n if (classof(globalThis.process) === 'process') return 'NODE';\n if (globalThis.window && globalThis.document) return 'BROWSER';\n return 'REST';\n})();\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = globalThis;\n } else if (STATIC) {\n target = globalThis[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = globalThis[TARGET] && globalThis[TARGET].prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (KEY, exec, FORCED, SHAM) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegExp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) !== 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () {\n execCalled = true;\n return null;\n };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n FORCED\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var $exec = regexp.exec;\n if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: call(nativeRegExpMethod, regexp, str, arg2) };\n }\n return { done: true, value: call(nativeMethod, str, regexp, arg2) };\n }\n return { done: false };\n });\n\n defineBuiltIn(String.prototype, KEY, methods[0]);\n defineBuiltIn(RegExpPrototype, SYMBOL, methods[1]);\n }\n\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-function-prototype-bind, es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n// eslint-disable-next-line es/no-function-prototype-bind -- safe\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","'use strict';\nvar classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\n// eslint-disable-next-line es/no-function-prototype-bind -- safe\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(globalThis[namespace]) : globalThis[namespace] && globalThis[namespace][method];\n};\n","'use strict';\nvar classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw new $TypeError(tryToString(argument) + ' is not iterable');\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n// eslint-disable-next-line redos/no-vulnerable -- safe\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","'use strict';\nvar check = function (it) {\n return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n check(typeof this == 'object' && this) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nmodule.exports = function (a, b) {\n try {\n // eslint-disable-next-line no-console -- safe\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n } catch (error) { /* empty */ }\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","'use strict';\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar globalThis = require('../internals/global-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = globalThis.TypeError;\nvar WeakMap = globalThis.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw new TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","'use strict';\nvar classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) === 'Array';\n};\n","'use strict';\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar documentAll = typeof document == 'object' && document.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nmodule.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.test(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, [], argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value === POLYFILL ? true\n : value === NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nmodule.exports = function (argument) {\n return isObject(argument) || argument === null;\n};\n","'use strict';\nmodule.exports = false;\n","'use strict';\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) === 'RegExp');\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw new $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND && KIND in IterablePrototype) return IterablePrototype[KIND];\n\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n }\n\n return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME === 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT === VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\).*$/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar safeGetBuiltIn = require('../internals/safe-get-built-in');\nvar bind = require('../internals/function-bind-context');\nvar macrotask = require('../internals/task').set;\nvar Queue = require('../internals/queue');\nvar IS_IOS = require('../internals/environment-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/environment-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/environment-is-webos-webkit');\nvar IS_NODE = require('../internals/environment-is-node');\n\nvar MutationObserver = globalThis.MutationObserver || globalThis.WebKitMutationObserver;\nvar document = globalThis.document;\nvar process = globalThis.process;\nvar Promise = globalThis.Promise;\nvar microtask = safeGetBuiltIn('queueMicrotask');\nvar notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!microtask) {\n var queue = new Queue();\n\n var flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (fn = queue.get()) try {\n fn();\n } catch (error) {\n if (queue.head) notify();\n throw error;\n }\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessage\n // - onreadystatechange\n // - setTimeout\n } else {\n // `webpack` dev server bug on IE global methods - use bind(fn, global)\n macrotask = bind(macrotask, globalThis);\n notify = function () {\n macrotask(flush);\n };\n }\n\n microtask = function (fn) {\n if (!queue.head) notify();\n queue.add(fn);\n };\n}\n\nmodule.exports = microtask;\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw new $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar isRegExp = require('../internals/is-regexp');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw new $TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","'use strict';\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n // eslint-disable-next-line no-useless-assignment -- avoid memory leak\n activeXDocument = null;\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\n/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar isObject = require('../internals/is-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n requireObjectCoercible(O);\n aPossiblePrototype(proto);\n if (!isObject(O)) return O;\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw new $TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar ENVIRONMENT = require('../internals/environment');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/environment-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(globalThis.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n } return !GLOBAL_CORE_JS_PROMISE && (ENVIRONMENT === 'BROWSER' || ENVIRONMENT === 'DENO') && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\nmodule.exports = globalThis.Promise;\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","'use strict';\nvar Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n var tail = this.tail;\n if (tail) tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n var next = this.head = entry.next;\n if (next === null) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar regexpExec = require('../internals/regexp-exec');\n\nvar $TypeError = TypeError;\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (isCallable(exec)) {\n var result = call(exec, R, S);\n if (result !== null) anObject(result);\n return result;\n }\n if (classof(R) === 'RegExp') return call(regexpExec, R, S);\n throw new $TypeError('RegExp#exec called on incompatible receiver');\n};\n","'use strict';\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\nvar nativeExec = RegExp.prototype.exec;\nvar patchedExec = nativeExec;\nvar charAt = uncurryThis(''.charAt);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n call(nativeExec, re1, 'a');\n call(nativeExec, re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n patchedExec = function exec(string) {\n var re = this;\n var state = getInternalState(re);\n var str = toString(string);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = call(patchedExec, raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = call(regexpFlags, re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = replace(flags, 'y', '');\n if (indexOf(flags, 'g') === -1) {\n flags += 'g';\n }\n\n strCopy = stringSlice(str, re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = stringSlice(match.input, charsAdded);\n match[0] = stringSlice(match[0], charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/\n call(nativeReplace, match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\n }\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n ? call(regExpFlags, R) : flags;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = globalThis.RegExp;\n\nvar UNSUPPORTED_Y = fails(function () {\n var re = $RegExp('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') !== null;\n});\n\n// UC Browser bug\n// https://github.com/zloirock/core-js/issues/1008\nvar MISSED_STICKY = UNSUPPORTED_Y || fails(function () {\n return !$RegExp('a', 'y').sticky;\n});\n\nvar BROKEN_CARET = UNSUPPORTED_Y || fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = $RegExp('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') !== null;\n});\n\nmodule.exports = {\n BROKEN_CARET: BROKEN_CARET,\n MISSED_STICKY: MISSED_STICKY,\n UNSUPPORTED_Y: UNSUPPORTED_Y\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = globalThis.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('.', 's');\n return !(re.dotAll && re.test('\\n') && re.flags === 's');\n});\n","'use strict';\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?b)', 'g') -> /(?b)/g and it causes SyntaxError\nvar $RegExp = globalThis.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$c') !== 'bc';\n});\n","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar DESCRIPTORS = require('../internals/descriptors');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Avoid NodeJS experimental warning\nmodule.exports = function (name) {\n if (!DESCRIPTORS) return globalThis[name];\n var descriptor = getOwnPropertyDescriptor(globalThis, name);\n return descriptor && descriptor.value;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineBuiltInAccessor(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","'use strict';\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar globalThis = require('../internals/global-this');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});\n\n(store.versions || (store.versions = [])).push({\n version: '3.40.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2025 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.40.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\nvar store = require('../internals/shared-store');\n\nmodule.exports = function (key, value) {\n return store[key] || (store[key] = value || {});\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar ltrim = RegExp('^[' + whitespaces + ']+');\nvar rtrim = RegExp('(^|[^' + whitespaces + '])[' + whitespaces + ']+$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '$1');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/environment-v8-version');\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\nvar $String = globalThis.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/environment-is-ios');\nvar IS_NODE = require('../internals/environment-is-node');\n\nvar set = globalThis.setImmediate;\nvar clear = globalThis.clearImmediate;\nvar process = globalThis.process;\nvar Dispatch = globalThis.Dispatch;\nvar Function = globalThis.Function;\nvar MessageChannel = globalThis.MessageChannel;\nvar String = globalThis.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\n\nfails(function () {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n $location = globalThis.location;\n});\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar eventListener = function (event) {\n run(event.data);\n};\n\nvar globalPostMessageDefer = function (id) {\n // old engines have not location.origin\n globalThis.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = eventListener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n globalThis.addEventListener &&\n isCallable(globalThis.postMessage) &&\n !globalThis.importScripts &&\n $location && $location.protocol !== 'file:' &&\n !fails(globalPostMessageDefer)\n ) {\n defer = globalPostMessageDefer;\n globalThis.addEventListener('message', eventListener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","'use strict';\nvar trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n var len = toIntegerOrInfinity(argument);\n return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw new $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","'use strict';\nvar classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL &&\n !Symbol.sham &&\n typeof Symbol.iterator == 'symbol';\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype !== 42;\n});\n","'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw new $TypeError('Not enough arguments');\n return passed;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = globalThis.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = globalThis.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\n// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","'use strict';\n/* eslint-disable es/no-array-prototype-indexof -- required for testing */\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeIndexOf = uncurryThis([].indexOf);\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / nativeIndexOf([1], 1, -0) < 0;\nvar FORCED = NEGATIVE_ZERO || !arrayMethodIsStrict('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: FORCED }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n var fromIndex = arguments.length > 1 ? arguments[1] : undefined;\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf(this, searchElement, fromIndex) || 0\n : $indexOf(this, searchElement, fromIndex);\n }\n});\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = null;\n return createIterResultObject(undefined, true);\n }\n switch (state.kind) {\n case 'keys': return createIterResultObject(index, false);\n case 'values': return createIterResultObject(target[index], false);\n } return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/environment-v8-version');\nvar IS_NODE = require('../internals/environment-is-node');\n\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\nvar FORCED = CHROME_BUG || !arrayMethodIsStrict('reduce');\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: FORCED }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isArray = require('../internals/is-array');\n\nvar nativeReverse = uncurryThis([].reverse);\nvar test = [1, 2];\n\n// `Array.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-array.prototype.reverse\n// fix for Safari 12.0 bug\n// https://bugs.webkit.org/show_bug.cgi?id=188794\n$({ target: 'Array', proto: true, forced: String(test) === String(test.reverse()) }, {\n reverse: function reverse() {\n // eslint-disable-next-line no-self-assign -- dirty hack\n if (isArray(this)) this.length = this.length;\n return nativeReverse(this);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n if (NativePromisePrototype['catch'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/environment-is-node');\nvar globalThis = require('../internals/global-this');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = globalThis.TypeError;\nvar document = globalThis.document;\nvar process = globalThis.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && globalThis.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state === FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(new TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n globalThis.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = globalThis['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, globalThis, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, globalThis, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw new TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: null\n });\n };\n\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state === PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n// `Promise` constructor\n// https://tc39.es/ecma262/#sec-promise-executor\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.promise.constructor');\nrequire('../modules/es.promise.all');\nrequire('../modules/es.promise.catch');\nrequire('../modules/es.promise.race');\nrequire('../modules/es.promise.reject');\nrequire('../modules/es.promise.resolve');\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n var capabilityReject = capability.reject;\n capabilityReject(r);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar defineBuiltIn = require('../internals/define-built-in');\nvar anObject = require('../internals/an-object');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) !== '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name !== TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n defineBuiltIn(RegExpPrototype, TO_STRING, function toString() {\n var R = anObject(this);\n var pattern = $toString(R.source);\n var flags = $toString(getRegExpFlags(R));\n return '/' + pattern + '/' + flags;\n }, { unsafe: true });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar slice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = that.length;\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = toString(searchString);\n return slice(that, end - search.length, end) === search;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~stringIndexOf(\n toString(requireObjectCoercible(this)),\n toString(notARegExp(searchString)),\n arguments.length > 1 ? arguments[1] : undefined\n );\n }\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar getMethod = require('../internals/get-method');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.es/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, MATCH);\n return matcher ? call(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeMatch, rx, S);\n\n if (res.done) return res.value;\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = toString(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getMethod = require('../internals/get-method');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar max = Math.max;\nvar min = Math.min;\nvar concat = uncurryThis([].concat);\nvar push = uncurryThis([].push);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive\n return ''.replace(re, '$') !== '7';\n});\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = isNullOrUndefined(searchValue) ? undefined : getMethod(searchValue, REPLACE);\n return replacer\n ? call(replacer, searchValue, O, replaceValue)\n : call(nativeReplace, toString(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (string, replaceValue) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (\n typeof replaceValue == 'string' &&\n stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 &&\n stringIndexOf(replaceValue, '$<') === -1\n ) {\n var res = maybeCallNative(nativeReplace, rx, S, replaceValue);\n if (res.done) return res.value;\n }\n\n var functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n\n var global = rx.global;\n var fullUnicode;\n if (global) {\n fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n\n var results = [];\n var result;\n while (true) {\n result = regExpExec(rx, S);\n if (result === null) break;\n\n push(results, result);\n if (!global) break;\n\n var matchStr = toString(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = toString(result[0]);\n var position = max(min(toIntegerOrInfinity(result.index), S.length), 0);\n var captures = [];\n var replacement;\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = concat([matched], captures, position, S);\n if (namedCaptures !== undefined) push(replacerArgs, namedCaptures);\n replacement = toString(apply(replaceValue, undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n\n return accumulatedResult + stringSlice(S, nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","'use strict';\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar fails = require('../internals/fails');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar MAX_UINT32 = 0xFFFFFFFF;\nvar min = Math.min;\nvar push = uncurryThis([].push);\nvar stringSlice = uncurryThis(''.slice);\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\nvar BUGGY = 'abbc'.split(/(b)*/)[1] === 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length !== 4 ||\n 'ab'.split(/(?:ab)*/).length !== 2 ||\n '.'.split(/(.?)(.?)/).length !== 4 ||\n // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length;\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit = '0'.split(undefined, 0).length ? function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : call(nativeSplit, this, separator, limit);\n } : nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = isNullOrUndefined(separator) ? undefined : getMethod(separator, SPLIT);\n return splitter\n ? call(splitter, separator, O, limit)\n : call(internalSplit, toString(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (string, limit) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (!BUGGY) {\n var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n }\n\n var C = speciesConstructor(rx, RegExp);\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (UNSUPPORTED_Y ? 'g' : 'y');\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return regExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n var z = regExpExec(splitter, UNSUPPORTED_Y ? stringSlice(S, q) : S);\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n push(A, stringSlice(S, p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n push(A, z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n push(A, stringSlice(S, p));\n return A;\n }\n ];\n}, BUGGY || !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar stringSlice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = toString(searchString);\n return stringSlice(that, index, index + search.length) === search;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n setToStringTag(CollectionPrototype, COLLECTION_NAME, true);\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(globalThis[COLLECTION_NAME] && globalThis[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nexport { _asyncToGenerator as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\nvar t=function(r,e){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var e in r)Object.prototype.hasOwnProperty.call(r,e)&&(t[e]=r[e])})(r,e)};function r(r,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Class extends value \"+String(e)+\" is not a constructor or null\");function i(){this.constructor=r}t(r,e),r.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}function e(t){var r=\"\";Array.isArray(t)||(t=[t]);for(var e=0;et.phi1&&(t.phi2-=2*n),1===t.sweepFlag&&t.phi2i)return[];if(0===i)return[[t*e/(t*t+r*r),r*e/(t*t+r*r)]];var n=Math.sqrt(i);return[[(t*e+r*n)/(t*t+r*r),(r*e-t*n)/(t*t+r*r)],[(t*e-r*n)/(t*t+r*r),(r*e+t*n)/(t*t+r*r)]]}var u,h=Math.PI/180;function c(t,r,e){return(1-e)*t+e*r}function y(t,r,e,i){return t+Math.cos(i/180*n)*r+Math.sin(i/180*n)*e}function p(t,r,e,i){var a=1e-6,n=r-t,o=e-r,s=3*n+3*(i-e)-6*o,u=6*(o-n),h=3*n;return Math.abs(s)T&&(a.sweepFlag=+!a.sweepFlag),a}))}function l(){return function(t){var r={};for(var e in t)r[e]=t[e];return r}}t.ROUND=function(t){function r(r){return Math.round(r*t)/t}return void 0===t&&(t=1e13),a(t),function(t){return void 0!==t.x1&&(t.x1=r(t.x1)),void 0!==t.y1&&(t.y1=r(t.y1)),void 0!==t.x2&&(t.x2=r(t.x2)),void 0!==t.y2&&(t.y2=r(t.y2)),void 0!==t.x&&(t.x=r(t.x)),void 0!==t.y&&(t.y=r(t.y)),void 0!==t.rX&&(t.rX=r(t.rX)),void 0!==t.rY&&(t.rY=r(t.rY)),t}},t.TO_ABS=r,t.TO_REL=function(){return u((function(t,r,e){return t.relative||(void 0!==t.x1&&(t.x1-=r),void 0!==t.y1&&(t.y1-=e),void 0!==t.x2&&(t.x2-=r),void 0!==t.y2&&(t.y2-=e),void 0!==t.x&&(t.x-=r),void 0!==t.y&&(t.y-=e),t.relative=!0),t}))},t.NORMALIZE_HVZ=function(t,r,e){return void 0===t&&(t=!0),void 0===r&&(r=!0),void 0===e&&(e=!0),u((function(i,a,n,o,s){if(isNaN(o)&&!(i.type&_.MOVE_TO))throw new Error(\"path must start with moveto\");return r&&i.type&_.HORIZ_LINE_TO&&(i.type=_.LINE_TO,i.y=i.relative?0:n),e&&i.type&_.VERT_LINE_TO&&(i.type=_.LINE_TO,i.x=i.relative?0:a),t&&i.type&_.CLOSE_PATH&&(i.type=_.LINE_TO,i.x=i.relative?o-a:o,i.y=i.relative?s-n:s),i.type&_.ARC&&(0===i.rX||0===i.rY)&&(i.type=_.LINE_TO,delete i.rX,delete i.rY,delete i.xRot,delete i.lArcFlag,delete i.sweepFlag),i}))},t.NORMALIZE_ST=e,t.QT_TO_C=n,t.INFO=u,t.SANITIZE=function(t){void 0===t&&(t=0),a(t);var r=NaN,e=NaN,i=NaN,n=NaN;return u((function(a,o,s,u,h){var c=Math.abs,y=!1,p=0,m=0;if(a.type&_.SMOOTH_CURVE_TO&&(p=isNaN(r)?0:o-r,m=isNaN(e)?0:s-e),a.type&(_.CURVE_TO|_.SMOOTH_CURVE_TO)?(r=a.relative?o+a.x2:a.x2,e=a.relative?s+a.y2:a.y2):(r=NaN,e=NaN),a.type&_.SMOOTH_QUAD_TO?(i=isNaN(i)?o:2*o-i,n=isNaN(n)?s:2*s-n):a.type&_.QUAD_TO?(i=a.relative?o+a.x1:a.x1,n=a.relative?s+a.y1:a.y2):(i=NaN,n=NaN),a.type&_.LINE_COMMANDS||a.type&_.ARC&&(0===a.rX||0===a.rY||!a.lArcFlag)||a.type&_.CURVE_TO||a.type&_.SMOOTH_CURVE_TO||a.type&_.QUAD_TO||a.type&_.SMOOTH_QUAD_TO){var O=void 0===a.x?0:a.relative?a.x:a.x-o,l=void 0===a.y?0:a.relative?a.y:a.y-s;p=isNaN(i)?void 0===a.x1?p:a.relative?a.x:a.x1-o:i-o,m=isNaN(n)?void 0===a.y1?m:a.relative?a.y:a.y1-s:n-s;var T=void 0===a.x2?0:a.relative?a.x:a.x2-o,v=void 0===a.y2?0:a.relative?a.y:a.y2-s;c(O)<=t&&c(l)<=t&&c(p)<=t&&c(m)<=t&&c(T)<=t&&c(v)<=t&&(y=!0)}return a.type&_.CLOSE_PATH&&c(o-u)<=t&&c(s-h)<=t&&(y=!0),y?[]:a}))},t.MATRIX=O,t.ROTATE=function(t,r,e){void 0===r&&(r=0),void 0===e&&(e=0),a(t,r,e);var i=Math.sin(t),n=Math.cos(t);return O(n,i,-i,n,r-r*n+e*i,e-r*i-e*n)},t.TRANSLATE=function(t,r){return void 0===r&&(r=0),a(t,r),O(1,0,0,1,t,r)},t.SCALE=function(t,r){return void 0===r&&(r=t),a(t,r),O(t,0,0,r,0,0)},t.SKEW_X=function(t){return a(t),O(1,0,Math.atan(t),1,0,0)},t.SKEW_Y=function(t){return a(t),O(1,Math.atan(t),0,1,0,0)},t.X_AXIS_SYMMETRY=function(t){return void 0===t&&(t=0),a(t),O(-1,0,0,1,t,0)},t.Y_AXIS_SYMMETRY=function(t){return void 0===t&&(t=0),a(t),O(1,0,0,-1,0,t)},t.A_TO_C=function(){return u((function(t,r,e){return _.ARC===t.type?function(t,r,e){var a,n,s,u;t.cX||o(t,r,e);for(var y=Math.min(t.phi1,t.phi2),p=Math.max(t.phi1,t.phi2)-y,m=Math.ceil(p/90),O=new Array(m),l=r,T=e,v=0;vc.maxX&&(c.maxX=t),tc.maxY&&(c.maxY=t),tw&&O(m(e,u.x1,u.x2,u.x,w))}for(var f=0,N=p(n,u.y1,u.y2,u.y);fw&&l(m(n,u.y1,u.y2,u.y,w))}}if(u.type&_.ARC){O(u.x),l(u.y),o(u,e,n);for(var x=u.xRot/180*Math.PI,d=Math.cos(x)*u.rX,E=Math.sin(x)*u.rX,A=-Math.sin(x)*u.rY,C=Math.cos(x)*u.rY,M=u.phi1u.phi2?[u.phi2+360,u.phi1+360]:[u.phi2,u.phi1],R=M[0],g=M[1],I=function(t){var r=t[0],e=t[1],i=180*Math.atan2(e,r)/Math.PI;return iR&&wR&&wu)throw new SyntaxError('Expected positive number, got \"'+u+'\" at index \"'+a+'\"')}else if((3===this.curArgs.length||4===this.curArgs.length)&&\"0\"!==this.curNumber&&\"1\"!==this.curNumber)throw new SyntaxError('Expected a flag, got \"'+this.curNumber+'\" at index \"'+a+'\"');this.curArgs.push(u),this.curArgs.length===N[this.curCommandType]&&(_.HORIZ_LINE_TO===this.curCommandType?i({type:_.HORIZ_LINE_TO,relative:this.curCommandRelative,x:u}):_.VERT_LINE_TO===this.curCommandType?i({type:_.VERT_LINE_TO,relative:this.curCommandRelative,y:u}):this.curCommandType===_.MOVE_TO||this.curCommandType===_.LINE_TO||this.curCommandType===_.SMOOTH_QUAD_TO?(i({type:this.curCommandType,relative:this.curCommandRelative,x:this.curArgs[0],y:this.curArgs[1]}),_.MOVE_TO===this.curCommandType&&(this.curCommandType=_.LINE_TO)):this.curCommandType===_.CURVE_TO?i({type:_.CURVE_TO,relative:this.curCommandRelative,x1:this.curArgs[0],y1:this.curArgs[1],x2:this.curArgs[2],y2:this.curArgs[3],x:this.curArgs[4],y:this.curArgs[5]}):this.curCommandType===_.SMOOTH_CURVE_TO?i({type:_.SMOOTH_CURVE_TO,relative:this.curCommandRelative,x2:this.curArgs[0],y2:this.curArgs[1],x:this.curArgs[2],y:this.curArgs[3]}):this.curCommandType===_.QUAD_TO?i({type:_.QUAD_TO,relative:this.curCommandRelative,x1:this.curArgs[0],y1:this.curArgs[1],x:this.curArgs[2],y:this.curArgs[3]}):this.curCommandType===_.ARC&&i({type:_.ARC,relative:this.curCommandRelative,rX:this.curArgs[0],rY:this.curArgs[1],xRot:this.curArgs[2],lArcFlag:this.curArgs[3],sweepFlag:this.curArgs[4],x:this.curArgs[5],y:this.curArgs[6]})),this.curNumber=\"\",this.curNumberHasExpDigits=!1,this.curNumberHasExp=!1,this.curNumberHasDecimal=!1,this.canParseCommandOrComma=!0}if(!T(n))if(\",\"===n&&this.canParseCommandOrComma)this.canParseCommandOrComma=!1;else if(\"+\"!==n&&\"-\"!==n&&\".\"!==n)if(s)this.curNumber=n,this.curNumberHasDecimal=!1;else{if(0!==this.curArgs.length)throw new SyntaxError(\"Unterminated command at index \"+a+\".\");if(!this.canParseCommandOrComma)throw new SyntaxError('Unexpected character \"'+n+'\" at index '+a+\". Command cannot follow comma\");if(this.canParseCommandOrComma=!1,\"z\"!==n&&\"Z\"!==n)if(\"h\"===n||\"H\"===n)this.curCommandType=_.HORIZ_LINE_TO,this.curCommandRelative=\"h\"===n;else if(\"v\"===n||\"V\"===n)this.curCommandType=_.VERT_LINE_TO,this.curCommandRelative=\"v\"===n;else if(\"m\"===n||\"M\"===n)this.curCommandType=_.MOVE_TO,this.curCommandRelative=\"m\"===n;else if(\"l\"===n||\"L\"===n)this.curCommandType=_.LINE_TO,this.curCommandRelative=\"l\"===n;else if(\"c\"===n||\"C\"===n)this.curCommandType=_.CURVE_TO,this.curCommandRelative=\"c\"===n;else if(\"s\"===n||\"S\"===n)this.curCommandType=_.SMOOTH_CURVE_TO,this.curCommandRelative=\"s\"===n;else if(\"q\"===n||\"Q\"===n)this.curCommandType=_.QUAD_TO,this.curCommandRelative=\"q\"===n;else if(\"t\"===n||\"T\"===n)this.curCommandType=_.SMOOTH_QUAD_TO,this.curCommandRelative=\"t\"===n;else{if(\"a\"!==n&&\"A\"!==n)throw new SyntaxError('Unexpected character \"'+n+'\" at index '+a+\".\");this.curCommandType=_.ARC,this.curCommandRelative=\"a\"===n}else r.push({type:_.CLOSE_PATH}),this.canParseCommandOrComma=!0,this.curCommandType=-1}else this.curNumber=n,this.curNumberHasDecimal=\".\"===n}else this.curNumber+=n,this.curNumberHasDecimal=!0;else this.curNumber+=n;else this.curNumber+=n,this.curNumberHasExp=!0;else this.curNumber+=n,this.curNumberHasExpDigits=this.curNumberHasExp}return r},e.prototype.transform=function(t){return Object.create(this,{parse:{value:function(r,e){void 0===e&&(e=[]);for(var i=0,a=Object.getPrototypeOf(this).parse.call(this,r);i>> shgSum;\n pixels[yi + 3] = paInitial;\n\n if (paInitial !== 0) {\n var _a2 = 255 / paInitial;\n\n pixels[yi] = (rSum * mulSum >>> shgSum) * _a2;\n pixels[yi + 1] = (gSum * mulSum >>> shgSum) * _a2;\n pixels[yi + 2] = (bSum * mulSum >>> shgSum) * _a2;\n } else {\n pixels[yi] = pixels[yi + 1] = pixels[yi + 2] = 0;\n }\n\n rSum -= rOutSum;\n gSum -= gOutSum;\n bSum -= bOutSum;\n aSum -= aOutSum;\n rOutSum -= stackIn.r;\n gOutSum -= stackIn.g;\n bOutSum -= stackIn.b;\n aOutSum -= stackIn.a;\n\n var _p = x + radius + 1;\n\n _p = yw + (_p < widthMinus1 ? _p : widthMinus1) << 2;\n rInSum += stackIn.r = pixels[_p];\n gInSum += stackIn.g = pixels[_p + 1];\n bInSum += stackIn.b = pixels[_p + 2];\n aInSum += stackIn.a = pixels[_p + 3];\n rSum += rInSum;\n gSum += gInSum;\n bSum += bInSum;\n aSum += aInSum;\n stackIn = stackIn.next;\n var _stackOut = stackOut,\n _r = _stackOut.r,\n _g = _stackOut.g,\n _b = _stackOut.b,\n _a = _stackOut.a;\n rOutSum += _r;\n gOutSum += _g;\n bOutSum += _b;\n aOutSum += _a;\n rInSum -= _r;\n gInSum -= _g;\n bInSum -= _b;\n aInSum -= _a;\n stackOut = stackOut.next;\n yi += 4;\n }\n\n yw += width;\n }\n\n for (var _x = 0; _x < width; _x++) {\n yi = _x << 2;\n\n var _pr = pixels[yi],\n _pg = pixels[yi + 1],\n _pb = pixels[yi + 2],\n _pa = pixels[yi + 3],\n _rOutSum = radiusPlus1 * _pr,\n _gOutSum = radiusPlus1 * _pg,\n _bOutSum = radiusPlus1 * _pb,\n _aOutSum = radiusPlus1 * _pa,\n _rSum = sumFactor * _pr,\n _gSum = sumFactor * _pg,\n _bSum = sumFactor * _pb,\n _aSum = sumFactor * _pa;\n\n stack = stackStart;\n\n for (var _i3 = 0; _i3 < radiusPlus1; _i3++) {\n stack.r = _pr;\n stack.g = _pg;\n stack.b = _pb;\n stack.a = _pa;\n stack = stack.next;\n }\n\n var yp = width;\n var _gInSum = 0,\n _bInSum = 0,\n _aInSum = 0,\n _rInSum = 0;\n\n for (var _i4 = 1; _i4 <= radius; _i4++) {\n yi = yp + _x << 2;\n\n var _rbs = radiusPlus1 - _i4;\n\n _rSum += (stack.r = _pr = pixels[yi]) * _rbs;\n _gSum += (stack.g = _pg = pixels[yi + 1]) * _rbs;\n _bSum += (stack.b = _pb = pixels[yi + 2]) * _rbs;\n _aSum += (stack.a = _pa = pixels[yi + 3]) * _rbs;\n _rInSum += _pr;\n _gInSum += _pg;\n _bInSum += _pb;\n _aInSum += _pa;\n stack = stack.next;\n\n if (_i4 < heightMinus1) {\n yp += width;\n }\n }\n\n yi = _x;\n stackIn = stackStart;\n stackOut = stackEnd;\n\n for (var _y = 0; _y < height; _y++) {\n var _p2 = yi << 2;\n\n pixels[_p2 + 3] = _pa = _aSum * mulSum >>> shgSum;\n\n if (_pa > 0) {\n _pa = 255 / _pa;\n pixels[_p2] = (_rSum * mulSum >>> shgSum) * _pa;\n pixels[_p2 + 1] = (_gSum * mulSum >>> shgSum) * _pa;\n pixels[_p2 + 2] = (_bSum * mulSum >>> shgSum) * _pa;\n } else {\n pixels[_p2] = pixels[_p2 + 1] = pixels[_p2 + 2] = 0;\n }\n\n _rSum -= _rOutSum;\n _gSum -= _gOutSum;\n _bSum -= _bOutSum;\n _aSum -= _aOutSum;\n _rOutSum -= stackIn.r;\n _gOutSum -= stackIn.g;\n _bOutSum -= stackIn.b;\n _aOutSum -= stackIn.a;\n _p2 = _x + ((_p2 = _y + radiusPlus1) < heightMinus1 ? _p2 : heightMinus1) * width << 2;\n _rSum += _rInSum += stackIn.r = pixels[_p2];\n _gSum += _gInSum += stackIn.g = pixels[_p2 + 1];\n _bSum += _bInSum += stackIn.b = pixels[_p2 + 2];\n _aSum += _aInSum += stackIn.a = pixels[_p2 + 3];\n stackIn = stackIn.next;\n _rOutSum += _pr = stackOut.r;\n _gOutSum += _pg = stackOut.g;\n _bOutSum += _pb = stackOut.b;\n _aOutSum += _pa = stackOut.a;\n _rInSum -= _pr;\n _gInSum -= _pg;\n _bInSum -= _pb;\n _aInSum -= _pa;\n stackOut = stackOut.next;\n yi += width;\n }\n }\n\n return imageData;\n}\n/**\n * @param {HTMLCanvasElement} canvas\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {undefined}\n */\n\n\nfunction processCanvasRGB(canvas, topX, topY, width, height, radius) {\n if (isNaN(radius) || radius < 1) {\n return;\n }\n\n radius |= 0;\n var imageData = getImageDataFromCanvas(canvas, topX, topY, width, height);\n imageData = processImageDataRGB(imageData, topX, topY, width, height, radius);\n canvas.getContext('2d').putImageData(imageData, topX, topY);\n}\n/**\n * @param {ImageData} imageData\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {ImageData}\n */\n\n\nfunction processImageDataRGB(imageData, topX, topY, width, height, radius) {\n var pixels = imageData.data;\n var div = 2 * radius + 1; // const w4 = width << 2;\n\n var widthMinus1 = width - 1;\n var heightMinus1 = height - 1;\n var radiusPlus1 = radius + 1;\n var sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2;\n var stackStart = new BlurStack();\n var stack = stackStart;\n var stackEnd;\n\n for (var i = 1; i < div; i++) {\n stack = stack.next = new BlurStack();\n\n if (i === radiusPlus1) {\n stackEnd = stack;\n }\n }\n\n stack.next = stackStart;\n var stackIn = null;\n var stackOut = null;\n var mulSum = mulTable[radius];\n var shgSum = shgTable[radius];\n var p, rbs;\n var yw = 0,\n yi = 0;\n\n for (var y = 0; y < height; y++) {\n var pr = pixels[yi],\n pg = pixels[yi + 1],\n pb = pixels[yi + 2],\n rOutSum = radiusPlus1 * pr,\n gOutSum = radiusPlus1 * pg,\n bOutSum = radiusPlus1 * pb,\n rSum = sumFactor * pr,\n gSum = sumFactor * pg,\n bSum = sumFactor * pb;\n stack = stackStart;\n\n for (var _i5 = 0; _i5 < radiusPlus1; _i5++) {\n stack.r = pr;\n stack.g = pg;\n stack.b = pb;\n stack = stack.next;\n }\n\n var rInSum = 0,\n gInSum = 0,\n bInSum = 0;\n\n for (var _i6 = 1; _i6 < radiusPlus1; _i6++) {\n p = yi + ((widthMinus1 < _i6 ? widthMinus1 : _i6) << 2);\n rSum += (stack.r = pr = pixels[p]) * (rbs = radiusPlus1 - _i6);\n gSum += (stack.g = pg = pixels[p + 1]) * rbs;\n bSum += (stack.b = pb = pixels[p + 2]) * rbs;\n rInSum += pr;\n gInSum += pg;\n bInSum += pb;\n stack = stack.next;\n }\n\n stackIn = stackStart;\n stackOut = stackEnd;\n\n for (var x = 0; x < width; x++) {\n pixels[yi] = rSum * mulSum >>> shgSum;\n pixels[yi + 1] = gSum * mulSum >>> shgSum;\n pixels[yi + 2] = bSum * mulSum >>> shgSum;\n rSum -= rOutSum;\n gSum -= gOutSum;\n bSum -= bOutSum;\n rOutSum -= stackIn.r;\n gOutSum -= stackIn.g;\n bOutSum -= stackIn.b;\n p = yw + ((p = x + radius + 1) < widthMinus1 ? p : widthMinus1) << 2;\n rInSum += stackIn.r = pixels[p];\n gInSum += stackIn.g = pixels[p + 1];\n bInSum += stackIn.b = pixels[p + 2];\n rSum += rInSum;\n gSum += gInSum;\n bSum += bInSum;\n stackIn = stackIn.next;\n rOutSum += pr = stackOut.r;\n gOutSum += pg = stackOut.g;\n bOutSum += pb = stackOut.b;\n rInSum -= pr;\n gInSum -= pg;\n bInSum -= pb;\n stackOut = stackOut.next;\n yi += 4;\n }\n\n yw += width;\n }\n\n for (var _x2 = 0; _x2 < width; _x2++) {\n yi = _x2 << 2;\n\n var _pr2 = pixels[yi],\n _pg2 = pixels[yi + 1],\n _pb2 = pixels[yi + 2],\n _rOutSum2 = radiusPlus1 * _pr2,\n _gOutSum2 = radiusPlus1 * _pg2,\n _bOutSum2 = radiusPlus1 * _pb2,\n _rSum2 = sumFactor * _pr2,\n _gSum2 = sumFactor * _pg2,\n _bSum2 = sumFactor * _pb2;\n\n stack = stackStart;\n\n for (var _i7 = 0; _i7 < radiusPlus1; _i7++) {\n stack.r = _pr2;\n stack.g = _pg2;\n stack.b = _pb2;\n stack = stack.next;\n }\n\n var _rInSum2 = 0,\n _gInSum2 = 0,\n _bInSum2 = 0;\n\n for (var _i8 = 1, yp = width; _i8 <= radius; _i8++) {\n yi = yp + _x2 << 2;\n _rSum2 += (stack.r = _pr2 = pixels[yi]) * (rbs = radiusPlus1 - _i8);\n _gSum2 += (stack.g = _pg2 = pixels[yi + 1]) * rbs;\n _bSum2 += (stack.b = _pb2 = pixels[yi + 2]) * rbs;\n _rInSum2 += _pr2;\n _gInSum2 += _pg2;\n _bInSum2 += _pb2;\n stack = stack.next;\n\n if (_i8 < heightMinus1) {\n yp += width;\n }\n }\n\n yi = _x2;\n stackIn = stackStart;\n stackOut = stackEnd;\n\n for (var _y2 = 0; _y2 < height; _y2++) {\n p = yi << 2;\n pixels[p] = _rSum2 * mulSum >>> shgSum;\n pixels[p + 1] = _gSum2 * mulSum >>> shgSum;\n pixels[p + 2] = _bSum2 * mulSum >>> shgSum;\n _rSum2 -= _rOutSum2;\n _gSum2 -= _gOutSum2;\n _bSum2 -= _bOutSum2;\n _rOutSum2 -= stackIn.r;\n _gOutSum2 -= stackIn.g;\n _bOutSum2 -= stackIn.b;\n p = _x2 + ((p = _y2 + radiusPlus1) < heightMinus1 ? p : heightMinus1) * width << 2;\n _rSum2 += _rInSum2 += stackIn.r = pixels[p];\n _gSum2 += _gInSum2 += stackIn.g = pixels[p + 1];\n _bSum2 += _bInSum2 += stackIn.b = pixels[p + 2];\n stackIn = stackIn.next;\n _rOutSum2 += _pr2 = stackOut.r;\n _gOutSum2 += _pg2 = stackOut.g;\n _bOutSum2 += _pb2 = stackOut.b;\n _rInSum2 -= _pr2;\n _gInSum2 -= _pg2;\n _bInSum2 -= _pb2;\n stackOut = stackOut.next;\n yi += width;\n }\n }\n\n return imageData;\n}\n/**\n *\n */\n\n\nvar BlurStack =\n/**\n * Set properties.\n */\nfunction BlurStack() {\n _classCallCheck(this, BlurStack);\n\n this.r = 0;\n this.g = 0;\n this.b = 0;\n this.a = 0;\n this.next = null;\n};\n\nexport { BlurStack, processCanvasRGB as canvasRGB, processCanvasRGBA as canvasRGBA, processImage as image, processImageDataRGB as imageDataRGB, processImageDataRGBA as imageDataRGBA };\n","import 'core-js/modules/es.promise.js';\nimport _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';\nimport 'core-js/modules/es.string.match.js';\nimport 'core-js/modules/es.string.replace.js';\nimport 'core-js/modules/es.string.starts-with.js';\nimport 'core-js/modules/es.array.iterator.js';\nimport 'core-js/modules/web.dom-collections.iterator.js';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport 'core-js/modules/es.array.reduce.js';\nimport 'core-js/modules/es.string.ends-with.js';\nimport 'core-js/modules/es.string.split.js';\nimport requestAnimationFrame from 'raf';\nimport 'core-js/modules/es.string.trim.js';\nimport RGBColor from 'rgbcolor';\nimport 'core-js/modules/es.array.index-of.js';\nimport 'core-js/modules/es.string.includes.js';\nimport 'core-js/modules/es.array.reverse.js';\nimport { SVGPathData } from 'svg-pathdata';\nimport 'core-js/modules/es.regexp.to-string.js';\nimport { canvasRGBA } from 'stackblur-canvas';\n\n/**\r\n * Options preset for `OffscreenCanvas`.\r\n * @param config - Preset requirements.\r\n * @param config.DOMParser - XML/HTML parser from string into DOM Document.\r\n * @returns Preset object.\r\n */\nfunction offscreen() {\n var {\n DOMParser: DOMParserFallback\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var preset = {\n window: null,\n ignoreAnimation: true,\n ignoreMouse: true,\n DOMParser: DOMParserFallback,\n\n createCanvas(width, height) {\n return new OffscreenCanvas(width, height);\n },\n\n createImage(url) {\n return _asyncToGenerator(function* () {\n var response = yield fetch(url);\n var blob = yield response.blob();\n var img = yield createImageBitmap(blob);\n return img;\n })();\n }\n\n };\n\n if (typeof DOMParser !== 'undefined' || typeof DOMParserFallback === 'undefined') {\n Reflect.deleteProperty(preset, 'DOMParser');\n }\n\n return preset;\n}\n\n/**\r\n * Options preset for `node-canvas`.\r\n * @param config - Preset requirements.\r\n * @param config.DOMParser - XML/HTML parser from string into DOM Document.\r\n * @param config.canvas - `node-canvas` exports.\r\n * @param config.fetch - WHATWG-compatible `fetch` function.\r\n * @returns Preset object.\r\n */\nfunction node(_ref) {\n var {\n DOMParser,\n canvas,\n fetch\n } = _ref;\n return {\n window: null,\n ignoreAnimation: true,\n ignoreMouse: true,\n DOMParser,\n fetch,\n createCanvas: canvas.createCanvas,\n createImage: canvas.loadImage\n };\n}\n\nvar index = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\toffscreen: offscreen,\n\tnode: node\n});\n\n/**\r\n * HTML-safe compress white-spaces.\r\n * @param str - String to compress.\r\n * @returns String.\r\n */\nfunction compressSpaces(str) {\n return str.replace(/(?!\\u3000)\\s+/gm, ' ');\n}\n/**\r\n * HTML-safe left trim.\r\n * @param str - String to trim.\r\n * @returns String.\r\n */\n\nfunction trimLeft(str) {\n return str.replace(/^[\\n \\t]+/, '');\n}\n/**\r\n * HTML-safe right trim.\r\n * @param str - String to trim.\r\n * @returns String.\r\n */\n\nfunction trimRight(str) {\n return str.replace(/[\\n \\t]+$/, '');\n}\n/**\r\n * String to numbers array.\r\n * @param str - Numbers string.\r\n * @returns Numbers array.\r\n */\n\nfunction toNumbers(str) {\n var matches = (str || '').match(/-?(\\d+(?:\\.\\d*(?:[eE][+-]?\\d+)?)?|\\.\\d+)(?=\\D|$)/gm) || [];\n return matches.map(parseFloat);\n} // Microsoft Edge fix\n\nvar allUppercase = /^[A-Z-]+$/;\n/**\r\n * Normalize attribute name.\r\n * @param name - Attribute name.\r\n * @returns Normalized attribute name.\r\n */\n\nfunction normalizeAttributeName(name) {\n if (allUppercase.test(name)) {\n return name.toLowerCase();\n }\n\n return name;\n}\n/**\r\n * Parse external URL.\r\n * @param url - CSS url string.\r\n * @returns Parsed URL.\r\n */\n\nfunction parseExternalUrl(url) {\n // single quotes [2]\n // v double quotes [3]\n // v v no quotes [4]\n // v v v\n var urlMatch = /url\\(('([^']+)'|\"([^\"]+)\"|([^'\")]+))\\)/.exec(url) || [];\n return urlMatch[2] || urlMatch[3] || urlMatch[4];\n}\n/**\r\n * Transform floats to integers in rgb colors.\r\n * @param color - Color to normalize.\r\n * @returns Normalized color.\r\n */\n\nfunction normalizeColor(color) {\n if (!color.startsWith('rgb')) {\n return color;\n }\n\n var rgbParts = 3;\n var normalizedColor = color.replace(/\\d+(\\.\\d+)?/g, (num, isFloat) => rgbParts-- && isFloat ? String(Math.round(parseFloat(num))) : num);\n return normalizedColor;\n}\n\n// slightly modified version of https://github.com/keeganstreet/specificity/blob/master/specificity.js\nvar attributeRegex = /(\\[[^\\]]+\\])/g;\nvar idRegex = /(#[^\\s+>~.[:]+)/g;\nvar classRegex = /(\\.[^\\s+>~.[:]+)/g;\nvar pseudoElementRegex = /(::[^\\s+>~.[:]+|:first-line|:first-letter|:before|:after)/gi;\nvar pseudoClassWithBracketsRegex = /(:[\\w-]+\\([^)]*\\))/gi;\nvar pseudoClassRegex = /(:[^\\s+>~.[:]+)/g;\nvar elementRegex = /([^\\s+>~.[:]+)/g;\n\nfunction findSelectorMatch(selector, regex) {\n var matches = regex.exec(selector);\n\n if (!matches) {\n return [selector, 0];\n }\n\n return [selector.replace(regex, ' '), matches.length];\n}\n/**\r\n * Measure selector specificity.\r\n * @param selector - Selector to measure.\r\n * @returns Specificity.\r\n */\n\n\nfunction getSelectorSpecificity(selector) {\n var specificity = [0, 0, 0];\n var currentSelector = selector.replace(/:not\\(([^)]*)\\)/g, ' $1 ').replace(/{[\\s\\S]*/gm, ' ');\n var delta = 0;\n [currentSelector, delta] = findSelectorMatch(currentSelector, attributeRegex);\n specificity[1] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, idRegex);\n specificity[0] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, classRegex);\n specificity[1] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, pseudoElementRegex);\n specificity[2] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, pseudoClassWithBracketsRegex);\n specificity[1] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, pseudoClassRegex);\n specificity[1] += delta;\n currentSelector = currentSelector.replace(/[*\\s+>~]/g, ' ').replace(/[#.]/g, ' ');\n [currentSelector, delta] = findSelectorMatch(currentSelector, elementRegex); // lgtm [js/useless-assignment-to-local]\n\n specificity[2] += delta;\n return specificity.join('');\n}\n\nvar PSEUDO_ZERO = .00000001;\n/**\r\n * Vector magnitude.\r\n * @param v\r\n * @returns Number result.\r\n */\n\nfunction vectorMagnitude(v) {\n return Math.sqrt(Math.pow(v[0], 2) + Math.pow(v[1], 2));\n}\n/**\r\n * Ratio between two vectors.\r\n * @param u\r\n * @param v\r\n * @returns Number result.\r\n */\n\nfunction vectorsRatio(u, v) {\n return (u[0] * v[0] + u[1] * v[1]) / (vectorMagnitude(u) * vectorMagnitude(v));\n}\n/**\r\n * Angle between two vectors.\r\n * @param u\r\n * @param v\r\n * @returns Number result.\r\n */\n\nfunction vectorsAngle(u, v) {\n return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(vectorsRatio(u, v));\n}\nfunction CB1(t) {\n return t * t * t;\n}\nfunction CB2(t) {\n return 3 * t * t * (1 - t);\n}\nfunction CB3(t) {\n return 3 * t * (1 - t) * (1 - t);\n}\nfunction CB4(t) {\n return (1 - t) * (1 - t) * (1 - t);\n}\nfunction QB1(t) {\n return t * t;\n}\nfunction QB2(t) {\n return 2 * t * (1 - t);\n}\nfunction QB3(t) {\n return (1 - t) * (1 - t);\n}\n\nclass Property {\n constructor(document, name, value) {\n this.document = document;\n this.name = name;\n this.value = value;\n this.isNormalizedColor = false;\n }\n\n static empty(document) {\n return new Property(document, 'EMPTY', '');\n }\n\n split() {\n var separator = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ' ';\n var {\n document,\n name\n } = this;\n return compressSpaces(this.getString()).trim().split(separator).map(value => new Property(document, name, value));\n }\n\n hasValue(zeroIsValue) {\n var {\n value\n } = this;\n return value !== null && value !== '' && (zeroIsValue || value !== 0) && typeof value !== 'undefined';\n }\n\n isString(regexp) {\n var {\n value\n } = this;\n var result = typeof value === 'string';\n\n if (!result || !regexp) {\n return result;\n }\n\n return regexp.test(value);\n }\n\n isUrlDefinition() {\n return this.isString(/^url\\(/);\n }\n\n isPixels() {\n if (!this.hasValue()) {\n return false;\n }\n\n var asString = this.getString();\n\n switch (true) {\n case asString.endsWith('px'):\n case /^[0-9]+$/.test(asString):\n return true;\n\n default:\n return false;\n }\n }\n\n setValue(value) {\n this.value = value;\n return this;\n }\n\n getValue(def) {\n if (typeof def === 'undefined' || this.hasValue()) {\n return this.value;\n }\n\n return def;\n }\n\n getNumber(def) {\n if (!this.hasValue()) {\n if (typeof def === 'undefined') {\n return 0;\n }\n\n return parseFloat(def);\n }\n\n var {\n value\n } = this;\n var n = parseFloat(value);\n\n if (this.isString(/%$/)) {\n n /= 100.0;\n }\n\n return n;\n }\n\n getString(def) {\n if (typeof def === 'undefined' || this.hasValue()) {\n return typeof this.value === 'undefined' ? '' : String(this.value);\n }\n\n return String(def);\n }\n\n getColor(def) {\n var color = this.getString(def);\n\n if (this.isNormalizedColor) {\n return color;\n }\n\n this.isNormalizedColor = true;\n color = normalizeColor(color);\n this.value = color;\n return color;\n }\n\n getDpi() {\n return 96.0; // TODO: compute?\n }\n\n getRem() {\n return this.document.rootEmSize;\n }\n\n getEm() {\n return this.document.emSize;\n }\n\n getUnits() {\n return this.getString().replace(/[0-9.-]/g, '');\n }\n\n getPixels(axisOrIsFontSize) {\n var processPercent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!this.hasValue()) {\n return 0;\n }\n\n var [axis, isFontSize] = typeof axisOrIsFontSize === 'boolean' ? [undefined, axisOrIsFontSize] : [axisOrIsFontSize];\n var {\n viewPort\n } = this.document.screen;\n\n switch (true) {\n case this.isString(/vmin$/):\n return this.getNumber() / 100.0 * Math.min(viewPort.computeSize('x'), viewPort.computeSize('y'));\n\n case this.isString(/vmax$/):\n return this.getNumber() / 100.0 * Math.max(viewPort.computeSize('x'), viewPort.computeSize('y'));\n\n case this.isString(/vw$/):\n return this.getNumber() / 100.0 * viewPort.computeSize('x');\n\n case this.isString(/vh$/):\n return this.getNumber() / 100.0 * viewPort.computeSize('y');\n\n case this.isString(/rem$/):\n return this.getNumber() * this.getRem();\n\n case this.isString(/em$/):\n return this.getNumber() * this.getEm();\n\n case this.isString(/ex$/):\n return this.getNumber() * this.getEm() / 2.0;\n\n case this.isString(/px$/):\n return this.getNumber();\n\n case this.isString(/pt$/):\n return this.getNumber() * this.getDpi() * (1.0 / 72.0);\n\n case this.isString(/pc$/):\n return this.getNumber() * 15;\n\n case this.isString(/cm$/):\n return this.getNumber() * this.getDpi() / 2.54;\n\n case this.isString(/mm$/):\n return this.getNumber() * this.getDpi() / 25.4;\n\n case this.isString(/in$/):\n return this.getNumber() * this.getDpi();\n\n case this.isString(/%$/) && isFontSize:\n return this.getNumber() * this.getEm();\n\n case this.isString(/%$/):\n return this.getNumber() * viewPort.computeSize(axis);\n\n default:\n {\n var n = this.getNumber();\n\n if (processPercent && n < 1.0) {\n return n * viewPort.computeSize(axis);\n }\n\n return n;\n }\n }\n }\n\n getMilliseconds() {\n if (!this.hasValue()) {\n return 0;\n }\n\n if (this.isString(/ms$/)) {\n return this.getNumber();\n }\n\n return this.getNumber() * 1000;\n }\n\n getRadians() {\n if (!this.hasValue()) {\n return 0;\n }\n\n switch (true) {\n case this.isString(/deg$/):\n return this.getNumber() * (Math.PI / 180.0);\n\n case this.isString(/grad$/):\n return this.getNumber() * (Math.PI / 200.0);\n\n case this.isString(/rad$/):\n return this.getNumber();\n\n default:\n return this.getNumber() * (Math.PI / 180.0);\n }\n }\n\n getDefinition() {\n var asString = this.getString();\n var name = /#([^)'\"]+)/.exec(asString);\n\n if (name) {\n name = name[1];\n }\n\n if (!name) {\n name = asString;\n }\n\n return this.document.definitions[name];\n }\n\n getFillStyleDefinition(element, opacity) {\n var def = this.getDefinition();\n\n if (!def) {\n return null;\n } // gradient\n\n\n if (typeof def.createGradient === 'function') {\n return def.createGradient(this.document.ctx, element, opacity);\n } // pattern\n\n\n if (typeof def.createPattern === 'function') {\n if (def.getHrefAttribute().hasValue()) {\n var patternTransform = def.getAttribute('patternTransform');\n def = def.getHrefAttribute().getDefinition();\n\n if (patternTransform.hasValue()) {\n def.getAttribute('patternTransform', true).setValue(patternTransform.value);\n }\n }\n\n return def.createPattern(this.document.ctx, element, opacity);\n }\n\n return null;\n }\n\n getTextBaseline() {\n if (!this.hasValue()) {\n return null;\n }\n\n return Property.textBaselineMapping[this.getString()];\n }\n\n addOpacity(opacity) {\n var value = this.getColor();\n var len = value.length;\n var commas = 0; // Simulate old RGBColor version, which can't parse rgba.\n\n for (var i = 0; i < len; i++) {\n if (value[i] === ',') {\n commas++;\n }\n\n if (commas === 3) {\n break;\n }\n }\n\n if (opacity.hasValue() && this.isString() && commas !== 3) {\n var color = new RGBColor(value);\n\n if (color.ok) {\n color.alpha = opacity.getNumber();\n value = color.toRGBA();\n }\n }\n\n return new Property(this.document, this.name, value);\n }\n\n}\nProperty.textBaselineMapping = {\n 'baseline': 'alphabetic',\n 'before-edge': 'top',\n 'text-before-edge': 'top',\n 'middle': 'middle',\n 'central': 'middle',\n 'after-edge': 'bottom',\n 'text-after-edge': 'bottom',\n 'ideographic': 'ideographic',\n 'alphabetic': 'alphabetic',\n 'hanging': 'hanging',\n 'mathematical': 'alphabetic'\n};\n\nclass ViewPort {\n constructor() {\n this.viewPorts = [];\n }\n\n clear() {\n this.viewPorts = [];\n }\n\n setCurrent(width, height) {\n this.viewPorts.push({\n width,\n height\n });\n }\n\n removeCurrent() {\n this.viewPorts.pop();\n }\n\n getCurrent() {\n var {\n viewPorts\n } = this;\n return viewPorts[viewPorts.length - 1];\n }\n\n get width() {\n return this.getCurrent().width;\n }\n\n get height() {\n return this.getCurrent().height;\n }\n\n computeSize(d) {\n if (typeof d === 'number') {\n return d;\n }\n\n if (d === 'x') {\n return this.width;\n }\n\n if (d === 'y') {\n return this.height;\n }\n\n return Math.sqrt(Math.pow(this.width, 2) + Math.pow(this.height, 2)) / Math.sqrt(2);\n }\n\n}\n\nclass Point {\n constructor(x, y) {\n this.x = x;\n this.y = y;\n }\n\n static parse(point) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var [x = defaultValue, y = defaultValue] = toNumbers(point);\n return new Point(x, y);\n }\n\n static parseScale(scale) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var [x = defaultValue, y = x] = toNumbers(scale);\n return new Point(x, y);\n }\n\n static parsePath(path) {\n var points = toNumbers(path);\n var len = points.length;\n var pathPoints = [];\n\n for (var i = 0; i < len; i += 2) {\n pathPoints.push(new Point(points[i], points[i + 1]));\n }\n\n return pathPoints;\n }\n\n angleTo(point) {\n return Math.atan2(point.y - this.y, point.x - this.x);\n }\n\n applyTransform(transform) {\n var {\n x,\n y\n } = this;\n var xp = x * transform[0] + y * transform[2] + transform[4];\n var yp = x * transform[1] + y * transform[3] + transform[5];\n this.x = xp;\n this.y = yp;\n }\n\n}\n\nclass Mouse {\n constructor(screen) {\n this.screen = screen;\n this.working = false;\n this.events = [];\n this.eventElements = []; // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\n this.onClick = this.onClick.bind(this); // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\n this.onMouseMove = this.onMouseMove.bind(this);\n }\n\n isWorking() {\n return this.working;\n }\n\n start() {\n if (this.working) {\n return;\n }\n\n var {\n screen,\n onClick,\n onMouseMove\n } = this;\n var canvas = screen.ctx.canvas;\n canvas.onclick = onClick;\n canvas.onmousemove = onMouseMove;\n this.working = true;\n }\n\n stop() {\n if (!this.working) {\n return;\n }\n\n var canvas = this.screen.ctx.canvas;\n this.working = false;\n canvas.onclick = null;\n canvas.onmousemove = null;\n }\n\n hasEvents() {\n return this.working && this.events.length > 0;\n }\n\n runEvents() {\n if (!this.working) {\n return;\n }\n\n var {\n screen: document,\n events,\n eventElements\n } = this;\n var {\n style\n } = document.ctx.canvas;\n\n if (style) {\n style.cursor = '';\n }\n\n events.forEach((_ref, i) => {\n var {\n run\n } = _ref;\n var element = eventElements[i];\n\n while (element) {\n run(element);\n element = element.parent;\n }\n }); // done running, clear\n\n this.events = [];\n this.eventElements = [];\n }\n\n checkPath(element, ctx) {\n if (!this.working || !ctx) {\n return;\n }\n\n var {\n events,\n eventElements\n } = this;\n events.forEach((_ref2, i) => {\n var {\n x,\n y\n } = _ref2;\n\n if (!eventElements[i] && ctx.isPointInPath && ctx.isPointInPath(x, y)) {\n eventElements[i] = element;\n }\n });\n }\n\n checkBoundingBox(element, boundingBox) {\n if (!this.working || !boundingBox) {\n return;\n }\n\n var {\n events,\n eventElements\n } = this;\n events.forEach((_ref3, i) => {\n var {\n x,\n y\n } = _ref3;\n\n if (!eventElements[i] && boundingBox.isPointInBox(x, y)) {\n eventElements[i] = element;\n }\n });\n }\n\n mapXY(x, y) {\n var {\n window,\n ctx\n } = this.screen;\n var point = new Point(x, y);\n var element = ctx.canvas;\n\n while (element) {\n point.x -= element.offsetLeft;\n point.y -= element.offsetTop;\n element = element.offsetParent;\n }\n\n if (window.scrollX) {\n point.x += window.scrollX;\n }\n\n if (window.scrollY) {\n point.y += window.scrollY;\n }\n\n return point;\n }\n\n onClick(event) {\n var {\n x,\n y\n } = this.mapXY(event.clientX, event.clientY);\n this.events.push({\n type: 'onclick',\n x,\n y,\n\n run(eventTarget) {\n if (eventTarget.onClick) {\n eventTarget.onClick();\n }\n }\n\n });\n }\n\n onMouseMove(event) {\n var {\n x,\n y\n } = this.mapXY(event.clientX, event.clientY);\n this.events.push({\n type: 'onmousemove',\n x,\n y,\n\n run(eventTarget) {\n if (eventTarget.onMouseMove) {\n eventTarget.onMouseMove();\n }\n }\n\n });\n }\n\n}\n\nvar defaultWindow = typeof window !== 'undefined' ? window : null;\nvar defaultFetch$1 = typeof fetch !== 'undefined' ? fetch.bind(undefined) // `fetch` depends on context: `someObject.fetch(...)` will throw error.\n: null;\nclass Screen {\n constructor(ctx) {\n var {\n fetch = defaultFetch$1,\n window = defaultWindow\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.ctx = ctx;\n this.FRAMERATE = 30;\n this.MAX_VIRTUAL_PIXELS = 30000;\n this.CLIENT_WIDTH = 800;\n this.CLIENT_HEIGHT = 600;\n this.viewPort = new ViewPort();\n this.mouse = new Mouse(this);\n this.animations = [];\n this.waits = [];\n this.frameDuration = 0;\n this.isReadyLock = false;\n this.isFirstRender = true;\n this.intervalId = null;\n this.window = window;\n this.fetch = fetch;\n }\n\n wait(checker) {\n this.waits.push(checker);\n }\n\n ready() {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n if (!this.readyPromise) {\n return Promise.resolve();\n }\n\n return this.readyPromise;\n }\n\n isReady() {\n if (this.isReadyLock) {\n return true;\n }\n\n var isReadyLock = this.waits.every(_ => _());\n\n if (isReadyLock) {\n this.waits = [];\n\n if (this.resolveReady) {\n this.resolveReady();\n }\n }\n\n this.isReadyLock = isReadyLock;\n return isReadyLock;\n }\n\n setDefaults(ctx) {\n // initial values and defaults\n ctx.strokeStyle = 'rgba(0,0,0,0)';\n ctx.lineCap = 'butt';\n ctx.lineJoin = 'miter';\n ctx.miterLimit = 4;\n }\n\n setViewBox(_ref) {\n var {\n document,\n ctx,\n aspectRatio,\n width,\n desiredWidth,\n height,\n desiredHeight,\n minX = 0,\n minY = 0,\n refX,\n refY,\n clip = false,\n clipX = 0,\n clipY = 0\n } = _ref;\n // aspect ratio - http://www.w3.org/TR/SVG/coords.html#PreserveAspectRatioAttribute\n var cleanAspectRatio = compressSpaces(aspectRatio).replace(/^defer\\s/, ''); // ignore defer\n\n var [aspectRatioAlign, aspectRatioMeetOrSlice] = cleanAspectRatio.split(' ');\n var align = aspectRatioAlign || 'xMidYMid';\n var meetOrSlice = aspectRatioMeetOrSlice || 'meet'; // calculate scale\n\n var scaleX = width / desiredWidth;\n var scaleY = height / desiredHeight;\n var scaleMin = Math.min(scaleX, scaleY);\n var scaleMax = Math.max(scaleX, scaleY);\n var finalDesiredWidth = desiredWidth;\n var finalDesiredHeight = desiredHeight;\n\n if (meetOrSlice === 'meet') {\n finalDesiredWidth *= scaleMin;\n finalDesiredHeight *= scaleMin;\n }\n\n if (meetOrSlice === 'slice') {\n finalDesiredWidth *= scaleMax;\n finalDesiredHeight *= scaleMax;\n }\n\n var refXProp = new Property(document, 'refX', refX);\n var refYProp = new Property(document, 'refY', refY);\n var hasRefs = refXProp.hasValue() && refYProp.hasValue();\n\n if (hasRefs) {\n ctx.translate(-scaleMin * refXProp.getPixels('x'), -scaleMin * refYProp.getPixels('y'));\n }\n\n if (clip) {\n var scaledClipX = scaleMin * clipX;\n var scaledClipY = scaleMin * clipY;\n ctx.beginPath();\n ctx.moveTo(scaledClipX, scaledClipY);\n ctx.lineTo(width, scaledClipY);\n ctx.lineTo(width, height);\n ctx.lineTo(scaledClipX, height);\n ctx.closePath();\n ctx.clip();\n }\n\n if (!hasRefs) {\n var isMeetMinY = meetOrSlice === 'meet' && scaleMin === scaleY;\n var isSliceMaxY = meetOrSlice === 'slice' && scaleMax === scaleY;\n var isMeetMinX = meetOrSlice === 'meet' && scaleMin === scaleX;\n var isSliceMaxX = meetOrSlice === 'slice' && scaleMax === scaleX;\n\n if (align.startsWith('xMid') && (isMeetMinY || isSliceMaxY)) {\n ctx.translate(width / 2.0 - finalDesiredWidth / 2.0, 0);\n }\n\n if (align.endsWith('YMid') && (isMeetMinX || isSliceMaxX)) {\n ctx.translate(0, height / 2.0 - finalDesiredHeight / 2.0);\n }\n\n if (align.startsWith('xMax') && (isMeetMinY || isSliceMaxY)) {\n ctx.translate(width - finalDesiredWidth, 0);\n }\n\n if (align.endsWith('YMax') && (isMeetMinX || isSliceMaxX)) {\n ctx.translate(0, height - finalDesiredHeight);\n }\n } // scale\n\n\n switch (true) {\n case align === 'none':\n ctx.scale(scaleX, scaleY);\n break;\n\n case meetOrSlice === 'meet':\n ctx.scale(scaleMin, scaleMin);\n break;\n\n case meetOrSlice === 'slice':\n ctx.scale(scaleMax, scaleMax);\n break;\n } // translate\n\n\n ctx.translate(-minX, -minY);\n }\n\n start(element) {\n var {\n enableRedraw = false,\n ignoreMouse = false,\n ignoreAnimation = false,\n ignoreDimensions = false,\n ignoreClear = false,\n forceRedraw,\n scaleWidth,\n scaleHeight,\n offsetX,\n offsetY\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n FRAMERATE,\n mouse\n } = this;\n var frameDuration = 1000 / FRAMERATE;\n this.frameDuration = frameDuration;\n this.readyPromise = new Promise(resolve => {\n this.resolveReady = resolve;\n });\n\n if (this.isReady()) {\n this.render(element, ignoreDimensions, ignoreClear, scaleWidth, scaleHeight, offsetX, offsetY);\n }\n\n if (!enableRedraw) {\n return;\n }\n\n var now = Date.now();\n var then = now;\n var delta = 0;\n\n var tick = () => {\n now = Date.now();\n delta = now - then;\n\n if (delta >= frameDuration) {\n then = now - delta % frameDuration;\n\n if (this.shouldUpdate(ignoreAnimation, forceRedraw)) {\n this.render(element, ignoreDimensions, ignoreClear, scaleWidth, scaleHeight, offsetX, offsetY);\n mouse.runEvents();\n }\n }\n\n this.intervalId = requestAnimationFrame(tick);\n };\n\n if (!ignoreMouse) {\n mouse.start();\n }\n\n this.intervalId = requestAnimationFrame(tick);\n }\n\n stop() {\n if (this.intervalId) {\n requestAnimationFrame.cancel(this.intervalId);\n this.intervalId = null;\n }\n\n this.mouse.stop();\n }\n\n shouldUpdate(ignoreAnimation, forceRedraw) {\n // need update from animations?\n if (!ignoreAnimation) {\n var {\n frameDuration\n } = this;\n var shouldUpdate = this.animations.reduce((shouldUpdate, animation) => animation.update(frameDuration) || shouldUpdate, false);\n\n if (shouldUpdate) {\n return true;\n }\n } // need update from redraw?\n\n\n if (typeof forceRedraw === 'function' && forceRedraw()) {\n return true;\n }\n\n if (!this.isReadyLock && this.isReady()) {\n return true;\n } // need update from mouse events?\n\n\n if (this.mouse.hasEvents()) {\n return true;\n }\n\n return false;\n }\n\n render(element, ignoreDimensions, ignoreClear, scaleWidth, scaleHeight, offsetX, offsetY) {\n var {\n CLIENT_WIDTH,\n CLIENT_HEIGHT,\n viewPort,\n ctx,\n isFirstRender\n } = this;\n var canvas = ctx.canvas;\n viewPort.clear();\n\n if (canvas.width && canvas.height) {\n viewPort.setCurrent(canvas.width, canvas.height);\n } else {\n viewPort.setCurrent(CLIENT_WIDTH, CLIENT_HEIGHT);\n }\n\n var widthStyle = element.getStyle('width');\n var heightStyle = element.getStyle('height');\n\n if (!ignoreDimensions && (isFirstRender || typeof scaleWidth !== 'number' && typeof scaleHeight !== 'number')) {\n // set canvas size\n if (widthStyle.hasValue()) {\n canvas.width = widthStyle.getPixels('x');\n\n if (canvas.style) {\n canvas.style.width = \"\".concat(canvas.width, \"px\");\n }\n }\n\n if (heightStyle.hasValue()) {\n canvas.height = heightStyle.getPixels('y');\n\n if (canvas.style) {\n canvas.style.height = \"\".concat(canvas.height, \"px\");\n }\n }\n }\n\n var cWidth = canvas.clientWidth || canvas.width;\n var cHeight = canvas.clientHeight || canvas.height;\n\n if (ignoreDimensions && widthStyle.hasValue() && heightStyle.hasValue()) {\n cWidth = widthStyle.getPixels('x');\n cHeight = heightStyle.getPixels('y');\n }\n\n viewPort.setCurrent(cWidth, cHeight);\n\n if (typeof offsetX === 'number') {\n element.getAttribute('x', true).setValue(offsetX);\n }\n\n if (typeof offsetY === 'number') {\n element.getAttribute('y', true).setValue(offsetY);\n }\n\n if (typeof scaleWidth === 'number' || typeof scaleHeight === 'number') {\n var viewBox = toNumbers(element.getAttribute('viewBox').getString());\n var xRatio = 0;\n var yRatio = 0;\n\n if (typeof scaleWidth === 'number') {\n var _widthStyle = element.getStyle('width');\n\n if (_widthStyle.hasValue()) {\n xRatio = _widthStyle.getPixels('x') / scaleWidth;\n } else if (!isNaN(viewBox[2])) {\n xRatio = viewBox[2] / scaleWidth;\n }\n }\n\n if (typeof scaleHeight === 'number') {\n var _heightStyle = element.getStyle('height');\n\n if (_heightStyle.hasValue()) {\n yRatio = _heightStyle.getPixels('y') / scaleHeight;\n } else if (!isNaN(viewBox[3])) {\n yRatio = viewBox[3] / scaleHeight;\n }\n }\n\n if (!xRatio) {\n xRatio = yRatio;\n }\n\n if (!yRatio) {\n yRatio = xRatio;\n }\n\n element.getAttribute('width', true).setValue(scaleWidth);\n element.getAttribute('height', true).setValue(scaleHeight);\n var transformStyle = element.getStyle('transform', true, true);\n transformStyle.setValue(\"\".concat(transformStyle.getString(), \" scale(\").concat(1.0 / xRatio, \", \").concat(1.0 / yRatio, \")\"));\n } // clear and render\n\n\n if (!ignoreClear) {\n ctx.clearRect(0, 0, cWidth, cHeight);\n }\n\n element.render(ctx);\n\n if (isFirstRender) {\n this.isFirstRender = false;\n }\n }\n\n}\nScreen.defaultWindow = defaultWindow;\nScreen.defaultFetch = defaultFetch$1;\n\nvar {\n defaultFetch\n} = Screen;\nvar DefaultDOMParser = typeof DOMParser !== 'undefined' ? DOMParser : null;\nclass Parser {\n constructor() {\n var {\n fetch = defaultFetch,\n DOMParser = DefaultDOMParser\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.fetch = fetch;\n this.DOMParser = DOMParser;\n }\n\n parse(resource) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n if (resource.startsWith('<')) {\n return _this.parseFromString(resource);\n }\n\n return _this.load(resource);\n })();\n }\n\n parseFromString(xml) {\n var parser = new this.DOMParser();\n\n try {\n return this.checkDocument(parser.parseFromString(xml, 'image/svg+xml'));\n } catch (err) {\n return this.checkDocument(parser.parseFromString(xml, 'text/xml'));\n }\n }\n\n checkDocument(document) {\n var parserError = document.getElementsByTagName('parsererror')[0];\n\n if (parserError) {\n throw new Error(parserError.textContent);\n }\n\n return document;\n }\n\n load(url) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var response = yield _this2.fetch(url);\n var xml = yield response.text();\n return _this2.parseFromString(xml);\n })();\n }\n\n}\n\nclass Translate {\n constructor(_, point) {\n this.type = 'translate';\n this.point = null;\n this.point = Point.parse(point);\n }\n\n apply(ctx) {\n var {\n x,\n y\n } = this.point;\n ctx.translate(x || 0.0, y || 0.0);\n }\n\n unapply(ctx) {\n var {\n x,\n y\n } = this.point;\n ctx.translate(-1.0 * x || 0.0, -1.0 * y || 0.0);\n }\n\n applyToPoint(point) {\n var {\n x,\n y\n } = this.point;\n point.applyTransform([1, 0, 0, 1, x || 0.0, y || 0.0]);\n }\n\n}\n\nclass Rotate {\n constructor(document, rotate, transformOrigin) {\n this.type = 'rotate';\n this.angle = null;\n this.originX = null;\n this.originY = null;\n this.cx = 0;\n this.cy = 0;\n var numbers = toNumbers(rotate);\n this.angle = new Property(document, 'angle', numbers[0]);\n this.originX = transformOrigin[0];\n this.originY = transformOrigin[1];\n this.cx = numbers[1] || 0;\n this.cy = numbers[2] || 0;\n }\n\n apply(ctx) {\n var {\n cx,\n cy,\n originX,\n originY,\n angle\n } = this;\n var tx = cx + originX.getPixels('x');\n var ty = cy + originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.rotate(angle.getRadians());\n ctx.translate(-tx, -ty);\n }\n\n unapply(ctx) {\n var {\n cx,\n cy,\n originX,\n originY,\n angle\n } = this;\n var tx = cx + originX.getPixels('x');\n var ty = cy + originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.rotate(-1.0 * angle.getRadians());\n ctx.translate(-tx, -ty);\n }\n\n applyToPoint(point) {\n var {\n cx,\n cy,\n angle\n } = this;\n var rad = angle.getRadians();\n point.applyTransform([1, 0, 0, 1, cx || 0.0, cy || 0.0 // this.p.y\n ]);\n point.applyTransform([Math.cos(rad), Math.sin(rad), -Math.sin(rad), Math.cos(rad), 0, 0]);\n point.applyTransform([1, 0, 0, 1, -cx || 0.0, -cy || 0.0 // -this.p.y\n ]);\n }\n\n}\n\nclass Scale {\n constructor(_, scale, transformOrigin) {\n this.type = 'scale';\n this.scale = null;\n this.originX = null;\n this.originY = null;\n var scaleSize = Point.parseScale(scale); // Workaround for node-canvas\n\n if (scaleSize.x === 0 || scaleSize.y === 0) {\n scaleSize.x = PSEUDO_ZERO;\n scaleSize.y = PSEUDO_ZERO;\n }\n\n this.scale = scaleSize;\n this.originX = transformOrigin[0];\n this.originY = transformOrigin[1];\n }\n\n apply(ctx) {\n var {\n scale: {\n x,\n y\n },\n originX,\n originY\n } = this;\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.scale(x, y || x);\n ctx.translate(-tx, -ty);\n }\n\n unapply(ctx) {\n var {\n scale: {\n x,\n y\n },\n originX,\n originY\n } = this;\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.scale(1.0 / x, 1.0 / y || x);\n ctx.translate(-tx, -ty);\n }\n\n applyToPoint(point) {\n var {\n x,\n y\n } = this.scale;\n point.applyTransform([x || 0.0, 0, 0, y || 0.0, 0, 0]);\n }\n\n}\n\nclass Matrix {\n constructor(_, matrix, transformOrigin) {\n this.type = 'matrix';\n this.matrix = [];\n this.originX = null;\n this.originY = null;\n this.matrix = toNumbers(matrix);\n this.originX = transformOrigin[0];\n this.originY = transformOrigin[1];\n }\n\n apply(ctx) {\n var {\n originX,\n originY,\n matrix\n } = this;\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);\n ctx.translate(-tx, -ty);\n }\n\n unapply(ctx) {\n var {\n originX,\n originY,\n matrix\n } = this;\n var a = matrix[0];\n var b = matrix[2];\n var c = matrix[4];\n var d = matrix[1];\n var e = matrix[3];\n var f = matrix[5];\n var g = 0.0;\n var h = 0.0;\n var i = 1.0;\n var det = 1 / (a * (e * i - f * h) - b * (d * i - f * g) + c * (d * h - e * g));\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.transform(det * (e * i - f * h), det * (f * g - d * i), det * (c * h - b * i), det * (a * i - c * g), det * (b * f - c * e), det * (c * d - a * f));\n ctx.translate(-tx, -ty);\n }\n\n applyToPoint(point) {\n point.applyTransform(this.matrix);\n }\n\n}\n\nclass Skew extends Matrix {\n constructor(document, skew, transformOrigin) {\n super(document, skew, transformOrigin);\n this.type = 'skew';\n this.angle = null;\n this.angle = new Property(document, 'angle', skew);\n }\n\n}\n\nclass SkewX extends Skew {\n constructor(document, skew, transformOrigin) {\n super(document, skew, transformOrigin);\n this.type = 'skewX';\n this.matrix = [1, 0, Math.tan(this.angle.getRadians()), 1, 0, 0];\n }\n\n}\n\nclass SkewY extends Skew {\n constructor(document, skew, transformOrigin) {\n super(document, skew, transformOrigin);\n this.type = 'skewY';\n this.matrix = [1, Math.tan(this.angle.getRadians()), 0, 1, 0, 0];\n }\n\n}\n\nfunction parseTransforms(transform) {\n return compressSpaces(transform).trim().replace(/\\)([a-zA-Z])/g, ') $1').replace(/\\)(\\s?,\\s?)/g, ') ').split(/\\s(?=[a-z])/);\n}\n\nfunction parseTransform(transform) {\n var [type, value] = transform.split('(');\n return [type.trim(), value.trim().replace(')', '')];\n}\n\nclass Transform {\n constructor(document, transform, transformOrigin) {\n this.document = document;\n this.transforms = [];\n var data = parseTransforms(transform);\n data.forEach(transform => {\n if (transform === 'none') {\n return;\n }\n\n var [type, value] = parseTransform(transform);\n var TransformType = Transform.transformTypes[type];\n\n if (typeof TransformType !== 'undefined') {\n this.transforms.push(new TransformType(this.document, value, transformOrigin));\n }\n });\n }\n\n static fromElement(document, element) {\n var transformStyle = element.getStyle('transform', false, true);\n var [transformOriginXProperty, transformOriginYProperty = transformOriginXProperty] = element.getStyle('transform-origin', false, true).split();\n var transformOrigin = [transformOriginXProperty, transformOriginYProperty];\n\n if (transformStyle.hasValue()) {\n return new Transform(document, transformStyle.getString(), transformOrigin);\n }\n\n return null;\n }\n\n apply(ctx) {\n var {\n transforms\n } = this;\n var len = transforms.length;\n\n for (var i = 0; i < len; i++) {\n transforms[i].apply(ctx);\n }\n }\n\n unapply(ctx) {\n var {\n transforms\n } = this;\n var len = transforms.length;\n\n for (var i = len - 1; i >= 0; i--) {\n transforms[i].unapply(ctx);\n }\n } // TODO: applyToPoint unused ... remove?\n\n\n applyToPoint(point) {\n var {\n transforms\n } = this;\n var len = transforms.length;\n\n for (var i = 0; i < len; i++) {\n transforms[i].applyToPoint(point);\n }\n }\n\n}\nTransform.transformTypes = {\n translate: Translate,\n rotate: Rotate,\n scale: Scale,\n matrix: Matrix,\n skewX: SkewX,\n skewY: SkewY\n};\n\nclass Element {\n constructor(document, node) {\n var captureTextNodes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n this.document = document;\n this.node = node;\n this.captureTextNodes = captureTextNodes;\n this.attributes = {};\n this.styles = {};\n this.stylesSpecificity = {};\n this.animationFrozen = false;\n this.animationFrozenValue = '';\n this.parent = null;\n this.children = [];\n\n if (!node || node.nodeType !== 1) {\n // ELEMENT_NODE\n return;\n } // add attributes\n\n\n Array.from(node.attributes).forEach(attribute => {\n var nodeName = normalizeAttributeName(attribute.nodeName);\n this.attributes[nodeName] = new Property(document, nodeName, attribute.value);\n });\n this.addStylesFromStyleDefinition(); // add inline styles\n\n if (this.getAttribute('style').hasValue()) {\n var styles = this.getAttribute('style').getString().split(';').map(_ => _.trim());\n styles.forEach(style => {\n if (!style) {\n return;\n }\n\n var [name, value] = style.split(':').map(_ => _.trim());\n this.styles[name] = new Property(document, name, value);\n });\n }\n\n var {\n definitions\n } = document;\n var id = this.getAttribute('id'); // add id\n\n if (id.hasValue()) {\n if (!definitions[id.getString()]) {\n definitions[id.getString()] = this;\n }\n }\n\n Array.from(node.childNodes).forEach(childNode => {\n if (childNode.nodeType === 1) {\n this.addChild(childNode); // ELEMENT_NODE\n } else if (captureTextNodes && (childNode.nodeType === 3 || childNode.nodeType === 4)) {\n var textNode = document.createTextNode(childNode);\n\n if (textNode.getText().length > 0) {\n this.addChild(textNode); // TEXT_NODE\n }\n }\n });\n }\n\n getAttribute(name) {\n var createIfNotExists = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var attr = this.attributes[name];\n\n if (!attr && createIfNotExists) {\n var _attr = new Property(this.document, name, '');\n\n this.attributes[name] = _attr;\n return _attr;\n }\n\n return attr || Property.empty(this.document);\n }\n\n getHrefAttribute() {\n for (var key in this.attributes) {\n if (key === 'href' || key.endsWith(':href')) {\n return this.attributes[key];\n }\n }\n\n return Property.empty(this.document);\n }\n\n getStyle(name) {\n var createIfNotExists = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var skipAncestors = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var style = this.styles[name];\n\n if (style) {\n return style;\n }\n\n var attr = this.getAttribute(name);\n\n if (attr !== null && attr !== void 0 && attr.hasValue()) {\n this.styles[name] = attr; // move up to me to cache\n\n return attr;\n }\n\n if (!skipAncestors) {\n var {\n parent\n } = this;\n\n if (parent) {\n var parentStyle = parent.getStyle(name);\n\n if (parentStyle !== null && parentStyle !== void 0 && parentStyle.hasValue()) {\n return parentStyle;\n }\n }\n }\n\n if (createIfNotExists) {\n var _style = new Property(this.document, name, '');\n\n this.styles[name] = _style;\n return _style;\n }\n\n return style || Property.empty(this.document);\n }\n\n render(ctx) {\n // don't render display=none\n // don't render visibility=hidden\n if (this.getStyle('display').getString() === 'none' || this.getStyle('visibility').getString() === 'hidden') {\n return;\n }\n\n ctx.save();\n\n if (this.getStyle('mask').hasValue()) {\n // mask\n var mask = this.getStyle('mask').getDefinition();\n\n if (mask) {\n this.applyEffects(ctx);\n mask.apply(ctx, this);\n }\n } else if (this.getStyle('filter').getValue('none') !== 'none') {\n // filter\n var filter = this.getStyle('filter').getDefinition();\n\n if (filter) {\n this.applyEffects(ctx);\n filter.apply(ctx, this);\n }\n } else {\n this.setContext(ctx);\n this.renderChildren(ctx);\n this.clearContext(ctx);\n }\n\n ctx.restore();\n }\n\n setContext(_) {// NO RENDER\n }\n\n applyEffects(ctx) {\n // transform\n var transform = Transform.fromElement(this.document, this);\n\n if (transform) {\n transform.apply(ctx);\n } // clip\n\n\n var clipPathStyleProp = this.getStyle('clip-path', false, true);\n\n if (clipPathStyleProp.hasValue()) {\n var clip = clipPathStyleProp.getDefinition();\n\n if (clip) {\n clip.apply(ctx);\n }\n }\n }\n\n clearContext(_) {// NO RENDER\n }\n\n renderChildren(ctx) {\n this.children.forEach(child => {\n child.render(ctx);\n });\n }\n\n addChild(childNode) {\n var child = childNode instanceof Element ? childNode : this.document.createElement(childNode);\n child.parent = this;\n\n if (!Element.ignoreChildTypes.includes(child.type)) {\n this.children.push(child);\n }\n }\n\n matchesSelector(selector) {\n var _node$getAttribute;\n\n var {\n node\n } = this;\n\n if (typeof node.matches === 'function') {\n return node.matches(selector);\n }\n\n var styleClasses = (_node$getAttribute = node.getAttribute) === null || _node$getAttribute === void 0 ? void 0 : _node$getAttribute.call(node, 'class');\n\n if (!styleClasses || styleClasses === '') {\n return false;\n }\n\n return styleClasses.split(' ').some(styleClass => \".\".concat(styleClass) === selector);\n }\n\n addStylesFromStyleDefinition() {\n var {\n styles,\n stylesSpecificity\n } = this.document;\n\n for (var selector in styles) {\n if (!selector.startsWith('@') && this.matchesSelector(selector)) {\n var style = styles[selector];\n var specificity = stylesSpecificity[selector];\n\n if (style) {\n for (var name in style) {\n var existingSpecificity = this.stylesSpecificity[name];\n\n if (typeof existingSpecificity === 'undefined') {\n existingSpecificity = '000';\n }\n\n if (specificity >= existingSpecificity) {\n this.styles[name] = style[name];\n this.stylesSpecificity[name] = specificity;\n }\n }\n }\n }\n }\n }\n\n removeStyles(element, ignoreStyles) {\n var toRestore = ignoreStyles.reduce((toRestore, name) => {\n var styleProp = element.getStyle(name);\n\n if (!styleProp.hasValue()) {\n return toRestore;\n }\n\n var value = styleProp.getString();\n styleProp.setValue('');\n return [...toRestore, [name, value]];\n }, []);\n return toRestore;\n }\n\n restoreStyles(element, styles) {\n styles.forEach(_ref => {\n var [name, value] = _ref;\n element.getStyle(name, true).setValue(value);\n });\n }\n\n isFirstChild() {\n var _this$parent;\n\n return ((_this$parent = this.parent) === null || _this$parent === void 0 ? void 0 : _this$parent.children.indexOf(this)) === 0;\n }\n\n}\nElement.ignoreChildTypes = ['title'];\n\nclass UnknownElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n }\n\n}\n\nfunction wrapFontFamily(fontFamily) {\n var trimmed = fontFamily.trim();\n return /^('|\")/.test(trimmed) ? trimmed : \"\\\"\".concat(trimmed, \"\\\"\");\n}\n\nfunction prepareFontFamily(fontFamily) {\n return typeof process === 'undefined' ? fontFamily : fontFamily.trim().split(',').map(wrapFontFamily).join(',');\n}\n/**\r\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-style\r\n * @param fontStyle\r\n * @returns CSS font style.\r\n */\n\n\nfunction prepareFontStyle(fontStyle) {\n if (!fontStyle) {\n return '';\n }\n\n var targetFontStyle = fontStyle.trim().toLowerCase();\n\n switch (targetFontStyle) {\n case 'normal':\n case 'italic':\n case 'oblique':\n case 'inherit':\n case 'initial':\n case 'unset':\n return targetFontStyle;\n\n default:\n if (/^oblique\\s+(-|)\\d+deg$/.test(targetFontStyle)) {\n return targetFontStyle;\n }\n\n return '';\n }\n}\n/**\r\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight\r\n * @param fontWeight\r\n * @returns CSS font weight.\r\n */\n\n\nfunction prepareFontWeight(fontWeight) {\n if (!fontWeight) {\n return '';\n }\n\n var targetFontWeight = fontWeight.trim().toLowerCase();\n\n switch (targetFontWeight) {\n case 'normal':\n case 'bold':\n case 'lighter':\n case 'bolder':\n case 'inherit':\n case 'initial':\n case 'unset':\n return targetFontWeight;\n\n default:\n if (/^[\\d.]+$/.test(targetFontWeight)) {\n return targetFontWeight;\n }\n\n return '';\n }\n}\n\nclass Font {\n constructor(fontStyle, fontVariant, fontWeight, fontSize, fontFamily, inherit) {\n var inheritFont = inherit ? typeof inherit === 'string' ? Font.parse(inherit) : inherit : {};\n this.fontFamily = fontFamily || inheritFont.fontFamily;\n this.fontSize = fontSize || inheritFont.fontSize;\n this.fontStyle = fontStyle || inheritFont.fontStyle;\n this.fontWeight = fontWeight || inheritFont.fontWeight;\n this.fontVariant = fontVariant || inheritFont.fontVariant;\n }\n\n static parse() {\n var font = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var inherit = arguments.length > 1 ? arguments[1] : undefined;\n var fontStyle = '';\n var fontVariant = '';\n var fontWeight = '';\n var fontSize = '';\n var fontFamily = '';\n var parts = compressSpaces(font).trim().split(' ');\n var set = {\n fontSize: false,\n fontStyle: false,\n fontWeight: false,\n fontVariant: false\n };\n parts.forEach(part => {\n switch (true) {\n case !set.fontStyle && Font.styles.includes(part):\n if (part !== 'inherit') {\n fontStyle = part;\n }\n\n set.fontStyle = true;\n break;\n\n case !set.fontVariant && Font.variants.includes(part):\n if (part !== 'inherit') {\n fontVariant = part;\n }\n\n set.fontStyle = true;\n set.fontVariant = true;\n break;\n\n case !set.fontWeight && Font.weights.includes(part):\n if (part !== 'inherit') {\n fontWeight = part;\n }\n\n set.fontStyle = true;\n set.fontVariant = true;\n set.fontWeight = true;\n break;\n\n case !set.fontSize:\n if (part !== 'inherit') {\n [fontSize] = part.split('/');\n }\n\n set.fontStyle = true;\n set.fontVariant = true;\n set.fontWeight = true;\n set.fontSize = true;\n break;\n\n default:\n if (part !== 'inherit') {\n fontFamily += part;\n }\n\n }\n });\n return new Font(fontStyle, fontVariant, fontWeight, fontSize, fontFamily, inherit);\n }\n\n toString() {\n return [prepareFontStyle(this.fontStyle), this.fontVariant, prepareFontWeight(this.fontWeight), this.fontSize, // Wrap fontFamily only on nodejs and only for canvas.ctx\n prepareFontFamily(this.fontFamily)].join(' ').trim();\n }\n\n}\nFont.styles = 'normal|italic|oblique|inherit';\nFont.variants = 'normal|small-caps|inherit';\nFont.weights = 'normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900|inherit';\n\nclass BoundingBox {\n constructor() {\n var x1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Number.NaN;\n var y1 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.NaN;\n var x2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Number.NaN;\n var y2 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Number.NaN;\n this.x1 = x1;\n this.y1 = y1;\n this.x2 = x2;\n this.y2 = y2;\n this.addPoint(x1, y1);\n this.addPoint(x2, y2);\n }\n\n get x() {\n return this.x1;\n }\n\n get y() {\n return this.y1;\n }\n\n get width() {\n return this.x2 - this.x1;\n }\n\n get height() {\n return this.y2 - this.y1;\n }\n\n addPoint(x, y) {\n if (typeof x !== 'undefined') {\n if (isNaN(this.x1) || isNaN(this.x2)) {\n this.x1 = x;\n this.x2 = x;\n }\n\n if (x < this.x1) {\n this.x1 = x;\n }\n\n if (x > this.x2) {\n this.x2 = x;\n }\n }\n\n if (typeof y !== 'undefined') {\n if (isNaN(this.y1) || isNaN(this.y2)) {\n this.y1 = y;\n this.y2 = y;\n }\n\n if (y < this.y1) {\n this.y1 = y;\n }\n\n if (y > this.y2) {\n this.y2 = y;\n }\n }\n }\n\n addX(x) {\n this.addPoint(x, null);\n }\n\n addY(y) {\n this.addPoint(null, y);\n }\n\n addBoundingBox(boundingBox) {\n if (!boundingBox) {\n return;\n }\n\n var {\n x1,\n y1,\n x2,\n y2\n } = boundingBox;\n this.addPoint(x1, y1);\n this.addPoint(x2, y2);\n }\n\n sumCubic(t, p0, p1, p2, p3) {\n return Math.pow(1 - t, 3) * p0 + 3 * Math.pow(1 - t, 2) * t * p1 + 3 * (1 - t) * Math.pow(t, 2) * p2 + Math.pow(t, 3) * p3;\n }\n\n bezierCurveAdd(forX, p0, p1, p2, p3) {\n var b = 6 * p0 - 12 * p1 + 6 * p2;\n var a = -3 * p0 + 9 * p1 - 9 * p2 + 3 * p3;\n var c = 3 * p1 - 3 * p0;\n\n if (a === 0) {\n if (b === 0) {\n return;\n }\n\n var t = -c / b;\n\n if (0 < t && t < 1) {\n if (forX) {\n this.addX(this.sumCubic(t, p0, p1, p2, p3));\n } else {\n this.addY(this.sumCubic(t, p0, p1, p2, p3));\n }\n }\n\n return;\n }\n\n var b2ac = Math.pow(b, 2) - 4 * c * a;\n\n if (b2ac < 0) {\n return;\n }\n\n var t1 = (-b + Math.sqrt(b2ac)) / (2 * a);\n\n if (0 < t1 && t1 < 1) {\n if (forX) {\n this.addX(this.sumCubic(t1, p0, p1, p2, p3));\n } else {\n this.addY(this.sumCubic(t1, p0, p1, p2, p3));\n }\n }\n\n var t2 = (-b - Math.sqrt(b2ac)) / (2 * a);\n\n if (0 < t2 && t2 < 1) {\n if (forX) {\n this.addX(this.sumCubic(t2, p0, p1, p2, p3));\n } else {\n this.addY(this.sumCubic(t2, p0, p1, p2, p3));\n }\n }\n } // from http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html\n\n\n addBezierCurve(p0x, p0y, p1x, p1y, p2x, p2y, p3x, p3y) {\n this.addPoint(p0x, p0y);\n this.addPoint(p3x, p3y);\n this.bezierCurveAdd(true, p0x, p1x, p2x, p3x);\n this.bezierCurveAdd(false, p0y, p1y, p2y, p3y);\n }\n\n addQuadraticCurve(p0x, p0y, p1x, p1y, p2x, p2y) {\n var cp1x = p0x + 2 / 3 * (p1x - p0x); // CP1 = QP0 + 2/3 *(QP1-QP0)\n\n var cp1y = p0y + 2 / 3 * (p1y - p0y); // CP1 = QP0 + 2/3 *(QP1-QP0)\n\n var cp2x = cp1x + 1 / 3 * (p2x - p0x); // CP2 = CP1 + 1/3 *(QP2-QP0)\n\n var cp2y = cp1y + 1 / 3 * (p2y - p0y); // CP2 = CP1 + 1/3 *(QP2-QP0)\n\n this.addBezierCurve(p0x, p0y, cp1x, cp2x, cp1y, cp2y, p2x, p2y);\n }\n\n isPointInBox(x, y) {\n var {\n x1,\n y1,\n x2,\n y2\n } = this;\n return x1 <= x && x <= x2 && y1 <= y && y <= y2;\n }\n\n}\n\nclass PathParser extends SVGPathData {\n constructor(path) {\n super(path // Fix spaces after signs.\n .replace(/([+\\-.])\\s+/gm, '$1') // Remove invalid part.\n .replace(/[^MmZzLlHhVvCcSsQqTtAae\\d\\s.,+-].*/g, ''));\n this.control = null;\n this.start = null;\n this.current = null;\n this.command = null;\n this.commands = this.commands;\n this.i = -1;\n this.previousCommand = null;\n this.points = [];\n this.angles = [];\n }\n\n reset() {\n this.i = -1;\n this.command = null;\n this.previousCommand = null;\n this.start = new Point(0, 0);\n this.control = new Point(0, 0);\n this.current = new Point(0, 0);\n this.points = [];\n this.angles = [];\n }\n\n isEnd() {\n var {\n i,\n commands\n } = this;\n return i >= commands.length - 1;\n }\n\n next() {\n var command = this.commands[++this.i];\n this.previousCommand = this.command;\n this.command = command;\n return command;\n }\n\n getPoint() {\n var xProp = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'x';\n var yProp = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'y';\n var point = new Point(this.command[xProp], this.command[yProp]);\n return this.makeAbsolute(point);\n }\n\n getAsControlPoint(xProp, yProp) {\n var point = this.getPoint(xProp, yProp);\n this.control = point;\n return point;\n }\n\n getAsCurrentPoint(xProp, yProp) {\n var point = this.getPoint(xProp, yProp);\n this.current = point;\n return point;\n }\n\n getReflectedControlPoint() {\n var previousCommand = this.previousCommand.type;\n\n if (previousCommand !== SVGPathData.CURVE_TO && previousCommand !== SVGPathData.SMOOTH_CURVE_TO && previousCommand !== SVGPathData.QUAD_TO && previousCommand !== SVGPathData.SMOOTH_QUAD_TO) {\n return this.current;\n } // reflect point\n\n\n var {\n current: {\n x: cx,\n y: cy\n },\n control: {\n x: ox,\n y: oy\n }\n } = this;\n var point = new Point(2 * cx - ox, 2 * cy - oy);\n return point;\n }\n\n makeAbsolute(point) {\n if (this.command.relative) {\n var {\n x,\n y\n } = this.current;\n point.x += x;\n point.y += y;\n }\n\n return point;\n }\n\n addMarker(point, from, priorTo) {\n var {\n points,\n angles\n } = this; // if the last angle isn't filled in because we didn't have this point yet ...\n\n if (priorTo && angles.length > 0 && !angles[angles.length - 1]) {\n angles[angles.length - 1] = points[points.length - 1].angleTo(priorTo);\n }\n\n this.addMarkerAngle(point, from ? from.angleTo(point) : null);\n }\n\n addMarkerAngle(point, angle) {\n this.points.push(point);\n this.angles.push(angle);\n }\n\n getMarkerPoints() {\n return this.points;\n }\n\n getMarkerAngles() {\n var {\n angles\n } = this;\n var len = angles.length;\n\n for (var i = 0; i < len; i++) {\n if (!angles[i]) {\n for (var j = i + 1; j < len; j++) {\n if (angles[j]) {\n angles[i] = angles[j];\n break;\n }\n }\n }\n }\n\n return angles;\n }\n\n}\n\nclass RenderedElement extends Element {\n constructor() {\n super(...arguments);\n this.modifiedEmSizeStack = false;\n }\n\n calculateOpacity() {\n var opacity = 1.0; // eslint-disable-next-line @typescript-eslint/no-this-alias, consistent-this\n\n var element = this;\n\n while (element) {\n var opacityStyle = element.getStyle('opacity', false, true); // no ancestors on style call\n\n if (opacityStyle.hasValue(true)) {\n opacity *= opacityStyle.getNumber();\n }\n\n element = element.parent;\n }\n\n return opacity;\n }\n\n setContext(ctx) {\n var fromMeasure = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!fromMeasure) {\n // causes stack overflow when measuring text with gradients\n // fill\n var fillStyleProp = this.getStyle('fill');\n var fillOpacityStyleProp = this.getStyle('fill-opacity');\n var strokeStyleProp = this.getStyle('stroke');\n var strokeOpacityProp = this.getStyle('stroke-opacity');\n\n if (fillStyleProp.isUrlDefinition()) {\n var fillStyle = fillStyleProp.getFillStyleDefinition(this, fillOpacityStyleProp);\n\n if (fillStyle) {\n ctx.fillStyle = fillStyle;\n }\n } else if (fillStyleProp.hasValue()) {\n if (fillStyleProp.getString() === 'currentColor') {\n fillStyleProp.setValue(this.getStyle('color').getColor());\n }\n\n var _fillStyle = fillStyleProp.getColor();\n\n if (_fillStyle !== 'inherit') {\n ctx.fillStyle = _fillStyle === 'none' ? 'rgba(0,0,0,0)' : _fillStyle;\n }\n }\n\n if (fillOpacityStyleProp.hasValue()) {\n var _fillStyle2 = new Property(this.document, 'fill', ctx.fillStyle).addOpacity(fillOpacityStyleProp).getColor();\n\n ctx.fillStyle = _fillStyle2;\n } // stroke\n\n\n if (strokeStyleProp.isUrlDefinition()) {\n var strokeStyle = strokeStyleProp.getFillStyleDefinition(this, strokeOpacityProp);\n\n if (strokeStyle) {\n ctx.strokeStyle = strokeStyle;\n }\n } else if (strokeStyleProp.hasValue()) {\n if (strokeStyleProp.getString() === 'currentColor') {\n strokeStyleProp.setValue(this.getStyle('color').getColor());\n }\n\n var _strokeStyle = strokeStyleProp.getString();\n\n if (_strokeStyle !== 'inherit') {\n ctx.strokeStyle = _strokeStyle === 'none' ? 'rgba(0,0,0,0)' : _strokeStyle;\n }\n }\n\n if (strokeOpacityProp.hasValue()) {\n var _strokeStyle2 = new Property(this.document, 'stroke', ctx.strokeStyle).addOpacity(strokeOpacityProp).getString();\n\n ctx.strokeStyle = _strokeStyle2;\n }\n\n var strokeWidthStyleProp = this.getStyle('stroke-width');\n\n if (strokeWidthStyleProp.hasValue()) {\n var newLineWidth = strokeWidthStyleProp.getPixels();\n ctx.lineWidth = !newLineWidth ? PSEUDO_ZERO // browsers don't respect 0 (or node-canvas? :-)\n : newLineWidth;\n }\n\n var strokeLinecapStyleProp = this.getStyle('stroke-linecap');\n var strokeLinejoinStyleProp = this.getStyle('stroke-linejoin');\n var strokeMiterlimitProp = this.getStyle('stroke-miterlimit'); // NEED TEST\n // const pointOrderStyleProp = this.getStyle('paint-order');\n\n var strokeDasharrayStyleProp = this.getStyle('stroke-dasharray');\n var strokeDashoffsetProp = this.getStyle('stroke-dashoffset');\n\n if (strokeLinecapStyleProp.hasValue()) {\n ctx.lineCap = strokeLinecapStyleProp.getString();\n }\n\n if (strokeLinejoinStyleProp.hasValue()) {\n ctx.lineJoin = strokeLinejoinStyleProp.getString();\n }\n\n if (strokeMiterlimitProp.hasValue()) {\n ctx.miterLimit = strokeMiterlimitProp.getNumber();\n } // NEED TEST\n // if (pointOrderStyleProp.hasValue()) {\n // \t// ?\n // \tctx.paintOrder = pointOrderStyleProp.getValue();\n // }\n\n\n if (strokeDasharrayStyleProp.hasValue() && strokeDasharrayStyleProp.getString() !== 'none') {\n var gaps = toNumbers(strokeDasharrayStyleProp.getString());\n\n if (typeof ctx.setLineDash !== 'undefined') {\n ctx.setLineDash(gaps);\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.webkitLineDash !== 'undefined') {\n // @ts-expect-error Handle browser prefix.\n ctx.webkitLineDash = gaps;\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.mozDash !== 'undefined' && !(gaps.length === 1 && gaps[0] === 0)) {\n // @ts-expect-error Handle browser prefix.\n ctx.mozDash = gaps;\n }\n\n var offset = strokeDashoffsetProp.getPixels();\n\n if (typeof ctx.lineDashOffset !== 'undefined') {\n ctx.lineDashOffset = offset;\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.webkitLineDashOffset !== 'undefined') {\n // @ts-expect-error Handle browser prefix.\n ctx.webkitLineDashOffset = offset;\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.mozDashOffset !== 'undefined') {\n // @ts-expect-error Handle browser prefix.\n ctx.mozDashOffset = offset;\n }\n }\n } // font\n\n\n this.modifiedEmSizeStack = false;\n\n if (typeof ctx.font !== 'undefined') {\n var fontStyleProp = this.getStyle('font');\n var fontStyleStyleProp = this.getStyle('font-style');\n var fontVariantStyleProp = this.getStyle('font-variant');\n var fontWeightStyleProp = this.getStyle('font-weight');\n var fontSizeStyleProp = this.getStyle('font-size');\n var fontFamilyStyleProp = this.getStyle('font-family');\n var font = new Font(fontStyleStyleProp.getString(), fontVariantStyleProp.getString(), fontWeightStyleProp.getString(), fontSizeStyleProp.hasValue() ? \"\".concat(fontSizeStyleProp.getPixels(true), \"px\") : '', fontFamilyStyleProp.getString(), Font.parse(fontStyleProp.getString(), ctx.font));\n fontStyleStyleProp.setValue(font.fontStyle);\n fontVariantStyleProp.setValue(font.fontVariant);\n fontWeightStyleProp.setValue(font.fontWeight);\n fontSizeStyleProp.setValue(font.fontSize);\n fontFamilyStyleProp.setValue(font.fontFamily);\n ctx.font = font.toString();\n\n if (fontSizeStyleProp.isPixels()) {\n this.document.emSize = fontSizeStyleProp.getPixels();\n this.modifiedEmSizeStack = true;\n }\n }\n\n if (!fromMeasure) {\n // effects\n this.applyEffects(ctx); // opacity\n\n ctx.globalAlpha = this.calculateOpacity();\n }\n }\n\n clearContext(ctx) {\n super.clearContext(ctx);\n\n if (this.modifiedEmSizeStack) {\n this.document.popEmSize();\n }\n }\n\n}\n\nclass PathElement extends RenderedElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'path';\n this.pathParser = null;\n this.pathParser = new PathParser(this.getAttribute('d').getString());\n }\n\n path(ctx) {\n var {\n pathParser\n } = this;\n var boundingBox = new BoundingBox();\n pathParser.reset();\n\n if (ctx) {\n ctx.beginPath();\n }\n\n while (!pathParser.isEnd()) {\n switch (pathParser.next().type) {\n case PathParser.MOVE_TO:\n this.pathM(ctx, boundingBox);\n break;\n\n case PathParser.LINE_TO:\n this.pathL(ctx, boundingBox);\n break;\n\n case PathParser.HORIZ_LINE_TO:\n this.pathH(ctx, boundingBox);\n break;\n\n case PathParser.VERT_LINE_TO:\n this.pathV(ctx, boundingBox);\n break;\n\n case PathParser.CURVE_TO:\n this.pathC(ctx, boundingBox);\n break;\n\n case PathParser.SMOOTH_CURVE_TO:\n this.pathS(ctx, boundingBox);\n break;\n\n case PathParser.QUAD_TO:\n this.pathQ(ctx, boundingBox);\n break;\n\n case PathParser.SMOOTH_QUAD_TO:\n this.pathT(ctx, boundingBox);\n break;\n\n case PathParser.ARC:\n this.pathA(ctx, boundingBox);\n break;\n\n case PathParser.CLOSE_PATH:\n this.pathZ(ctx, boundingBox);\n break;\n }\n }\n\n return boundingBox;\n }\n\n getBoundingBox(_) {\n return this.path();\n }\n\n getMarkers() {\n var {\n pathParser\n } = this;\n var points = pathParser.getMarkerPoints();\n var angles = pathParser.getMarkerAngles();\n var markers = points.map((point, i) => [point, angles[i]]);\n return markers;\n }\n\n renderChildren(ctx) {\n this.path(ctx);\n this.document.screen.mouse.checkPath(this, ctx);\n var fillRuleStyleProp = this.getStyle('fill-rule');\n\n if (ctx.fillStyle !== '') {\n if (fillRuleStyleProp.getString('inherit') !== 'inherit') {\n ctx.fill(fillRuleStyleProp.getString());\n } else {\n ctx.fill();\n }\n }\n\n if (ctx.strokeStyle !== '') {\n if (this.getAttribute('vector-effect').getString() === 'non-scaling-stroke') {\n ctx.save();\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.stroke();\n ctx.restore();\n } else {\n ctx.stroke();\n }\n }\n\n var markers = this.getMarkers();\n\n if (markers) {\n var markersLastIndex = markers.length - 1;\n var markerStartStyleProp = this.getStyle('marker-start');\n var markerMidStyleProp = this.getStyle('marker-mid');\n var markerEndStyleProp = this.getStyle('marker-end');\n\n if (markerStartStyleProp.isUrlDefinition()) {\n var marker = markerStartStyleProp.getDefinition();\n var [point, angle] = markers[0];\n marker.render(ctx, point, angle);\n }\n\n if (markerMidStyleProp.isUrlDefinition()) {\n var _marker = markerMidStyleProp.getDefinition();\n\n for (var i = 1; i < markersLastIndex; i++) {\n var [_point, _angle] = markers[i];\n\n _marker.render(ctx, _point, _angle);\n }\n }\n\n if (markerEndStyleProp.isUrlDefinition()) {\n var _marker2 = markerEndStyleProp.getDefinition();\n\n var [_point2, _angle2] = markers[markersLastIndex];\n\n _marker2.render(ctx, _point2, _angle2);\n }\n }\n }\n\n static pathM(pathParser) {\n var point = pathParser.getAsCurrentPoint();\n pathParser.start = pathParser.current;\n return {\n point\n };\n }\n\n pathM(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n point\n } = PathElement.pathM(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.moveTo(x, y);\n }\n }\n\n static pathL(pathParser) {\n var {\n current\n } = pathParser;\n var point = pathParser.getAsCurrentPoint();\n return {\n current,\n point\n };\n }\n\n pathL(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point\n } = PathElement.pathL(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point, current);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n }\n\n static pathH(pathParser) {\n var {\n current,\n command\n } = pathParser;\n var point = new Point((command.relative ? current.x : 0) + command.x, current.y);\n pathParser.current = point;\n return {\n current,\n point\n };\n }\n\n pathH(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point\n } = PathElement.pathH(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point, current);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n }\n\n static pathV(pathParser) {\n var {\n current,\n command\n } = pathParser;\n var point = new Point(current.x, (command.relative ? current.y : 0) + command.y);\n pathParser.current = point;\n return {\n current,\n point\n };\n }\n\n pathV(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point\n } = PathElement.pathV(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point, current);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n }\n\n static pathC(pathParser) {\n var {\n current\n } = pathParser;\n var point = pathParser.getPoint('x1', 'y1');\n var controlPoint = pathParser.getAsControlPoint('x2', 'y2');\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n point,\n controlPoint,\n currentPoint\n };\n }\n\n pathC(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathC(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, point);\n boundingBox.addBezierCurve(current.x, current.y, point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.bezierCurveTo(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathS(pathParser) {\n var {\n current\n } = pathParser;\n var point = pathParser.getReflectedControlPoint();\n var controlPoint = pathParser.getAsControlPoint('x2', 'y2');\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n point,\n controlPoint,\n currentPoint\n };\n }\n\n pathS(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathS(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, point);\n boundingBox.addBezierCurve(current.x, current.y, point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.bezierCurveTo(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathQ(pathParser) {\n var {\n current\n } = pathParser;\n var controlPoint = pathParser.getAsControlPoint('x1', 'y1');\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n controlPoint,\n currentPoint\n };\n }\n\n pathQ(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n controlPoint,\n currentPoint\n } = PathElement.pathQ(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, controlPoint);\n boundingBox.addQuadraticCurve(current.x, current.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.quadraticCurveTo(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathT(pathParser) {\n var {\n current\n } = pathParser;\n var controlPoint = pathParser.getReflectedControlPoint();\n pathParser.control = controlPoint;\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n controlPoint,\n currentPoint\n };\n }\n\n pathT(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n controlPoint,\n currentPoint\n } = PathElement.pathT(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, controlPoint);\n boundingBox.addQuadraticCurve(current.x, current.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.quadraticCurveTo(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathA(pathParser) {\n var {\n current,\n command\n } = pathParser;\n var {\n rX,\n rY,\n xRot,\n lArcFlag,\n sweepFlag\n } = command;\n var xAxisRotation = xRot * (Math.PI / 180.0);\n var currentPoint = pathParser.getAsCurrentPoint(); // Conversion from endpoint to center parameterization\n // http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes\n // x1', y1'\n\n var currp = new Point(Math.cos(xAxisRotation) * (current.x - currentPoint.x) / 2.0 + Math.sin(xAxisRotation) * (current.y - currentPoint.y) / 2.0, -Math.sin(xAxisRotation) * (current.x - currentPoint.x) / 2.0 + Math.cos(xAxisRotation) * (current.y - currentPoint.y) / 2.0); // adjust radii\n\n var l = Math.pow(currp.x, 2) / Math.pow(rX, 2) + Math.pow(currp.y, 2) / Math.pow(rY, 2);\n\n if (l > 1) {\n rX *= Math.sqrt(l);\n rY *= Math.sqrt(l);\n } // cx', cy'\n\n\n var s = (lArcFlag === sweepFlag ? -1 : 1) * Math.sqrt((Math.pow(rX, 2) * Math.pow(rY, 2) - Math.pow(rX, 2) * Math.pow(currp.y, 2) - Math.pow(rY, 2) * Math.pow(currp.x, 2)) / (Math.pow(rX, 2) * Math.pow(currp.y, 2) + Math.pow(rY, 2) * Math.pow(currp.x, 2)));\n\n if (isNaN(s)) {\n s = 0;\n }\n\n var cpp = new Point(s * rX * currp.y / rY, s * -rY * currp.x / rX); // cx, cy\n\n var centp = new Point((current.x + currentPoint.x) / 2.0 + Math.cos(xAxisRotation) * cpp.x - Math.sin(xAxisRotation) * cpp.y, (current.y + currentPoint.y) / 2.0 + Math.sin(xAxisRotation) * cpp.x + Math.cos(xAxisRotation) * cpp.y); // initial angle\n\n var a1 = vectorsAngle([1, 0], [(currp.x - cpp.x) / rX, (currp.y - cpp.y) / rY]); // θ1\n // angle delta\n\n var u = [(currp.x - cpp.x) / rX, (currp.y - cpp.y) / rY];\n var v = [(-currp.x - cpp.x) / rX, (-currp.y - cpp.y) / rY];\n var ad = vectorsAngle(u, v); // Δθ\n\n if (vectorsRatio(u, v) <= -1) {\n ad = Math.PI;\n }\n\n if (vectorsRatio(u, v) >= 1) {\n ad = 0;\n }\n\n return {\n currentPoint,\n rX,\n rY,\n sweepFlag,\n xAxisRotation,\n centp,\n a1,\n ad\n };\n }\n\n pathA(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n currentPoint,\n rX,\n rY,\n sweepFlag,\n xAxisRotation,\n centp,\n a1,\n ad\n } = PathElement.pathA(pathParser); // for markers\n\n var dir = 1 - sweepFlag ? 1.0 : -1.0;\n var ah = a1 + dir * (ad / 2.0);\n var halfWay = new Point(centp.x + rX * Math.cos(ah), centp.y + rY * Math.sin(ah));\n pathParser.addMarkerAngle(halfWay, ah - dir * Math.PI / 2);\n pathParser.addMarkerAngle(currentPoint, ah - dir * Math.PI);\n boundingBox.addPoint(currentPoint.x, currentPoint.y); // TODO: this is too naive, make it better\n\n if (ctx && !isNaN(a1) && !isNaN(ad)) {\n var r = rX > rY ? rX : rY;\n var sx = rX > rY ? 1 : rX / rY;\n var sy = rX > rY ? rY / rX : 1;\n ctx.translate(centp.x, centp.y);\n ctx.rotate(xAxisRotation);\n ctx.scale(sx, sy);\n ctx.arc(0, 0, r, a1, a1 + ad, Boolean(1 - sweepFlag));\n ctx.scale(1 / sx, 1 / sy);\n ctx.rotate(-xAxisRotation);\n ctx.translate(-centp.x, -centp.y);\n }\n }\n\n static pathZ(pathParser) {\n pathParser.current = pathParser.start;\n }\n\n pathZ(ctx, boundingBox) {\n PathElement.pathZ(this.pathParser);\n\n if (ctx) {\n // only close path if it is not a straight line\n if (boundingBox.x1 !== boundingBox.x2 && boundingBox.y1 !== boundingBox.y2) {\n ctx.closePath();\n }\n }\n }\n\n}\n\nclass GlyphElement extends PathElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'glyph';\n this.horizAdvX = this.getAttribute('horiz-adv-x').getNumber();\n this.unicode = this.getAttribute('unicode').getString();\n this.arabicForm = this.getAttribute('arabic-form').getString();\n }\n\n}\n\nclass TextElement extends RenderedElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, new.target === TextElement ? true : captureTextNodes);\n this.type = 'text';\n this.x = 0;\n this.y = 0;\n this.measureCache = -1;\n }\n\n setContext(ctx) {\n var fromMeasure = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n super.setContext(ctx, fromMeasure);\n var textBaseline = this.getStyle('dominant-baseline').getTextBaseline() || this.getStyle('alignment-baseline').getTextBaseline();\n\n if (textBaseline) {\n ctx.textBaseline = textBaseline;\n }\n }\n\n initializeCoordinates() {\n this.x = 0;\n this.y = 0;\n this.leafTexts = [];\n this.textChunkStart = 0;\n this.minX = Number.POSITIVE_INFINITY;\n this.maxX = Number.NEGATIVE_INFINITY;\n }\n\n getBoundingBox(ctx) {\n if (this.type !== 'text') {\n return this.getTElementBoundingBox(ctx);\n } // first, calculate child positions\n\n\n this.initializeCoordinates();\n this.adjustChildCoordinatesRecursive(ctx);\n var boundingBox = null; // then calculate bounding box\n\n this.children.forEach((_, i) => {\n var childBoundingBox = this.getChildBoundingBox(ctx, this, this, i);\n\n if (!boundingBox) {\n boundingBox = childBoundingBox;\n } else {\n boundingBox.addBoundingBox(childBoundingBox);\n }\n });\n return boundingBox;\n }\n\n getFontSize() {\n var {\n document,\n parent\n } = this;\n var inheritFontSize = Font.parse(document.ctx.font).fontSize;\n var fontSize = parent.getStyle('font-size').getNumber(inheritFontSize);\n return fontSize;\n }\n\n getTElementBoundingBox(ctx) {\n var fontSize = this.getFontSize();\n return new BoundingBox(this.x, this.y - fontSize, this.x + this.measureText(ctx), this.y);\n }\n\n getGlyph(font, text, i) {\n var char = text[i];\n var glyph = null;\n\n if (font.isArabic) {\n var len = text.length;\n var prevChar = text[i - 1];\n var nextChar = text[i + 1];\n var arabicForm = 'isolated';\n\n if ((i === 0 || prevChar === ' ') && i < len - 1 && nextChar !== ' ') {\n arabicForm = 'terminal';\n }\n\n if (i > 0 && prevChar !== ' ' && i < len - 1 && nextChar !== ' ') {\n arabicForm = 'medial';\n }\n\n if (i > 0 && prevChar !== ' ' && (i === len - 1 || nextChar === ' ')) {\n arabicForm = 'initial';\n }\n\n if (typeof font.glyphs[char] !== 'undefined') {\n // NEED TEST\n var maybeGlyph = font.glyphs[char];\n glyph = maybeGlyph instanceof GlyphElement ? maybeGlyph : maybeGlyph[arabicForm];\n }\n } else {\n glyph = font.glyphs[char];\n }\n\n if (!glyph) {\n glyph = font.missingGlyph;\n }\n\n return glyph;\n }\n\n getText() {\n return '';\n }\n\n getTextFromNode(node) {\n var textNode = node || this.node;\n var childNodes = Array.from(textNode.parentNode.childNodes);\n var index = childNodes.indexOf(textNode);\n var lastIndex = childNodes.length - 1;\n var text = compressSpaces( // textNode.value\n // || textNode.text\n textNode.textContent || '');\n\n if (index === 0) {\n text = trimLeft(text);\n }\n\n if (index === lastIndex) {\n text = trimRight(text);\n }\n\n return text;\n }\n\n renderChildren(ctx) {\n if (this.type !== 'text') {\n this.renderTElementChildren(ctx);\n return;\n } // first, calculate child positions\n\n\n this.initializeCoordinates();\n this.adjustChildCoordinatesRecursive(ctx); // then render\n\n this.children.forEach((_, i) => {\n this.renderChild(ctx, this, this, i);\n });\n var {\n mouse\n } = this.document.screen; // Do not calc bounding box if mouse is not working.\n\n if (mouse.isWorking()) {\n mouse.checkBoundingBox(this, this.getBoundingBox(ctx));\n }\n }\n\n renderTElementChildren(ctx) {\n var {\n document,\n parent\n } = this;\n var renderText = this.getText();\n var customFont = parent.getStyle('font-family').getDefinition();\n\n if (customFont) {\n var {\n unitsPerEm\n } = customFont.fontFace;\n var ctxFont = Font.parse(document.ctx.font);\n var fontSize = parent.getStyle('font-size').getNumber(ctxFont.fontSize);\n var fontStyle = parent.getStyle('font-style').getString(ctxFont.fontStyle);\n var scale = fontSize / unitsPerEm;\n var text = customFont.isRTL ? renderText.split('').reverse().join('') : renderText;\n var dx = toNumbers(parent.getAttribute('dx').getString());\n var len = text.length;\n\n for (var i = 0; i < len; i++) {\n var glyph = this.getGlyph(customFont, text, i);\n ctx.translate(this.x, this.y);\n ctx.scale(scale, -scale);\n var lw = ctx.lineWidth;\n ctx.lineWidth = ctx.lineWidth * unitsPerEm / fontSize;\n\n if (fontStyle === 'italic') {\n ctx.transform(1, 0, .4, 1, 0, 0);\n }\n\n glyph.render(ctx);\n\n if (fontStyle === 'italic') {\n ctx.transform(1, 0, -.4, 1, 0, 0);\n }\n\n ctx.lineWidth = lw;\n ctx.scale(1 / scale, -1 / scale);\n ctx.translate(-this.x, -this.y);\n this.x += fontSize * (glyph.horizAdvX || customFont.horizAdvX) / unitsPerEm;\n\n if (typeof dx[i] !== 'undefined' && !isNaN(dx[i])) {\n this.x += dx[i];\n }\n }\n\n return;\n }\n\n var {\n x,\n y\n } = this; // NEED TEST\n // if (ctx.paintOrder === 'stroke') {\n // \tif (ctx.strokeStyle) {\n // \t\tctx.strokeText(renderText, x, y);\n // \t}\n // \tif (ctx.fillStyle) {\n // \t\tctx.fillText(renderText, x, y);\n // \t}\n // } else {\n\n if (ctx.fillStyle) {\n ctx.fillText(renderText, x, y);\n }\n\n if (ctx.strokeStyle) {\n ctx.strokeText(renderText, x, y);\n } // }\n\n }\n\n applyAnchoring() {\n if (this.textChunkStart >= this.leafTexts.length) {\n return;\n } // This is basically the \"Apply anchoring\" part of https://www.w3.org/TR/SVG2/text.html#TextLayoutAlgorithm.\n // The difference is that we apply the anchoring as soon as a chunk is finished. This saves some extra looping.\n // Vertical text is not supported.\n\n\n var firstElement = this.leafTexts[this.textChunkStart];\n var textAnchor = firstElement.getStyle('text-anchor').getString('start');\n var isRTL = false; // we treat RTL like LTR\n\n var shift = 0;\n\n if (textAnchor === 'start' && !isRTL || textAnchor === 'end' && isRTL) {\n shift = firstElement.x - this.minX;\n } else if (textAnchor === 'end' && !isRTL || textAnchor === 'start' && isRTL) {\n shift = firstElement.x - this.maxX;\n } else {\n shift = firstElement.x - (this.minX + this.maxX) / 2;\n }\n\n for (var i = this.textChunkStart; i < this.leafTexts.length; i++) {\n this.leafTexts[i].x += shift;\n } // start new chunk\n\n\n this.minX = Number.POSITIVE_INFINITY;\n this.maxX = Number.NEGATIVE_INFINITY;\n this.textChunkStart = this.leafTexts.length;\n }\n\n adjustChildCoordinatesRecursive(ctx) {\n this.children.forEach((_, i) => {\n this.adjustChildCoordinatesRecursiveCore(ctx, this, this, i);\n });\n this.applyAnchoring();\n }\n\n adjustChildCoordinatesRecursiveCore(ctx, textParent, parent, i) {\n var child = parent.children[i];\n\n if (child.children.length > 0) {\n child.children.forEach((_, i) => {\n textParent.adjustChildCoordinatesRecursiveCore(ctx, textParent, child, i);\n });\n } else {\n // only leafs are relevant\n this.adjustChildCoordinates(ctx, textParent, parent, i);\n }\n }\n\n adjustChildCoordinates(ctx, textParent, parent, i) {\n var child = parent.children[i];\n\n if (typeof child.measureText !== 'function') {\n return child;\n }\n\n ctx.save();\n child.setContext(ctx, true);\n var xAttr = child.getAttribute('x');\n var yAttr = child.getAttribute('y');\n var dxAttr = child.getAttribute('dx');\n var dyAttr = child.getAttribute('dy');\n var customFont = child.getStyle('font-family').getDefinition();\n var isRTL = Boolean(customFont) && customFont.isRTL;\n\n if (i === 0) {\n // First children inherit attributes from parent(s). Positional attributes\n // are only inherited from a parent to it's first child.\n if (!xAttr.hasValue()) {\n xAttr.setValue(child.getInheritedAttribute('x'));\n }\n\n if (!yAttr.hasValue()) {\n yAttr.setValue(child.getInheritedAttribute('y'));\n }\n\n if (!dxAttr.hasValue()) {\n dxAttr.setValue(child.getInheritedAttribute('dx'));\n }\n\n if (!dyAttr.hasValue()) {\n dyAttr.setValue(child.getInheritedAttribute('dy'));\n }\n }\n\n var width = child.measureText(ctx);\n\n if (isRTL) {\n textParent.x -= width;\n }\n\n if (xAttr.hasValue()) {\n // an \"x\" attribute marks the start of a new chunk\n textParent.applyAnchoring();\n child.x = xAttr.getPixels('x');\n\n if (dxAttr.hasValue()) {\n child.x += dxAttr.getPixels('x');\n }\n } else {\n if (dxAttr.hasValue()) {\n textParent.x += dxAttr.getPixels('x');\n }\n\n child.x = textParent.x;\n }\n\n textParent.x = child.x;\n\n if (!isRTL) {\n textParent.x += width;\n }\n\n if (yAttr.hasValue()) {\n child.y = yAttr.getPixels('y');\n\n if (dyAttr.hasValue()) {\n child.y += dyAttr.getPixels('y');\n }\n } else {\n if (dyAttr.hasValue()) {\n textParent.y += dyAttr.getPixels('y');\n }\n\n child.y = textParent.y;\n }\n\n textParent.y = child.y; // update the current chunk and it's bounds\n\n textParent.leafTexts.push(child);\n textParent.minX = Math.min(textParent.minX, child.x, child.x + width);\n textParent.maxX = Math.max(textParent.maxX, child.x, child.x + width);\n child.clearContext(ctx);\n ctx.restore();\n return child;\n }\n\n getChildBoundingBox(ctx, textParent, parent, i) {\n var child = parent.children[i]; // not a text node?\n\n if (typeof child.getBoundingBox !== 'function') {\n return null;\n }\n\n var boundingBox = child.getBoundingBox(ctx);\n\n if (!boundingBox) {\n return null;\n }\n\n child.children.forEach((_, i) => {\n var childBoundingBox = textParent.getChildBoundingBox(ctx, textParent, child, i);\n boundingBox.addBoundingBox(childBoundingBox);\n });\n return boundingBox;\n }\n\n renderChild(ctx, textParent, parent, i) {\n var child = parent.children[i];\n child.render(ctx);\n child.children.forEach((_, i) => {\n textParent.renderChild(ctx, textParent, child, i);\n });\n }\n\n measureText(ctx) {\n var {\n measureCache\n } = this;\n\n if (~measureCache) {\n return measureCache;\n }\n\n var renderText = this.getText();\n var measure = this.measureTargetText(ctx, renderText);\n this.measureCache = measure;\n return measure;\n }\n\n measureTargetText(ctx, targetText) {\n if (!targetText.length) {\n return 0;\n }\n\n var {\n parent\n } = this;\n var customFont = parent.getStyle('font-family').getDefinition();\n\n if (customFont) {\n var fontSize = this.getFontSize();\n var text = customFont.isRTL ? targetText.split('').reverse().join('') : targetText;\n var dx = toNumbers(parent.getAttribute('dx').getString());\n var len = text.length;\n var _measure = 0;\n\n for (var i = 0; i < len; i++) {\n var glyph = this.getGlyph(customFont, text, i);\n _measure += (glyph.horizAdvX || customFont.horizAdvX) * fontSize / customFont.fontFace.unitsPerEm;\n\n if (typeof dx[i] !== 'undefined' && !isNaN(dx[i])) {\n _measure += dx[i];\n }\n }\n\n return _measure;\n }\n\n if (!ctx.measureText) {\n return targetText.length * 10;\n }\n\n ctx.save();\n this.setContext(ctx, true);\n var {\n width: measure\n } = ctx.measureText(targetText);\n this.clearContext(ctx);\n ctx.restore();\n return measure;\n }\n /**\r\n * Inherits positional attributes from {@link TextElement} parent(s). Attributes\r\n * are only inherited from a parent to its first child.\r\n * @param name - The attribute name.\r\n * @returns The attribute value or null.\r\n */\n\n\n getInheritedAttribute(name) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias,consistent-this\n var current = this;\n\n while (current instanceof TextElement && current.isFirstChild()) {\n var parentAttr = current.parent.getAttribute(name);\n\n if (parentAttr.hasValue(true)) {\n return parentAttr.getValue('0');\n }\n\n current = current.parent;\n }\n\n return null;\n }\n\n}\n\nclass TSpanElement extends TextElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, new.target === TSpanElement ? true : captureTextNodes);\n this.type = 'tspan'; // if this node has children, then they own the text\n\n this.text = this.children.length > 0 ? '' : this.getTextFromNode();\n }\n\n getText() {\n return this.text;\n }\n\n}\n\nclass TextNode extends TSpanElement {\n constructor() {\n super(...arguments);\n this.type = 'textNode';\n }\n\n}\n\nclass SVGElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'svg';\n this.root = false;\n }\n\n setContext(ctx) {\n var _this$node$parentNode;\n\n var {\n document\n } = this;\n var {\n screen,\n window\n } = document;\n var canvas = ctx.canvas;\n screen.setDefaults(ctx);\n\n if (canvas.style && typeof ctx.font !== 'undefined' && window && typeof window.getComputedStyle !== 'undefined') {\n ctx.font = window.getComputedStyle(canvas).getPropertyValue('font');\n var fontSizeProp = new Property(document, 'fontSize', Font.parse(ctx.font).fontSize);\n\n if (fontSizeProp.hasValue()) {\n document.rootEmSize = fontSizeProp.getPixels('y');\n document.emSize = document.rootEmSize;\n }\n } // create new view port\n\n\n if (!this.getAttribute('x').hasValue()) {\n this.getAttribute('x', true).setValue(0);\n }\n\n if (!this.getAttribute('y').hasValue()) {\n this.getAttribute('y', true).setValue(0);\n }\n\n var {\n width,\n height\n } = screen.viewPort;\n\n if (!this.getStyle('width').hasValue()) {\n this.getStyle('width', true).setValue('100%');\n }\n\n if (!this.getStyle('height').hasValue()) {\n this.getStyle('height', true).setValue('100%');\n }\n\n if (!this.getStyle('color').hasValue()) {\n this.getStyle('color', true).setValue('black');\n }\n\n var refXAttr = this.getAttribute('refX');\n var refYAttr = this.getAttribute('refY');\n var viewBoxAttr = this.getAttribute('viewBox');\n var viewBox = viewBoxAttr.hasValue() ? toNumbers(viewBoxAttr.getString()) : null;\n var clip = !this.root && this.getStyle('overflow').getValue('hidden') !== 'visible';\n var minX = 0;\n var minY = 0;\n var clipX = 0;\n var clipY = 0;\n\n if (viewBox) {\n minX = viewBox[0];\n minY = viewBox[1];\n }\n\n if (!this.root) {\n width = this.getStyle('width').getPixels('x');\n height = this.getStyle('height').getPixels('y');\n\n if (this.type === 'marker') {\n clipX = minX;\n clipY = minY;\n minX = 0;\n minY = 0;\n }\n }\n\n screen.viewPort.setCurrent(width, height); // Default value of transform-origin is center only for root SVG elements\n // https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/transform-origin\n\n if (this.node // is not temporary SVGElement\n && (!this.parent || ((_this$node$parentNode = this.node.parentNode) === null || _this$node$parentNode === void 0 ? void 0 : _this$node$parentNode.nodeName) === 'foreignObject') && this.getStyle('transform', false, true).hasValue() && !this.getStyle('transform-origin', false, true).hasValue()) {\n this.getStyle('transform-origin', true, true).setValue('50% 50%');\n }\n\n super.setContext(ctx);\n ctx.translate(this.getAttribute('x').getPixels('x'), this.getAttribute('y').getPixels('y'));\n\n if (viewBox) {\n width = viewBox[2];\n height = viewBox[3];\n }\n\n document.setViewBox({\n ctx,\n aspectRatio: this.getAttribute('preserveAspectRatio').getString(),\n width: screen.viewPort.width,\n desiredWidth: width,\n height: screen.viewPort.height,\n desiredHeight: height,\n minX,\n minY,\n refX: refXAttr.getValue(),\n refY: refYAttr.getValue(),\n clip,\n clipX,\n clipY\n });\n\n if (viewBox) {\n screen.viewPort.removeCurrent();\n screen.viewPort.setCurrent(width, height);\n }\n }\n\n clearContext(ctx) {\n super.clearContext(ctx);\n this.document.screen.viewPort.removeCurrent();\n }\n /**\r\n * Resize SVG to fit in given size.\r\n * @param width\r\n * @param height\r\n * @param preserveAspectRatio\r\n */\n\n\n resize(width) {\n var height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : width;\n var preserveAspectRatio = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var widthAttr = this.getAttribute('width', true);\n var heightAttr = this.getAttribute('height', true);\n var viewBoxAttr = this.getAttribute('viewBox');\n var styleAttr = this.getAttribute('style');\n var originWidth = widthAttr.getNumber(0);\n var originHeight = heightAttr.getNumber(0);\n\n if (preserveAspectRatio) {\n if (typeof preserveAspectRatio === 'string') {\n this.getAttribute('preserveAspectRatio', true).setValue(preserveAspectRatio);\n } else {\n var preserveAspectRatioAttr = this.getAttribute('preserveAspectRatio');\n\n if (preserveAspectRatioAttr.hasValue()) {\n preserveAspectRatioAttr.setValue(preserveAspectRatioAttr.getString().replace(/^\\s*(\\S.*\\S)\\s*$/, '$1'));\n }\n }\n }\n\n widthAttr.setValue(width);\n heightAttr.setValue(height);\n\n if (!viewBoxAttr.hasValue()) {\n viewBoxAttr.setValue(\"0 0 \".concat(originWidth || width, \" \").concat(originHeight || height));\n }\n\n if (styleAttr.hasValue()) {\n var widthStyle = this.getStyle('width');\n var heightStyle = this.getStyle('height');\n\n if (widthStyle.hasValue()) {\n widthStyle.setValue(\"\".concat(width, \"px\"));\n }\n\n if (heightStyle.hasValue()) {\n heightStyle.setValue(\"\".concat(height, \"px\"));\n }\n }\n }\n\n}\n\nclass RectElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'rect';\n }\n\n path(ctx) {\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width', false, true).getPixels('x');\n var height = this.getStyle('height', false, true).getPixels('y');\n var rxAttr = this.getAttribute('rx');\n var ryAttr = this.getAttribute('ry');\n var rx = rxAttr.getPixels('x');\n var ry = ryAttr.getPixels('y');\n\n if (rxAttr.hasValue() && !ryAttr.hasValue()) {\n ry = rx;\n }\n\n if (ryAttr.hasValue() && !rxAttr.hasValue()) {\n rx = ry;\n }\n\n rx = Math.min(rx, width / 2.0);\n ry = Math.min(ry, height / 2.0);\n\n if (ctx) {\n var KAPPA = 4 * ((Math.sqrt(2) - 1) / 3);\n ctx.beginPath(); // always start the path so we don't fill prior paths\n\n if (height > 0 && width > 0) {\n ctx.moveTo(x + rx, y);\n ctx.lineTo(x + width - rx, y);\n ctx.bezierCurveTo(x + width - rx + KAPPA * rx, y, x + width, y + ry - KAPPA * ry, x + width, y + ry);\n ctx.lineTo(x + width, y + height - ry);\n ctx.bezierCurveTo(x + width, y + height - ry + KAPPA * ry, x + width - rx + KAPPA * rx, y + height, x + width - rx, y + height);\n ctx.lineTo(x + rx, y + height);\n ctx.bezierCurveTo(x + rx - KAPPA * rx, y + height, x, y + height - ry + KAPPA * ry, x, y + height - ry);\n ctx.lineTo(x, y + ry);\n ctx.bezierCurveTo(x, y + ry - KAPPA * ry, x + rx - KAPPA * rx, y, x + rx, y);\n ctx.closePath();\n }\n }\n\n return new BoundingBox(x, y, x + width, y + height);\n }\n\n getMarkers() {\n return null;\n }\n\n}\n\nclass CircleElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'circle';\n }\n\n path(ctx) {\n var cx = this.getAttribute('cx').getPixels('x');\n var cy = this.getAttribute('cy').getPixels('y');\n var r = this.getAttribute('r').getPixels();\n\n if (ctx && r > 0) {\n ctx.beginPath();\n ctx.arc(cx, cy, r, 0, Math.PI * 2, false);\n ctx.closePath();\n }\n\n return new BoundingBox(cx - r, cy - r, cx + r, cy + r);\n }\n\n getMarkers() {\n return null;\n }\n\n}\n\nclass EllipseElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'ellipse';\n }\n\n path(ctx) {\n var KAPPA = 4 * ((Math.sqrt(2) - 1) / 3);\n var rx = this.getAttribute('rx').getPixels('x');\n var ry = this.getAttribute('ry').getPixels('y');\n var cx = this.getAttribute('cx').getPixels('x');\n var cy = this.getAttribute('cy').getPixels('y');\n\n if (ctx && rx > 0 && ry > 0) {\n ctx.beginPath();\n ctx.moveTo(cx + rx, cy);\n ctx.bezierCurveTo(cx + rx, cy + KAPPA * ry, cx + KAPPA * rx, cy + ry, cx, cy + ry);\n ctx.bezierCurveTo(cx - KAPPA * rx, cy + ry, cx - rx, cy + KAPPA * ry, cx - rx, cy);\n ctx.bezierCurveTo(cx - rx, cy - KAPPA * ry, cx - KAPPA * rx, cy - ry, cx, cy - ry);\n ctx.bezierCurveTo(cx + KAPPA * rx, cy - ry, cx + rx, cy - KAPPA * ry, cx + rx, cy);\n ctx.closePath();\n }\n\n return new BoundingBox(cx - rx, cy - ry, cx + rx, cy + ry);\n }\n\n getMarkers() {\n return null;\n }\n\n}\n\nclass LineElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'line';\n }\n\n getPoints() {\n return [new Point(this.getAttribute('x1').getPixels('x'), this.getAttribute('y1').getPixels('y')), new Point(this.getAttribute('x2').getPixels('x'), this.getAttribute('y2').getPixels('y'))];\n }\n\n path(ctx) {\n var [{\n x: x0,\n y: y0\n }, {\n x: x1,\n y: y1\n }] = this.getPoints();\n\n if (ctx) {\n ctx.beginPath();\n ctx.moveTo(x0, y0);\n ctx.lineTo(x1, y1);\n }\n\n return new BoundingBox(x0, y0, x1, y1);\n }\n\n getMarkers() {\n var [p0, p1] = this.getPoints();\n var a = p0.angleTo(p1);\n return [[p0, a], [p1, a]];\n }\n\n}\n\nclass PolylineElement extends PathElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'polyline';\n this.points = [];\n this.points = Point.parsePath(this.getAttribute('points').getString());\n }\n\n path(ctx) {\n var {\n points\n } = this;\n var [{\n x: x0,\n y: y0\n }] = points;\n var boundingBox = new BoundingBox(x0, y0);\n\n if (ctx) {\n ctx.beginPath();\n ctx.moveTo(x0, y0);\n }\n\n points.forEach(_ref => {\n var {\n x,\n y\n } = _ref;\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n });\n return boundingBox;\n }\n\n getMarkers() {\n var {\n points\n } = this;\n var lastIndex = points.length - 1;\n var markers = [];\n points.forEach((point, i) => {\n if (i === lastIndex) {\n return;\n }\n\n markers.push([point, point.angleTo(points[i + 1])]);\n });\n\n if (markers.length > 0) {\n markers.push([points[points.length - 1], markers[markers.length - 1][1]]);\n }\n\n return markers;\n }\n\n}\n\nclass PolygonElement extends PolylineElement {\n constructor() {\n super(...arguments);\n this.type = 'polygon';\n }\n\n path(ctx) {\n var boundingBox = super.path(ctx);\n var [{\n x,\n y\n }] = this.points;\n\n if (ctx) {\n ctx.lineTo(x, y);\n ctx.closePath();\n }\n\n return boundingBox;\n }\n\n}\n\nclass PatternElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'pattern';\n }\n\n createPattern(ctx, _, parentOpacityProp) {\n var width = this.getStyle('width').getPixels('x', true);\n var height = this.getStyle('height').getPixels('y', true); // render me using a temporary svg element\n\n var patternSvg = new SVGElement(this.document, null);\n patternSvg.attributes.viewBox = new Property(this.document, 'viewBox', this.getAttribute('viewBox').getValue());\n patternSvg.attributes.width = new Property(this.document, 'width', \"\".concat(width, \"px\"));\n patternSvg.attributes.height = new Property(this.document, 'height', \"\".concat(height, \"px\"));\n patternSvg.attributes.transform = new Property(this.document, 'transform', this.getAttribute('patternTransform').getValue());\n patternSvg.children = this.children;\n var patternCanvas = this.document.createCanvas(width, height);\n var patternCtx = patternCanvas.getContext('2d');\n var xAttr = this.getAttribute('x');\n var yAttr = this.getAttribute('y');\n\n if (xAttr.hasValue() && yAttr.hasValue()) {\n patternCtx.translate(xAttr.getPixels('x', true), yAttr.getPixels('y', true));\n }\n\n if (parentOpacityProp.hasValue()) {\n this.styles['fill-opacity'] = parentOpacityProp;\n } else {\n Reflect.deleteProperty(this.styles, 'fill-opacity');\n } // render 3x3 grid so when we transform there's no white space on edges\n\n\n for (var x = -1; x <= 1; x++) {\n for (var y = -1; y <= 1; y++) {\n patternCtx.save();\n patternSvg.attributes.x = new Property(this.document, 'x', x * patternCanvas.width);\n patternSvg.attributes.y = new Property(this.document, 'y', y * patternCanvas.height);\n patternSvg.render(patternCtx);\n patternCtx.restore();\n }\n }\n\n var pattern = ctx.createPattern(patternCanvas, 'repeat');\n return pattern;\n }\n\n}\n\nclass MarkerElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'marker';\n }\n\n render(ctx, point, angle) {\n if (!point) {\n return;\n }\n\n var {\n x,\n y\n } = point;\n var orient = this.getAttribute('orient').getString('auto');\n var markerUnits = this.getAttribute('markerUnits').getString('strokeWidth');\n ctx.translate(x, y);\n\n if (orient === 'auto') {\n ctx.rotate(angle);\n }\n\n if (markerUnits === 'strokeWidth') {\n ctx.scale(ctx.lineWidth, ctx.lineWidth);\n }\n\n ctx.save(); // render me using a temporary svg element\n\n var markerSvg = new SVGElement(this.document, null);\n markerSvg.type = this.type;\n markerSvg.attributes.viewBox = new Property(this.document, 'viewBox', this.getAttribute('viewBox').getValue());\n markerSvg.attributes.refX = new Property(this.document, 'refX', this.getAttribute('refX').getValue());\n markerSvg.attributes.refY = new Property(this.document, 'refY', this.getAttribute('refY').getValue());\n markerSvg.attributes.width = new Property(this.document, 'width', this.getAttribute('markerWidth').getValue());\n markerSvg.attributes.height = new Property(this.document, 'height', this.getAttribute('markerHeight').getValue());\n markerSvg.attributes.overflow = new Property(this.document, 'overflow', this.getAttribute('overflow').getValue());\n markerSvg.attributes.fill = new Property(this.document, 'fill', this.getAttribute('fill').getColor('black'));\n markerSvg.attributes.stroke = new Property(this.document, 'stroke', this.getAttribute('stroke').getValue('none'));\n markerSvg.children = this.children;\n markerSvg.render(ctx);\n ctx.restore();\n\n if (markerUnits === 'strokeWidth') {\n ctx.scale(1 / ctx.lineWidth, 1 / ctx.lineWidth);\n }\n\n if (orient === 'auto') {\n ctx.rotate(-angle);\n }\n\n ctx.translate(-x, -y);\n }\n\n}\n\nclass DefsElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'defs';\n }\n\n render() {// NOOP\n }\n\n}\n\nclass GElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'g';\n }\n\n getBoundingBox(ctx) {\n var boundingBox = new BoundingBox();\n this.children.forEach(child => {\n boundingBox.addBoundingBox(child.getBoundingBox(ctx));\n });\n return boundingBox;\n }\n\n}\n\nclass GradientElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.attributesToInherit = ['gradientUnits'];\n this.stops = [];\n var {\n stops,\n children\n } = this;\n children.forEach(child => {\n if (child.type === 'stop') {\n stops.push(child);\n }\n });\n }\n\n getGradientUnits() {\n return this.getAttribute('gradientUnits').getString('objectBoundingBox');\n }\n\n createGradient(ctx, element, parentOpacityProp) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias, consistent-this\n var stopsContainer = this;\n\n if (this.getHrefAttribute().hasValue()) {\n stopsContainer = this.getHrefAttribute().getDefinition();\n this.inheritStopContainer(stopsContainer);\n }\n\n var {\n stops\n } = stopsContainer;\n var gradient = this.getGradient(ctx, element);\n\n if (!gradient) {\n return this.addParentOpacity(parentOpacityProp, stops[stops.length - 1].color);\n }\n\n stops.forEach(stop => {\n gradient.addColorStop(stop.offset, this.addParentOpacity(parentOpacityProp, stop.color));\n });\n\n if (this.getAttribute('gradientTransform').hasValue()) {\n // render as transformed pattern on temporary canvas\n var {\n document\n } = this;\n var {\n MAX_VIRTUAL_PIXELS,\n viewPort\n } = document.screen;\n var [rootView] = viewPort.viewPorts;\n var rect = new RectElement(document, null);\n rect.attributes.x = new Property(document, 'x', -MAX_VIRTUAL_PIXELS / 3.0);\n rect.attributes.y = new Property(document, 'y', -MAX_VIRTUAL_PIXELS / 3.0);\n rect.attributes.width = new Property(document, 'width', MAX_VIRTUAL_PIXELS);\n rect.attributes.height = new Property(document, 'height', MAX_VIRTUAL_PIXELS);\n var group = new GElement(document, null);\n group.attributes.transform = new Property(document, 'transform', this.getAttribute('gradientTransform').getValue());\n group.children = [rect];\n var patternSvg = new SVGElement(document, null);\n patternSvg.attributes.x = new Property(document, 'x', 0);\n patternSvg.attributes.y = new Property(document, 'y', 0);\n patternSvg.attributes.width = new Property(document, 'width', rootView.width);\n patternSvg.attributes.height = new Property(document, 'height', rootView.height);\n patternSvg.children = [group];\n var patternCanvas = document.createCanvas(rootView.width, rootView.height);\n var patternCtx = patternCanvas.getContext('2d');\n patternCtx.fillStyle = gradient;\n patternSvg.render(patternCtx);\n return patternCtx.createPattern(patternCanvas, 'no-repeat');\n }\n\n return gradient;\n }\n\n inheritStopContainer(stopsContainer) {\n this.attributesToInherit.forEach(attributeToInherit => {\n if (!this.getAttribute(attributeToInherit).hasValue() && stopsContainer.getAttribute(attributeToInherit).hasValue()) {\n this.getAttribute(attributeToInherit, true).setValue(stopsContainer.getAttribute(attributeToInherit).getValue());\n }\n });\n }\n\n addParentOpacity(parentOpacityProp, color) {\n if (parentOpacityProp.hasValue()) {\n var colorProp = new Property(this.document, 'color', color);\n return colorProp.addOpacity(parentOpacityProp).getColor();\n }\n\n return color;\n }\n\n}\n\nclass LinearGradientElement extends GradientElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'linearGradient';\n this.attributesToInherit.push('x1', 'y1', 'x2', 'y2');\n }\n\n getGradient(ctx, element) {\n var isBoundingBoxUnits = this.getGradientUnits() === 'objectBoundingBox';\n var boundingBox = isBoundingBoxUnits ? element.getBoundingBox(ctx) : null;\n\n if (isBoundingBoxUnits && !boundingBox) {\n return null;\n }\n\n if (!this.getAttribute('x1').hasValue() && !this.getAttribute('y1').hasValue() && !this.getAttribute('x2').hasValue() && !this.getAttribute('y2').hasValue()) {\n this.getAttribute('x1', true).setValue(0);\n this.getAttribute('y1', true).setValue(0);\n this.getAttribute('x2', true).setValue(1);\n this.getAttribute('y2', true).setValue(0);\n }\n\n var x1 = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('x1').getNumber() : this.getAttribute('x1').getPixels('x');\n var y1 = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('y1').getNumber() : this.getAttribute('y1').getPixels('y');\n var x2 = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('x2').getNumber() : this.getAttribute('x2').getPixels('x');\n var y2 = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('y2').getNumber() : this.getAttribute('y2').getPixels('y');\n\n if (x1 === x2 && y1 === y2) {\n return null;\n }\n\n return ctx.createLinearGradient(x1, y1, x2, y2);\n }\n\n}\n\nclass RadialGradientElement extends GradientElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'radialGradient';\n this.attributesToInherit.push('cx', 'cy', 'r', 'fx', 'fy', 'fr');\n }\n\n getGradient(ctx, element) {\n var isBoundingBoxUnits = this.getGradientUnits() === 'objectBoundingBox';\n var boundingBox = element.getBoundingBox(ctx);\n\n if (isBoundingBoxUnits && !boundingBox) {\n return null;\n }\n\n if (!this.getAttribute('cx').hasValue()) {\n this.getAttribute('cx', true).setValue('50%');\n }\n\n if (!this.getAttribute('cy').hasValue()) {\n this.getAttribute('cy', true).setValue('50%');\n }\n\n if (!this.getAttribute('r').hasValue()) {\n this.getAttribute('r', true).setValue('50%');\n }\n\n var cx = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('cx').getNumber() : this.getAttribute('cx').getPixels('x');\n var cy = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('cy').getNumber() : this.getAttribute('cy').getPixels('y');\n var fx = cx;\n var fy = cy;\n\n if (this.getAttribute('fx').hasValue()) {\n fx = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('fx').getNumber() : this.getAttribute('fx').getPixels('x');\n }\n\n if (this.getAttribute('fy').hasValue()) {\n fy = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('fy').getNumber() : this.getAttribute('fy').getPixels('y');\n }\n\n var r = isBoundingBoxUnits ? (boundingBox.width + boundingBox.height) / 2.0 * this.getAttribute('r').getNumber() : this.getAttribute('r').getPixels();\n var fr = this.getAttribute('fr').getPixels();\n return ctx.createRadialGradient(fx, fy, fr, cx, cy, r);\n }\n\n}\n\nclass StopElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'stop';\n var offset = Math.max(0, Math.min(1, this.getAttribute('offset').getNumber()));\n var stopOpacity = this.getStyle('stop-opacity');\n var stopColor = this.getStyle('stop-color', true);\n\n if (stopColor.getString() === '') {\n stopColor.setValue('#000');\n }\n\n if (stopOpacity.hasValue()) {\n stopColor = stopColor.addOpacity(stopOpacity);\n }\n\n this.offset = offset;\n this.color = stopColor.getColor();\n }\n\n}\n\nclass AnimateElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'animate';\n this.duration = 0;\n this.initialValue = null;\n this.initialUnits = '';\n this.removed = false;\n this.frozen = false;\n document.screen.animations.push(this);\n this.begin = this.getAttribute('begin').getMilliseconds();\n this.maxDuration = this.begin + this.getAttribute('dur').getMilliseconds();\n this.from = this.getAttribute('from');\n this.to = this.getAttribute('to');\n this.values = new Property(document, 'values', null);\n var valuesAttr = this.getAttribute('values');\n\n if (valuesAttr.hasValue()) {\n this.values.setValue(valuesAttr.getString().split(';'));\n }\n }\n\n getProperty() {\n var attributeType = this.getAttribute('attributeType').getString();\n var attributeName = this.getAttribute('attributeName').getString();\n\n if (attributeType === 'CSS') {\n return this.parent.getStyle(attributeName, true);\n }\n\n return this.parent.getAttribute(attributeName, true);\n }\n\n calcValue() {\n var {\n initialUnits\n } = this;\n var {\n progress,\n from,\n to\n } = this.getProgress(); // tween value linearly\n\n var newValue = from.getNumber() + (to.getNumber() - from.getNumber()) * progress;\n\n if (initialUnits === '%') {\n newValue *= 100.0; // numValue() returns 0-1 whereas properties are 0-100\n }\n\n return \"\".concat(newValue).concat(initialUnits);\n }\n\n update(delta) {\n var {\n parent\n } = this;\n var prop = this.getProperty(); // set initial value\n\n if (!this.initialValue) {\n this.initialValue = prop.getString();\n this.initialUnits = prop.getUnits();\n } // if we're past the end time\n\n\n if (this.duration > this.maxDuration) {\n var fill = this.getAttribute('fill').getString('remove'); // loop for indefinitely repeating animations\n\n if (this.getAttribute('repeatCount').getString() === 'indefinite' || this.getAttribute('repeatDur').getString() === 'indefinite') {\n this.duration = 0;\n } else if (fill === 'freeze' && !this.frozen) {\n this.frozen = true;\n parent.animationFrozen = true;\n parent.animationFrozenValue = prop.getString();\n } else if (fill === 'remove' && !this.removed) {\n this.removed = true;\n prop.setValue(parent.animationFrozen ? parent.animationFrozenValue : this.initialValue);\n return true;\n }\n\n return false;\n }\n\n this.duration += delta; // if we're past the begin time\n\n var updated = false;\n\n if (this.begin < this.duration) {\n var newValue = this.calcValue(); // tween\n\n var typeAttr = this.getAttribute('type');\n\n if (typeAttr.hasValue()) {\n // for transform, etc.\n var type = typeAttr.getString();\n newValue = \"\".concat(type, \"(\").concat(newValue, \")\");\n }\n\n prop.setValue(newValue);\n updated = true;\n }\n\n return updated;\n }\n\n getProgress() {\n var {\n document,\n values\n } = this;\n var result = {\n progress: (this.duration - this.begin) / (this.maxDuration - this.begin)\n };\n\n if (values.hasValue()) {\n var p = result.progress * (values.getValue().length - 1);\n var lb = Math.floor(p);\n var ub = Math.ceil(p);\n result.from = new Property(document, 'from', parseFloat(values.getValue()[lb]));\n result.to = new Property(document, 'to', parseFloat(values.getValue()[ub]));\n result.progress = (p - lb) / (ub - lb);\n } else {\n result.from = this.from;\n result.to = this.to;\n }\n\n return result;\n }\n\n}\n\nclass AnimateColorElement extends AnimateElement {\n constructor() {\n super(...arguments);\n this.type = 'animateColor';\n }\n\n calcValue() {\n var {\n progress,\n from,\n to\n } = this.getProgress();\n var colorFrom = new RGBColor(from.getColor());\n var colorTo = new RGBColor(to.getColor());\n\n if (colorFrom.ok && colorTo.ok) {\n // tween color linearly\n var r = colorFrom.r + (colorTo.r - colorFrom.r) * progress;\n var g = colorFrom.g + (colorTo.g - colorFrom.g) * progress;\n var b = colorFrom.b + (colorTo.b - colorFrom.b) * progress; // ? alpha\n\n return \"rgb(\".concat(Math.floor(r), \", \").concat(Math.floor(g), \", \").concat(Math.floor(b), \")\");\n }\n\n return this.getAttribute('from').getColor();\n }\n\n}\n\nclass AnimateTransformElement extends AnimateElement {\n constructor() {\n super(...arguments);\n this.type = 'animateTransform';\n }\n\n calcValue() {\n var {\n progress,\n from,\n to\n } = this.getProgress(); // tween value linearly\n\n var transformFrom = toNumbers(from.getString());\n var transformTo = toNumbers(to.getString());\n var newValue = transformFrom.map((from, i) => {\n var to = transformTo[i];\n return from + (to - from) * progress;\n }).join(' ');\n return newValue;\n }\n\n}\n\nclass FontElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'font';\n this.glyphs = {};\n this.horizAdvX = this.getAttribute('horiz-adv-x').getNumber();\n var {\n definitions\n } = document;\n var {\n children\n } = this;\n\n for (var child of children) {\n switch (child.type) {\n case 'font-face':\n {\n this.fontFace = child;\n var fontFamilyStyle = child.getStyle('font-family');\n\n if (fontFamilyStyle.hasValue()) {\n definitions[fontFamilyStyle.getString()] = this;\n }\n\n break;\n }\n\n case 'missing-glyph':\n this.missingGlyph = child;\n break;\n\n case 'glyph':\n {\n var glyph = child;\n\n if (glyph.arabicForm) {\n this.isRTL = true;\n this.isArabic = true;\n\n if (typeof this.glyphs[glyph.unicode] === 'undefined') {\n this.glyphs[glyph.unicode] = {};\n }\n\n this.glyphs[glyph.unicode][glyph.arabicForm] = glyph;\n } else {\n this.glyphs[glyph.unicode] = glyph;\n }\n\n break;\n }\n }\n }\n }\n\n render() {// NO RENDER\n }\n\n}\n\nclass FontFaceElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'font-face';\n this.ascent = this.getAttribute('ascent').getNumber();\n this.descent = this.getAttribute('descent').getNumber();\n this.unitsPerEm = this.getAttribute('units-per-em').getNumber();\n }\n\n}\n\nclass MissingGlyphElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'missing-glyph';\n this.horizAdvX = 0;\n }\n\n}\n\nclass TRefElement extends TextElement {\n constructor() {\n super(...arguments);\n this.type = 'tref';\n }\n\n getText() {\n var element = this.getHrefAttribute().getDefinition();\n\n if (element) {\n var firstChild = element.children[0];\n\n if (firstChild) {\n return firstChild.getText();\n }\n }\n\n return '';\n }\n\n}\n\nclass AElement extends TextElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'a';\n var {\n childNodes\n } = node;\n var firstChild = childNodes[0];\n var hasText = childNodes.length > 0 && Array.from(childNodes).every(node => node.nodeType === 3);\n this.hasText = hasText;\n this.text = hasText ? this.getTextFromNode(firstChild) : '';\n }\n\n getText() {\n return this.text;\n }\n\n renderChildren(ctx) {\n if (this.hasText) {\n // render as text element\n super.renderChildren(ctx);\n var {\n document,\n x,\n y\n } = this;\n var {\n mouse\n } = document.screen;\n var fontSize = new Property(document, 'fontSize', Font.parse(document.ctx.font).fontSize); // Do not calc bounding box if mouse is not working.\n\n if (mouse.isWorking()) {\n mouse.checkBoundingBox(this, new BoundingBox(x, y - fontSize.getPixels('y'), x + this.measureText(ctx), y));\n }\n } else if (this.children.length > 0) {\n // render as temporary group\n var g = new GElement(this.document, null);\n g.children = this.children;\n g.parent = this;\n g.render(ctx);\n }\n }\n\n onClick() {\n var {\n window\n } = this.document;\n\n if (window) {\n window.open(this.getHrefAttribute().getString());\n }\n }\n\n onMouseMove() {\n var ctx = this.document.ctx;\n ctx.canvas.style.cursor = 'pointer';\n }\n\n}\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nclass TextPathElement extends TextElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'textPath';\n this.textWidth = 0;\n this.textHeight = 0;\n this.pathLength = -1;\n this.glyphInfo = null;\n this.letterSpacingCache = [];\n this.measuresCache = new Map([['', 0]]);\n var pathElement = this.getHrefAttribute().getDefinition();\n this.text = this.getTextFromNode();\n this.dataArray = this.parsePathData(pathElement);\n }\n\n getText() {\n return this.text;\n }\n\n path(ctx) {\n var {\n dataArray\n } = this;\n\n if (ctx) {\n ctx.beginPath();\n }\n\n dataArray.forEach(_ref => {\n var {\n type,\n points\n } = _ref;\n\n switch (type) {\n case PathParser.LINE_TO:\n if (ctx) {\n ctx.lineTo(points[0], points[1]);\n }\n\n break;\n\n case PathParser.MOVE_TO:\n if (ctx) {\n ctx.moveTo(points[0], points[1]);\n }\n\n break;\n\n case PathParser.CURVE_TO:\n if (ctx) {\n ctx.bezierCurveTo(points[0], points[1], points[2], points[3], points[4], points[5]);\n }\n\n break;\n\n case PathParser.QUAD_TO:\n if (ctx) {\n ctx.quadraticCurveTo(points[0], points[1], points[2], points[3]);\n }\n\n break;\n\n case PathParser.ARC:\n {\n var [cx, cy, rx, ry, theta, dTheta, psi, fs] = points;\n var r = rx > ry ? rx : ry;\n var scaleX = rx > ry ? 1 : rx / ry;\n var scaleY = rx > ry ? ry / rx : 1;\n\n if (ctx) {\n ctx.translate(cx, cy);\n ctx.rotate(psi);\n ctx.scale(scaleX, scaleY);\n ctx.arc(0, 0, r, theta, theta + dTheta, Boolean(1 - fs));\n ctx.scale(1 / scaleX, 1 / scaleY);\n ctx.rotate(-psi);\n ctx.translate(-cx, -cy);\n }\n\n break;\n }\n\n case PathParser.CLOSE_PATH:\n if (ctx) {\n ctx.closePath();\n }\n\n break;\n }\n });\n }\n\n renderChildren(ctx) {\n this.setTextData(ctx);\n ctx.save();\n var textDecoration = this.parent.getStyle('text-decoration').getString();\n var fontSize = this.getFontSize();\n var {\n glyphInfo\n } = this;\n var fill = ctx.fillStyle;\n\n if (textDecoration === 'underline') {\n ctx.beginPath();\n }\n\n glyphInfo.forEach((glyph, i) => {\n var {\n p0,\n p1,\n rotation,\n text: partialText\n } = glyph;\n ctx.save();\n ctx.translate(p0.x, p0.y);\n ctx.rotate(rotation);\n\n if (ctx.fillStyle) {\n ctx.fillText(partialText, 0, 0);\n }\n\n if (ctx.strokeStyle) {\n ctx.strokeText(partialText, 0, 0);\n }\n\n ctx.restore();\n\n if (textDecoration === 'underline') {\n if (i === 0) {\n ctx.moveTo(p0.x, p0.y + fontSize / 8);\n }\n\n ctx.lineTo(p1.x, p1.y + fontSize / 5);\n } // // To assist with debugging visually, uncomment following\n //\n // ctx.beginPath();\n // if (i % 2)\n // \tctx.strokeStyle = 'red';\n // else\n // \tctx.strokeStyle = 'green';\n // ctx.moveTo(p0.x, p0.y);\n // ctx.lineTo(p1.x, p1.y);\n // ctx.stroke();\n // ctx.closePath();\n\n });\n\n if (textDecoration === 'underline') {\n ctx.lineWidth = fontSize / 20;\n ctx.strokeStyle = fill;\n ctx.stroke();\n ctx.closePath();\n }\n\n ctx.restore();\n }\n\n getLetterSpacingAt() {\n var idx = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n return this.letterSpacingCache[idx] || 0;\n }\n\n findSegmentToFitChar(ctx, anchor, textFullWidth, fullPathWidth, spacesNumber, inputOffset, dy, c, charI) {\n var offset = inputOffset;\n var glyphWidth = this.measureText(ctx, c);\n\n if (c === ' ' && anchor === 'justify' && textFullWidth < fullPathWidth) {\n glyphWidth += (fullPathWidth - textFullWidth) / spacesNumber;\n }\n\n if (charI > -1) {\n offset += this.getLetterSpacingAt(charI);\n }\n\n var splineStep = this.textHeight / 20;\n var p0 = this.getEquidistantPointOnPath(offset, splineStep, 0);\n var p1 = this.getEquidistantPointOnPath(offset + glyphWidth, splineStep, 0);\n var segment = {\n p0,\n p1\n };\n var rotation = p0 && p1 ? Math.atan2(p1.y - p0.y, p1.x - p0.x) : 0;\n\n if (dy) {\n var dyX = Math.cos(Math.PI / 2 + rotation) * dy;\n var dyY = Math.cos(-rotation) * dy;\n segment.p0 = _objectSpread$2(_objectSpread$2({}, p0), {}, {\n x: p0.x + dyX,\n y: p0.y + dyY\n });\n segment.p1 = _objectSpread$2(_objectSpread$2({}, p1), {}, {\n x: p1.x + dyX,\n y: p1.y + dyY\n });\n }\n\n offset += glyphWidth;\n return {\n offset,\n segment,\n rotation\n };\n }\n\n measureText(ctx, text) {\n var {\n measuresCache\n } = this;\n var targetText = text || this.getText();\n\n if (measuresCache.has(targetText)) {\n return measuresCache.get(targetText);\n }\n\n var measure = this.measureTargetText(ctx, targetText);\n measuresCache.set(targetText, measure);\n return measure;\n } // This method supposes what all custom fonts already loaded.\n // If some font will be loaded after this method call, will not be rendered correctly.\n // You need to call this method manually to update glyphs cache.\n\n\n setTextData(ctx) {\n if (this.glyphInfo) {\n return;\n }\n\n var renderText = this.getText();\n var chars = renderText.split('');\n var spacesNumber = renderText.split(' ').length - 1;\n var dx = this.parent.getAttribute('dx').split().map(_ => _.getPixels('x'));\n var dy = this.parent.getAttribute('dy').getPixels('y');\n var anchor = this.parent.getStyle('text-anchor').getString('start');\n var thisSpacing = this.getStyle('letter-spacing');\n var parentSpacing = this.parent.getStyle('letter-spacing');\n var letterSpacing = 0;\n\n if (!thisSpacing.hasValue() || thisSpacing.getValue() === 'inherit') {\n letterSpacing = parentSpacing.getPixels();\n } else if (thisSpacing.hasValue()) {\n if (thisSpacing.getValue() !== 'initial' && thisSpacing.getValue() !== 'unset') {\n letterSpacing = thisSpacing.getPixels();\n }\n } // fill letter-spacing cache\n\n\n var letterSpacingCache = [];\n var textLen = renderText.length;\n this.letterSpacingCache = letterSpacingCache;\n\n for (var i = 0; i < textLen; i++) {\n letterSpacingCache.push(typeof dx[i] !== 'undefined' ? dx[i] : letterSpacing);\n }\n\n var dxSum = letterSpacingCache.reduce((acc, cur, i) => i === 0 ? 0 : acc + cur || 0, 0);\n var textWidth = this.measureText(ctx);\n var textFullWidth = Math.max(textWidth + dxSum, 0);\n this.textWidth = textWidth;\n this.textHeight = this.getFontSize();\n this.glyphInfo = [];\n var fullPathWidth = this.getPathLength();\n var startOffset = this.getStyle('startOffset').getNumber(0) * fullPathWidth;\n var offset = 0;\n\n if (anchor === 'middle' || anchor === 'center') {\n offset = -textFullWidth / 2;\n }\n\n if (anchor === 'end' || anchor === 'right') {\n offset = -textFullWidth;\n }\n\n offset += startOffset;\n chars.forEach((char, i) => {\n // Find such segment what distance between p0 and p1 is approx. width of glyph\n var {\n offset: nextOffset,\n segment,\n rotation\n } = this.findSegmentToFitChar(ctx, anchor, textFullWidth, fullPathWidth, spacesNumber, offset, dy, char, i);\n offset = nextOffset;\n\n if (!segment.p0 || !segment.p1) {\n return;\n } // const width = this.getLineLength(\n // \tsegment.p0.x,\n // \tsegment.p0.y,\n // \tsegment.p1.x,\n // \tsegment.p1.y\n // );\n // Note: Since glyphs are rendered one at a time, any kerning pair data built into the font will not be used.\n // Can foresee having a rough pair table built in that the developer can override as needed.\n // Or use \"dx\" attribute of the node as a naive replacement\n // const kern = 0;\n // placeholder for future implementation\n // const midpoint = this.getPointOnLine(\n // \tkern + width / 2.0,\n // \tsegment.p0.x, segment.p0.y, segment.p1.x, segment.p1.y\n // );\n\n\n this.glyphInfo.push({\n // transposeX: midpoint.x,\n // transposeY: midpoint.y,\n text: chars[i],\n p0: segment.p0,\n p1: segment.p1,\n rotation\n });\n });\n }\n\n parsePathData(path) {\n this.pathLength = -1; // reset path length\n\n if (!path) {\n return [];\n }\n\n var pathCommands = [];\n var {\n pathParser\n } = path;\n pathParser.reset(); // convert l, H, h, V, and v to L\n\n while (!pathParser.isEnd()) {\n var {\n current\n } = pathParser;\n var startX = current ? current.x : 0;\n var startY = current ? current.y : 0;\n var command = pathParser.next();\n var nextCommandType = command.type;\n var points = [];\n\n switch (command.type) {\n case PathParser.MOVE_TO:\n this.pathM(pathParser, points);\n break;\n\n case PathParser.LINE_TO:\n nextCommandType = this.pathL(pathParser, points);\n break;\n\n case PathParser.HORIZ_LINE_TO:\n nextCommandType = this.pathH(pathParser, points);\n break;\n\n case PathParser.VERT_LINE_TO:\n nextCommandType = this.pathV(pathParser, points);\n break;\n\n case PathParser.CURVE_TO:\n this.pathC(pathParser, points);\n break;\n\n case PathParser.SMOOTH_CURVE_TO:\n nextCommandType = this.pathS(pathParser, points);\n break;\n\n case PathParser.QUAD_TO:\n this.pathQ(pathParser, points);\n break;\n\n case PathParser.SMOOTH_QUAD_TO:\n nextCommandType = this.pathT(pathParser, points);\n break;\n\n case PathParser.ARC:\n points = this.pathA(pathParser);\n break;\n\n case PathParser.CLOSE_PATH:\n PathElement.pathZ(pathParser);\n break;\n }\n\n if (command.type !== PathParser.CLOSE_PATH) {\n pathCommands.push({\n type: nextCommandType,\n points,\n start: {\n x: startX,\n y: startY\n },\n pathLength: this.calcLength(startX, startY, nextCommandType, points)\n });\n } else {\n pathCommands.push({\n type: PathParser.CLOSE_PATH,\n points: [],\n pathLength: 0\n });\n }\n }\n\n return pathCommands;\n }\n\n pathM(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathM(pathParser).point;\n points.push(x, y);\n }\n\n pathL(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathL(pathParser).point;\n points.push(x, y);\n return PathParser.LINE_TO;\n }\n\n pathH(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathH(pathParser).point;\n points.push(x, y);\n return PathParser.LINE_TO;\n }\n\n pathV(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathV(pathParser).point;\n points.push(x, y);\n return PathParser.LINE_TO;\n }\n\n pathC(pathParser, points) {\n var {\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathC(pathParser);\n points.push(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n\n pathS(pathParser, points) {\n var {\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathS(pathParser);\n points.push(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n return PathParser.CURVE_TO;\n }\n\n pathQ(pathParser, points) {\n var {\n controlPoint,\n currentPoint\n } = PathElement.pathQ(pathParser);\n points.push(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n\n pathT(pathParser, points) {\n var {\n controlPoint,\n currentPoint\n } = PathElement.pathT(pathParser);\n points.push(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n return PathParser.QUAD_TO;\n }\n\n pathA(pathParser) {\n var {\n rX,\n rY,\n sweepFlag,\n xAxisRotation,\n centp,\n a1,\n ad\n } = PathElement.pathA(pathParser);\n\n if (sweepFlag === 0 && ad > 0) {\n ad -= 2 * Math.PI;\n }\n\n if (sweepFlag === 1 && ad < 0) {\n ad += 2 * Math.PI;\n }\n\n return [centp.x, centp.y, rX, rY, a1, ad, xAxisRotation, sweepFlag];\n }\n\n calcLength(x, y, commandType, points) {\n var len = 0;\n var p1 = null;\n var p2 = null;\n var t = 0;\n\n switch (commandType) {\n case PathParser.LINE_TO:\n return this.getLineLength(x, y, points[0], points[1]);\n\n case PathParser.CURVE_TO:\n // Approximates by breaking curve into 100 line segments\n len = 0.0;\n p1 = this.getPointOnCubicBezier(0, x, y, points[0], points[1], points[2], points[3], points[4], points[5]);\n\n for (t = 0.01; t <= 1; t += 0.01) {\n p2 = this.getPointOnCubicBezier(t, x, y, points[0], points[1], points[2], points[3], points[4], points[5]);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n\n return len;\n\n case PathParser.QUAD_TO:\n // Approximates by breaking curve into 100 line segments\n len = 0.0;\n p1 = this.getPointOnQuadraticBezier(0, x, y, points[0], points[1], points[2], points[3]);\n\n for (t = 0.01; t <= 1; t += 0.01) {\n p2 = this.getPointOnQuadraticBezier(t, x, y, points[0], points[1], points[2], points[3]);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n\n return len;\n\n case PathParser.ARC:\n {\n // Approximates by breaking curve into line segments\n len = 0.0;\n var start = points[4]; // 4 = theta\n\n var dTheta = points[5]; // 5 = dTheta\n\n var end = points[4] + dTheta;\n var inc = Math.PI / 180.0; // 1 degree resolution\n\n if (Math.abs(start - end) < inc) {\n inc = Math.abs(start - end);\n } // Note: for purpose of calculating arc length, not going to worry about rotating X-axis by angle psi\n\n\n p1 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], start, 0);\n\n if (dTheta < 0) {\n // clockwise\n for (t = start - inc; t > end; t -= inc) {\n p2 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], t, 0);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n } else {\n // counter-clockwise\n for (t = start + inc; t < end; t += inc) {\n p2 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], t, 0);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n }\n\n p2 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], end, 0);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n return len;\n }\n }\n\n return 0;\n }\n\n getPointOnLine(dist, p1x, p1y, p2x, p2y) {\n var fromX = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : p1x;\n var fromY = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : p1y;\n var m = (p2y - p1y) / (p2x - p1x + PSEUDO_ZERO);\n var run = Math.sqrt(dist * dist / (1 + m * m));\n\n if (p2x < p1x) {\n run *= -1;\n }\n\n var rise = m * run;\n var pt = null;\n\n if (p2x === p1x) {\n // vertical line\n pt = {\n x: fromX,\n y: fromY + rise\n };\n } else if ((fromY - p1y) / (fromX - p1x + PSEUDO_ZERO) === m) {\n pt = {\n x: fromX + run,\n y: fromY + rise\n };\n } else {\n var ix = 0;\n var iy = 0;\n var len = this.getLineLength(p1x, p1y, p2x, p2y);\n\n if (len < PSEUDO_ZERO) {\n return null;\n }\n\n var u = (fromX - p1x) * (p2x - p1x) + (fromY - p1y) * (p2y - p1y);\n u /= len * len;\n ix = p1x + u * (p2x - p1x);\n iy = p1y + u * (p2y - p1y);\n var pRise = this.getLineLength(fromX, fromY, ix, iy);\n var pRun = Math.sqrt(dist * dist - pRise * pRise);\n run = Math.sqrt(pRun * pRun / (1 + m * m));\n\n if (p2x < p1x) {\n run *= -1;\n }\n\n rise = m * run;\n pt = {\n x: ix + run,\n y: iy + rise\n };\n }\n\n return pt;\n }\n\n getPointOnPath(distance) {\n var fullLen = this.getPathLength();\n var cumulativePathLength = 0;\n var p = null;\n\n if (distance < -0.00005 || distance - 0.00005 > fullLen) {\n return null;\n }\n\n var {\n dataArray\n } = this;\n\n for (var command of dataArray) {\n if (command && (command.pathLength < 0.00005 || cumulativePathLength + command.pathLength + 0.00005 < distance)) {\n cumulativePathLength += command.pathLength;\n continue;\n }\n\n var delta = distance - cumulativePathLength;\n var currentT = 0;\n\n switch (command.type) {\n case PathParser.LINE_TO:\n p = this.getPointOnLine(delta, command.start.x, command.start.y, command.points[0], command.points[1], command.start.x, command.start.y);\n break;\n\n case PathParser.ARC:\n {\n var start = command.points[4]; // 4 = theta\n\n var dTheta = command.points[5]; // 5 = dTheta\n\n var end = command.points[4] + dTheta;\n currentT = start + delta / command.pathLength * dTheta;\n\n if (dTheta < 0 && currentT < end || dTheta >= 0 && currentT > end) {\n break;\n }\n\n p = this.getPointOnEllipticalArc(command.points[0], command.points[1], command.points[2], command.points[3], currentT, command.points[6]);\n break;\n }\n\n case PathParser.CURVE_TO:\n currentT = delta / command.pathLength;\n\n if (currentT > 1) {\n currentT = 1;\n }\n\n p = this.getPointOnCubicBezier(currentT, command.start.x, command.start.y, command.points[0], command.points[1], command.points[2], command.points[3], command.points[4], command.points[5]);\n break;\n\n case PathParser.QUAD_TO:\n currentT = delta / command.pathLength;\n\n if (currentT > 1) {\n currentT = 1;\n }\n\n p = this.getPointOnQuadraticBezier(currentT, command.start.x, command.start.y, command.points[0], command.points[1], command.points[2], command.points[3]);\n break;\n }\n\n if (p) {\n return p;\n }\n\n break;\n }\n\n return null;\n }\n\n getLineLength(x1, y1, x2, y2) {\n return Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));\n }\n\n getPathLength() {\n if (this.pathLength === -1) {\n this.pathLength = this.dataArray.reduce((length, command) => command.pathLength > 0 ? length + command.pathLength : length, 0);\n }\n\n return this.pathLength;\n }\n\n getPointOnCubicBezier(pct, p1x, p1y, p2x, p2y, p3x, p3y, p4x, p4y) {\n var x = p4x * CB1(pct) + p3x * CB2(pct) + p2x * CB3(pct) + p1x * CB4(pct);\n var y = p4y * CB1(pct) + p3y * CB2(pct) + p2y * CB3(pct) + p1y * CB4(pct);\n return {\n x,\n y\n };\n }\n\n getPointOnQuadraticBezier(pct, p1x, p1y, p2x, p2y, p3x, p3y) {\n var x = p3x * QB1(pct) + p2x * QB2(pct) + p1x * QB3(pct);\n var y = p3y * QB1(pct) + p2y * QB2(pct) + p1y * QB3(pct);\n return {\n x,\n y\n };\n }\n\n getPointOnEllipticalArc(cx, cy, rx, ry, theta, psi) {\n var cosPsi = Math.cos(psi);\n var sinPsi = Math.sin(psi);\n var pt = {\n x: rx * Math.cos(theta),\n y: ry * Math.sin(theta)\n };\n return {\n x: cx + (pt.x * cosPsi - pt.y * sinPsi),\n y: cy + (pt.x * sinPsi + pt.y * cosPsi)\n };\n } // TODO need some optimisations. possibly build cache only for curved segments?\n\n\n buildEquidistantCache(inputStep, inputPrecision) {\n var fullLen = this.getPathLength();\n var precision = inputPrecision || 0.25; // accuracy vs performance\n\n var step = inputStep || fullLen / 100;\n\n if (!this.equidistantCache || this.equidistantCache.step !== step || this.equidistantCache.precision !== precision) {\n // Prepare cache\n this.equidistantCache = {\n step,\n precision,\n points: []\n }; // Calculate points\n\n var s = 0;\n\n for (var l = 0; l <= fullLen; l += precision) {\n var p0 = this.getPointOnPath(l);\n var p1 = this.getPointOnPath(l + precision);\n\n if (!p0 || !p1) {\n continue;\n }\n\n s += this.getLineLength(p0.x, p0.y, p1.x, p1.y);\n\n if (s >= step) {\n this.equidistantCache.points.push({\n x: p0.x,\n y: p0.y,\n distance: l\n });\n s -= step;\n }\n }\n }\n }\n\n getEquidistantPointOnPath(targetDistance, step, precision) {\n this.buildEquidistantCache(step, precision);\n\n if (targetDistance < 0 || targetDistance - this.getPathLength() > 0.00005) {\n return null;\n }\n\n var idx = Math.round(targetDistance / this.getPathLength() * (this.equidistantCache.points.length - 1));\n return this.equidistantCache.points[idx] || null;\n }\n\n}\n\nvar dataUriRegex = /^\\s*data:(([^/,;]+\\/[^/,;]+)(?:;([^,;=]+=[^,;=]+))?)?(?:;(base64))?,(.*)$/i;\nclass ImageElement extends RenderedElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'image';\n this.loaded = false;\n var href = this.getHrefAttribute().getString();\n\n if (!href) {\n return;\n }\n\n var isSvg = href.endsWith('.svg') || /^\\s*data:image\\/svg\\+xml/i.test(href);\n document.images.push(this);\n\n if (!isSvg) {\n void this.loadImage(href);\n } else {\n void this.loadSvg(href);\n }\n\n this.isSvg = isSvg;\n }\n\n loadImage(href) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n try {\n var image = yield _this.document.createImage(href);\n _this.image = image;\n } catch (err) {\n console.error(\"Error while loading image \\\"\".concat(href, \"\\\":\"), err);\n }\n\n _this.loaded = true;\n })();\n }\n\n loadSvg(href) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var match = dataUriRegex.exec(href);\n\n if (match) {\n var data = match[5];\n\n if (match[4] === 'base64') {\n _this2.image = atob(data);\n } else {\n _this2.image = decodeURIComponent(data);\n }\n } else {\n try {\n var response = yield _this2.document.fetch(href);\n var svg = yield response.text();\n _this2.image = svg;\n } catch (err) {\n console.error(\"Error while loading image \\\"\".concat(href, \"\\\":\"), err);\n }\n }\n\n _this2.loaded = true;\n })();\n }\n\n renderChildren(ctx) {\n var {\n document,\n image,\n loaded\n } = this;\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width').getPixels('x');\n var height = this.getStyle('height').getPixels('y');\n\n if (!loaded || !image || !width || !height) {\n return;\n }\n\n ctx.save();\n ctx.translate(x, y);\n\n if (this.isSvg) {\n var subDocument = document.canvg.forkString(ctx, this.image, {\n ignoreMouse: true,\n ignoreAnimation: true,\n ignoreDimensions: true,\n ignoreClear: true,\n offsetX: 0,\n offsetY: 0,\n scaleWidth: width,\n scaleHeight: height\n });\n subDocument.document.documentElement.parent = this;\n void subDocument.render();\n } else {\n var _image = this.image;\n document.setViewBox({\n ctx,\n aspectRatio: this.getAttribute('preserveAspectRatio').getString(),\n width,\n desiredWidth: _image.width,\n height,\n desiredHeight: _image.height\n });\n\n if (this.loaded) {\n if (typeof _image.complete === 'undefined' || _image.complete) {\n ctx.drawImage(_image, 0, 0);\n }\n }\n }\n\n ctx.restore();\n }\n\n getBoundingBox() {\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width').getPixels('x');\n var height = this.getStyle('height').getPixels('y');\n return new BoundingBox(x, y, x + width, y + height);\n }\n\n}\n\nclass SymbolElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'symbol';\n }\n\n render(_) {// NO RENDER\n }\n\n}\n\nclass SVGFontLoader {\n constructor(document) {\n this.document = document;\n this.loaded = false;\n document.fonts.push(this);\n }\n\n load(fontFamily, url) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n try {\n var {\n document\n } = _this;\n var svgDocument = yield document.canvg.parser.load(url);\n var fonts = svgDocument.getElementsByTagName('font');\n Array.from(fonts).forEach(fontNode => {\n var font = document.createElement(fontNode);\n document.definitions[fontFamily] = font;\n });\n } catch (err) {\n console.error(\"Error while loading font \\\"\".concat(url, \"\\\":\"), err);\n }\n\n _this.loaded = true;\n })();\n }\n\n}\n\nclass StyleElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'style';\n var css = compressSpaces(Array.from(node.childNodes) // NEED TEST\n .map(_ => _.textContent).join('').replace(/(\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*+\\/)|(^[\\s]*\\/\\/.*)/gm, '') // remove comments\n .replace(/@import.*;/g, '') // remove imports\n );\n var cssDefs = css.split('}');\n cssDefs.forEach(_ => {\n var def = _.trim();\n\n if (!def) {\n return;\n }\n\n var cssParts = def.split('{');\n var cssClasses = cssParts[0].split(',');\n var cssProps = cssParts[1].split(';');\n cssClasses.forEach(_ => {\n var cssClass = _.trim();\n\n if (!cssClass) {\n return;\n }\n\n var props = document.styles[cssClass] || {};\n cssProps.forEach(cssProp => {\n var prop = cssProp.indexOf(':');\n var name = cssProp.substr(0, prop).trim();\n var value = cssProp.substr(prop + 1, cssProp.length - prop).trim();\n\n if (name && value) {\n props[name] = new Property(document, name, value);\n }\n });\n document.styles[cssClass] = props;\n document.stylesSpecificity[cssClass] = getSelectorSpecificity(cssClass);\n\n if (cssClass === '@font-face') {\n // && !nodeEnv\n var fontFamily = props['font-family'].getString().replace(/\"|'/g, '');\n var srcs = props.src.getString().split(',');\n srcs.forEach(src => {\n if (src.indexOf('format(\"svg\")') > 0) {\n var url = parseExternalUrl(src);\n\n if (url) {\n void new SVGFontLoader(document).load(fontFamily, url);\n }\n }\n });\n }\n });\n });\n }\n\n}\nStyleElement.parseExternalUrl = parseExternalUrl;\n\nclass UseElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'use';\n }\n\n setContext(ctx) {\n super.setContext(ctx);\n var xAttr = this.getAttribute('x');\n var yAttr = this.getAttribute('y');\n\n if (xAttr.hasValue()) {\n ctx.translate(xAttr.getPixels('x'), 0);\n }\n\n if (yAttr.hasValue()) {\n ctx.translate(0, yAttr.getPixels('y'));\n }\n }\n\n path(ctx) {\n var {\n element\n } = this;\n\n if (element) {\n element.path(ctx);\n }\n }\n\n renderChildren(ctx) {\n var {\n document,\n element\n } = this;\n\n if (element) {\n var tempSvg = element;\n\n if (element.type === 'symbol') {\n // render me using a temporary svg element in symbol cases (http://www.w3.org/TR/SVG/struct.html#UseElement)\n tempSvg = new SVGElement(document, null);\n tempSvg.attributes.viewBox = new Property(document, 'viewBox', element.getAttribute('viewBox').getString());\n tempSvg.attributes.preserveAspectRatio = new Property(document, 'preserveAspectRatio', element.getAttribute('preserveAspectRatio').getString());\n tempSvg.attributes.overflow = new Property(document, 'overflow', element.getAttribute('overflow').getString());\n tempSvg.children = element.children; // element is still the parent of the children\n\n element.styles.opacity = new Property(document, 'opacity', this.calculateOpacity());\n }\n\n if (tempSvg.type === 'svg') {\n var widthStyle = this.getStyle('width', false, true);\n var heightStyle = this.getStyle('height', false, true); // if symbol or svg, inherit width/height from me\n\n if (widthStyle.hasValue()) {\n tempSvg.attributes.width = new Property(document, 'width', widthStyle.getString());\n }\n\n if (heightStyle.hasValue()) {\n tempSvg.attributes.height = new Property(document, 'height', heightStyle.getString());\n }\n }\n\n var oldParent = tempSvg.parent;\n tempSvg.parent = this;\n tempSvg.render(ctx);\n tempSvg.parent = oldParent;\n }\n }\n\n getBoundingBox(ctx) {\n var {\n element\n } = this;\n\n if (element) {\n return element.getBoundingBox(ctx);\n }\n\n return null;\n }\n\n elementTransform() {\n var {\n document,\n element\n } = this;\n return Transform.fromElement(document, element);\n }\n\n get element() {\n if (!this.cachedElement) {\n this.cachedElement = this.getHrefAttribute().getDefinition();\n }\n\n return this.cachedElement;\n }\n\n}\n\nfunction imGet(img, x, y, width, _height, rgba) {\n return img[y * width * 4 + x * 4 + rgba];\n}\n\nfunction imSet(img, x, y, width, _height, rgba, val) {\n img[y * width * 4 + x * 4 + rgba] = val;\n}\n\nfunction m(matrix, i, v) {\n var mi = matrix[i];\n return mi * v;\n}\n\nfunction c(a, m1, m2, m3) {\n return m1 + Math.cos(a) * m2 + Math.sin(a) * m3;\n}\n\nclass FeColorMatrixElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'feColorMatrix';\n var matrix = toNumbers(this.getAttribute('values').getString());\n\n switch (this.getAttribute('type').getString('matrix')) {\n // http://www.w3.org/TR/SVG/filters.html#feColorMatrixElement\n case 'saturate':\n {\n var s = matrix[0];\n /* eslint-disable array-element-newline */\n\n matrix = [0.213 + 0.787 * s, 0.715 - 0.715 * s, 0.072 - 0.072 * s, 0, 0, 0.213 - 0.213 * s, 0.715 + 0.285 * s, 0.072 - 0.072 * s, 0, 0, 0.213 - 0.213 * s, 0.715 - 0.715 * s, 0.072 + 0.928 * s, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1];\n /* eslint-enable array-element-newline */\n\n break;\n }\n\n case 'hueRotate':\n {\n var a = matrix[0] * Math.PI / 180.0;\n /* eslint-disable array-element-newline */\n\n matrix = [c(a, 0.213, 0.787, -0.213), c(a, 0.715, -0.715, -0.715), c(a, 0.072, -0.072, 0.928), 0, 0, c(a, 0.213, -0.213, 0.143), c(a, 0.715, 0.285, 0.140), c(a, 0.072, -0.072, -0.283), 0, 0, c(a, 0.213, -0.213, -0.787), c(a, 0.715, -0.715, 0.715), c(a, 0.072, 0.928, 0.072), 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1];\n /* eslint-enable array-element-newline */\n\n break;\n }\n\n case 'luminanceToAlpha':\n /* eslint-disable array-element-newline */\n matrix = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.2125, 0.7154, 0.0721, 0, 0, 0, 0, 0, 0, 1];\n /* eslint-enable array-element-newline */\n\n break;\n }\n\n this.matrix = matrix;\n this.includeOpacity = this.getAttribute('includeOpacity').hasValue();\n }\n\n apply(ctx, _x, _y, width, height) {\n // assuming x==0 && y==0 for now\n var {\n includeOpacity,\n matrix\n } = this;\n var srcData = ctx.getImageData(0, 0, width, height);\n\n for (var y = 0; y < height; y++) {\n for (var x = 0; x < width; x++) {\n var r = imGet(srcData.data, x, y, width, height, 0);\n var g = imGet(srcData.data, x, y, width, height, 1);\n var b = imGet(srcData.data, x, y, width, height, 2);\n var a = imGet(srcData.data, x, y, width, height, 3);\n var nr = m(matrix, 0, r) + m(matrix, 1, g) + m(matrix, 2, b) + m(matrix, 3, a) + m(matrix, 4, 1);\n var ng = m(matrix, 5, r) + m(matrix, 6, g) + m(matrix, 7, b) + m(matrix, 8, a) + m(matrix, 9, 1);\n var nb = m(matrix, 10, r) + m(matrix, 11, g) + m(matrix, 12, b) + m(matrix, 13, a) + m(matrix, 14, 1);\n var na = m(matrix, 15, r) + m(matrix, 16, g) + m(matrix, 17, b) + m(matrix, 18, a) + m(matrix, 19, 1);\n\n if (includeOpacity) {\n nr = 0;\n ng = 0;\n nb = 0;\n na *= a / 255;\n }\n\n imSet(srcData.data, x, y, width, height, 0, nr);\n imSet(srcData.data, x, y, width, height, 1, ng);\n imSet(srcData.data, x, y, width, height, 2, nb);\n imSet(srcData.data, x, y, width, height, 3, na);\n }\n }\n\n ctx.clearRect(0, 0, width, height);\n ctx.putImageData(srcData, 0, 0);\n }\n\n}\n\nclass MaskElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'mask';\n }\n\n apply(ctx, element) {\n var {\n document\n } = this; // render as temp svg\n\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width').getPixels('x');\n var height = this.getStyle('height').getPixels('y');\n\n if (!width && !height) {\n var boundingBox = new BoundingBox();\n this.children.forEach(child => {\n boundingBox.addBoundingBox(child.getBoundingBox(ctx));\n });\n x = Math.floor(boundingBox.x1);\n y = Math.floor(boundingBox.y1);\n width = Math.floor(boundingBox.width);\n height = Math.floor(boundingBox.height);\n }\n\n var ignoredStyles = this.removeStyles(element, MaskElement.ignoreStyles);\n var maskCanvas = document.createCanvas(x + width, y + height);\n var maskCtx = maskCanvas.getContext('2d');\n document.screen.setDefaults(maskCtx);\n this.renderChildren(maskCtx); // convert mask to alpha with a fake node\n // TODO: refactor out apply from feColorMatrix\n\n new FeColorMatrixElement(document, {\n nodeType: 1,\n childNodes: [],\n attributes: [{\n nodeName: 'type',\n value: 'luminanceToAlpha'\n }, {\n nodeName: 'includeOpacity',\n value: 'true'\n }]\n }).apply(maskCtx, 0, 0, x + width, y + height);\n var tmpCanvas = document.createCanvas(x + width, y + height);\n var tmpCtx = tmpCanvas.getContext('2d');\n document.screen.setDefaults(tmpCtx);\n element.render(tmpCtx);\n tmpCtx.globalCompositeOperation = 'destination-in';\n tmpCtx.fillStyle = maskCtx.createPattern(maskCanvas, 'no-repeat');\n tmpCtx.fillRect(0, 0, x + width, y + height);\n ctx.fillStyle = tmpCtx.createPattern(tmpCanvas, 'no-repeat');\n ctx.fillRect(0, 0, x + width, y + height); // reassign mask\n\n this.restoreStyles(element, ignoredStyles);\n }\n\n render(_) {// NO RENDER\n }\n\n}\nMaskElement.ignoreStyles = ['mask', 'transform', 'clip-path'];\n\nvar noop = () => {// NOOP\n};\n\nclass ClipPathElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'clipPath';\n }\n\n apply(ctx) {\n var {\n document\n } = this;\n var contextProto = Reflect.getPrototypeOf(ctx);\n var {\n beginPath,\n closePath\n } = ctx;\n\n if (contextProto) {\n contextProto.beginPath = noop;\n contextProto.closePath = noop;\n }\n\n Reflect.apply(beginPath, ctx, []);\n this.children.forEach(child => {\n if (typeof child.path === 'undefined') {\n return;\n }\n\n var transform = typeof child.elementTransform !== 'undefined' ? child.elementTransform() : null; // handle \n\n if (!transform) {\n transform = Transform.fromElement(document, child);\n }\n\n if (transform) {\n transform.apply(ctx);\n }\n\n child.path(ctx);\n\n if (contextProto) {\n contextProto.closePath = closePath;\n }\n\n if (transform) {\n transform.unapply(ctx);\n }\n });\n Reflect.apply(closePath, ctx, []);\n ctx.clip();\n\n if (contextProto) {\n contextProto.beginPath = beginPath;\n contextProto.closePath = closePath;\n }\n }\n\n render(_) {// NO RENDER\n }\n\n}\n\nclass FilterElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'filter';\n }\n\n apply(ctx, element) {\n // render as temp svg\n var {\n document,\n children\n } = this;\n var boundingBox = element.getBoundingBox(ctx);\n\n if (!boundingBox) {\n return;\n }\n\n var px = 0;\n var py = 0;\n children.forEach(child => {\n var efd = child.extraFilterDistance || 0;\n px = Math.max(px, efd);\n py = Math.max(py, efd);\n });\n var width = Math.floor(boundingBox.width);\n var height = Math.floor(boundingBox.height);\n var tmpCanvasWidth = width + 2 * px;\n var tmpCanvasHeight = height + 2 * py;\n\n if (tmpCanvasWidth < 1 || tmpCanvasHeight < 1) {\n return;\n }\n\n var x = Math.floor(boundingBox.x);\n var y = Math.floor(boundingBox.y);\n var ignoredStyles = this.removeStyles(element, FilterElement.ignoreStyles);\n var tmpCanvas = document.createCanvas(tmpCanvasWidth, tmpCanvasHeight);\n var tmpCtx = tmpCanvas.getContext('2d');\n document.screen.setDefaults(tmpCtx);\n tmpCtx.translate(-x + px, -y + py);\n element.render(tmpCtx); // apply filters\n\n children.forEach(child => {\n if (typeof child.apply === 'function') {\n child.apply(tmpCtx, 0, 0, tmpCanvasWidth, tmpCanvasHeight);\n }\n }); // render on me\n\n ctx.drawImage(tmpCanvas, 0, 0, tmpCanvasWidth, tmpCanvasHeight, x - px, y - py, tmpCanvasWidth, tmpCanvasHeight);\n this.restoreStyles(element, ignoredStyles);\n }\n\n render(_) {// NO RENDER\n }\n\n}\nFilterElement.ignoreStyles = ['filter', 'transform', 'clip-path'];\n\nclass FeDropShadowElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'feDropShadow';\n this.addStylesFromStyleDefinition();\n }\n\n apply(_, _x, _y, _width, _height) {// TODO: implement\n }\n\n}\n\nclass FeMorphologyElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'feMorphology';\n }\n\n apply(_, _x, _y, _width, _height) {// TODO: implement\n }\n\n}\n\nclass FeCompositeElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'feComposite';\n }\n\n apply(_, _x, _y, _width, _height) {// TODO: implement\n }\n\n}\n\nclass FeGaussianBlurElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'feGaussianBlur';\n this.blurRadius = Math.floor(this.getAttribute('stdDeviation').getNumber());\n this.extraFilterDistance = this.blurRadius;\n }\n\n apply(ctx, x, y, width, height) {\n var {\n document,\n blurRadius\n } = this;\n var body = document.window ? document.window.document.body : null;\n var canvas = ctx.canvas; // StackBlur requires canvas be on document\n\n canvas.id = document.getUniqueId();\n\n if (body) {\n canvas.style.display = 'none';\n body.appendChild(canvas);\n }\n\n canvasRGBA(canvas, x, y, width, height, blurRadius);\n\n if (body) {\n body.removeChild(canvas);\n }\n }\n\n}\n\nclass TitleElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'title';\n }\n\n}\n\nclass DescElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'desc';\n }\n\n}\n\nvar elements = {\n 'svg': SVGElement,\n 'rect': RectElement,\n 'circle': CircleElement,\n 'ellipse': EllipseElement,\n 'line': LineElement,\n 'polyline': PolylineElement,\n 'polygon': PolygonElement,\n 'path': PathElement,\n 'pattern': PatternElement,\n 'marker': MarkerElement,\n 'defs': DefsElement,\n 'linearGradient': LinearGradientElement,\n 'radialGradient': RadialGradientElement,\n 'stop': StopElement,\n 'animate': AnimateElement,\n 'animateColor': AnimateColorElement,\n 'animateTransform': AnimateTransformElement,\n 'font': FontElement,\n 'font-face': FontFaceElement,\n 'missing-glyph': MissingGlyphElement,\n 'glyph': GlyphElement,\n 'text': TextElement,\n 'tspan': TSpanElement,\n 'tref': TRefElement,\n 'a': AElement,\n 'textPath': TextPathElement,\n 'image': ImageElement,\n 'g': GElement,\n 'symbol': SymbolElement,\n 'style': StyleElement,\n 'use': UseElement,\n 'mask': MaskElement,\n 'clipPath': ClipPathElement,\n 'filter': FilterElement,\n 'feDropShadow': FeDropShadowElement,\n 'feMorphology': FeMorphologyElement,\n 'feComposite': FeCompositeElement,\n 'feColorMatrix': FeColorMatrixElement,\n 'feGaussianBlur': FeGaussianBlurElement,\n 'title': TitleElement,\n 'desc': DescElement\n};\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction createCanvas(width, height) {\n var canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n return canvas;\n}\n\nfunction createImage(_x) {\n return _createImage.apply(this, arguments);\n}\n\nfunction _createImage() {\n _createImage = _asyncToGenerator(function* (src) {\n var anonymousCrossOrigin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var image = document.createElement('img');\n\n if (anonymousCrossOrigin) {\n image.crossOrigin = 'Anonymous';\n }\n\n return new Promise((resolve, reject) => {\n image.onload = () => {\n resolve(image);\n };\n\n image.onerror = (_event, _source, _lineno, _colno, error) => {\n reject(error);\n };\n\n image.src = src;\n });\n });\n return _createImage.apply(this, arguments);\n}\n\nclass Document {\n constructor(canvg) {\n var {\n rootEmSize = 12,\n emSize = 12,\n createCanvas = Document.createCanvas,\n createImage = Document.createImage,\n anonymousCrossOrigin\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.canvg = canvg;\n this.definitions = {};\n this.styles = {};\n this.stylesSpecificity = {};\n this.images = [];\n this.fonts = [];\n this.emSizeStack = [];\n this.uniqueId = 0;\n this.screen = canvg.screen;\n this.rootEmSize = rootEmSize;\n this.emSize = emSize;\n this.createCanvas = createCanvas;\n this.createImage = this.bindCreateImage(createImage, anonymousCrossOrigin);\n this.screen.wait(this.isImagesLoaded.bind(this));\n this.screen.wait(this.isFontsLoaded.bind(this));\n }\n\n bindCreateImage(createImage, anonymousCrossOrigin) {\n if (typeof anonymousCrossOrigin === 'boolean') {\n return (source, forceAnonymousCrossOrigin) => createImage(source, typeof forceAnonymousCrossOrigin === 'boolean' ? forceAnonymousCrossOrigin : anonymousCrossOrigin);\n }\n\n return createImage;\n }\n\n get window() {\n return this.screen.window;\n }\n\n get fetch() {\n return this.screen.fetch;\n }\n\n get ctx() {\n return this.screen.ctx;\n }\n\n get emSize() {\n var {\n emSizeStack\n } = this;\n return emSizeStack[emSizeStack.length - 1];\n }\n\n set emSize(value) {\n var {\n emSizeStack\n } = this;\n emSizeStack.push(value);\n }\n\n popEmSize() {\n var {\n emSizeStack\n } = this;\n emSizeStack.pop();\n }\n\n getUniqueId() {\n return \"canvg\".concat(++this.uniqueId);\n }\n\n isImagesLoaded() {\n return this.images.every(_ => _.loaded);\n }\n\n isFontsLoaded() {\n return this.fonts.every(_ => _.loaded);\n }\n\n createDocumentElement(document) {\n var documentElement = this.createElement(document.documentElement);\n documentElement.root = true;\n documentElement.addStylesFromStyleDefinition();\n this.documentElement = documentElement;\n return documentElement;\n }\n\n createElement(node) {\n var elementType = node.nodeName.replace(/^[^:]+:/, '');\n var ElementType = Document.elementTypes[elementType];\n\n if (typeof ElementType !== 'undefined') {\n return new ElementType(this, node);\n }\n\n return new UnknownElement(this, node);\n }\n\n createTextNode(node) {\n return new TextNode(this, node);\n }\n\n setViewBox(config) {\n this.screen.setViewBox(_objectSpread$1({\n document: this\n }, config));\n }\n\n}\nDocument.createCanvas = createCanvas;\nDocument.createImage = createImage;\nDocument.elementTypes = elements;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n/**\r\n * SVG renderer on canvas.\r\n */\n\nclass Canvg {\n /**\r\n * Main constructor.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG Document.\r\n * @param options - Rendering options.\r\n */\n constructor(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.parser = new Parser(options);\n this.screen = new Screen(ctx, options);\n this.options = options;\n var document = new Document(this, options);\n var documentElement = document.createDocumentElement(svg);\n this.document = document;\n this.documentElement = documentElement;\n }\n /**\r\n * Create Canvg instance from SVG source string or URL.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string or URL.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n static from(ctx, svg) {\n var _arguments = arguments;\n return _asyncToGenerator(function* () {\n var options = _arguments.length > 2 && _arguments[2] !== undefined ? _arguments[2] : {};\n var parser = new Parser(options);\n var svgDocument = yield parser.parse(svg);\n return new Canvg(ctx, svgDocument, options);\n })();\n }\n /**\r\n * Create Canvg instance from SVG source string.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n static fromString(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var parser = new Parser(options);\n var svgDocument = parser.parseFromString(svg);\n return new Canvg(ctx, svgDocument, options);\n }\n /**\r\n * Create new Canvg instance with inherited options.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string or URL.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n fork(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return Canvg.from(ctx, svg, _objectSpread(_objectSpread({}, this.options), options));\n }\n /**\r\n * Create new Canvg instance with inherited options.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n forkString(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return Canvg.fromString(ctx, svg, _objectSpread(_objectSpread({}, this.options), options));\n }\n /**\r\n * Document is ready promise.\r\n * @returns Ready promise.\r\n */\n\n\n ready() {\n return this.screen.ready();\n }\n /**\r\n * Document is ready value.\r\n * @returns Is ready or not.\r\n */\n\n\n isReady() {\n return this.screen.isReady();\n }\n /**\r\n * Render only first frame, ignoring animations and mouse.\r\n * @param options - Rendering options.\r\n */\n\n\n render() {\n var _arguments2 = arguments,\n _this = this;\n\n return _asyncToGenerator(function* () {\n var options = _arguments2.length > 0 && _arguments2[0] !== undefined ? _arguments2[0] : {};\n\n _this.start(_objectSpread({\n enableRedraw: true,\n ignoreAnimation: true,\n ignoreMouse: true\n }, options));\n\n yield _this.ready();\n\n _this.stop();\n })();\n }\n /**\r\n * Start rendering.\r\n * @param options - Render options.\r\n */\n\n\n start() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var {\n documentElement,\n screen,\n options: baseOptions\n } = this;\n screen.start(documentElement, _objectSpread(_objectSpread({\n enableRedraw: true\n }, baseOptions), options));\n }\n /**\r\n * Stop rendering.\r\n */\n\n\n stop() {\n this.screen.stop();\n }\n /**\r\n * Resize SVG to fit in given size.\r\n * @param width\r\n * @param height\r\n * @param preserveAspectRatio\r\n */\n\n\n resize(width) {\n var height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : width;\n var preserveAspectRatio = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n this.documentElement.resize(width, height, preserveAspectRatio);\n }\n\n}\n\nexport { AElement, AnimateColorElement, AnimateElement, AnimateTransformElement, BoundingBox, CB1, CB2, CB3, CB4, Canvg, CircleElement, ClipPathElement, DefsElement, DescElement, Document, Element, EllipseElement, FeColorMatrixElement, FeCompositeElement, FeDropShadowElement, FeGaussianBlurElement, FeMorphologyElement, FilterElement, Font, FontElement, FontFaceElement, GElement, GlyphElement, GradientElement, ImageElement, LineElement, LinearGradientElement, MarkerElement, MaskElement, Matrix, MissingGlyphElement, Mouse, PSEUDO_ZERO, Parser, PathElement, PathParser, PatternElement, Point, PolygonElement, PolylineElement, Property, QB1, QB2, QB3, RadialGradientElement, RectElement, RenderedElement, Rotate, SVGElement, SVGFontLoader, Scale, Screen, Skew, SkewX, SkewY, StopElement, StyleElement, SymbolElement, TRefElement, TSpanElement, TextElement, TextPathElement, TitleElement, Transform, Translate, UnknownElement, UseElement, ViewPort, compressSpaces, Canvg as default, getSelectorSpecificity, normalizeAttributeName, normalizeColor, parseExternalUrl, index as presets, toNumbers, trimLeft, trimRight, vectorMagnitude, vectorsAngle, vectorsRatio };\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZXMuanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsifQ==\n"],"names":["getNanoSeconds","hrtime","loadTime","moduleLoadTime","nodeLoadTime","upTime","performance","now","module","exports","process","hr","uptime","Date","getTime","call","this","root","window","g","vendors","suffix","raf","caf","i","length","last","id","queue","frameDuration","callback","_now","next","Math","max","setTimeout","cp","slice","cancelled","e","round","push","handle","fn","cancel","apply","arguments","polyfill","object","requestAnimationFrame","cancelAnimationFrame","color_string","ok","alpha","charAt","substr","replace","toLowerCase","simple_colors","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","feldspar","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgrey","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslateblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","violetred","wheat","white","whitesmoke","yellow","yellowgreen","color_defs","re","example","bits","parseInt","parseFloat","processor","exec","channels","r","b","isNaN","toRGB","toRGBA","toHex","toString","getHelpXML","examples","Array","j","sc","xml","document","createElement","setAttribute","list_item","list_color","RGBColor","example_div","style","cssText","appendChild","createTextNode","list_item_value","isCallable","tryToString","$TypeError","TypeError","argument","isConstructor","isPossiblePrototype","$String","String","wellKnownSymbol","create","defineProperty","UNSCOPABLES","ArrayPrototype","prototype","undefined","configurable","value","key","S","index","unicode","isPrototypeOf","it","Prototype","isObject","toIndexedObject","toAbsoluteIndex","lengthOfArrayLike","createMethod","IS_INCLUDES","$this","el","fromIndex","O","includes","indexOf","fails","METHOD_NAME","method","aCallable","toObject","IndexedObject","REDUCE_EMPTY","IS_RIGHT","that","callbackfn","argumentsLength","memo","self","left","right","uncurryThis","ITERATOR","SAFE_CLOSING","called","iteratorWithReturn","done","from","error","SKIP_CLOSING","ITERATION_SUPPORT","stringSlice","TO_STRING_TAG_SUPPORT","classofRaw","TO_STRING_TAG","$Object","Object","CORRECT_ARGUMENTS","tag","result","tryGet","callee","hasOwn","ownKeys","getOwnPropertyDescriptorModule","definePropertyModule","target","source","exceptions","keys","f","getOwnPropertyDescriptor","MATCH","regexp","error1","error2","F","constructor","getPrototypeOf","DESCRIPTORS","createPropertyDescriptor","bitmap","enumerable","writable","makeBuiltIn","name","descriptor","get","getter","set","setter","defineGlobalProperty","options","simple","global","unsafe","nonConfigurable","nonWritable","globalThis","EXISTS","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","classList","documentCreateElement","DOMTokenListPrototype","userAgent","test","Pebble","ENVIRONMENT","navigator","match","version","Deno","versions","v8","split","classof","userAgentStartsWith","string","Bun","createNonEnumerableProperty","defineBuiltIn","copyConstructorProperties","isForced","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","forced","sham","regexpExec","SPECIES","RegExpPrototype","RegExp","KEY","FORCED","SHAM","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","flags","nativeRegExpMethod","methods","nativeMethod","str","arg2","forceStringMethod","$exec","NATIVE_BIND","FunctionPrototype","Function","Reflect","bind","hasOwnProperty","getDescriptor","PROPER","CONFIGURABLE","uncurryThisWithBind","namespace","getMethod","isNullOrUndefined","Iterators","anObject","getIteratorMethod","usingIterator","iteratorMethod","V","P","func","floor","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","matched","position","captures","namedCaptures","replacement","tailPos","m","symbols","ch","capture","n","check","a","console","getBuiltIn","propertyIsEnumerable","store","functionToString","inspectSource","has","NATIVE_WEAK_MAP","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","WeakMap","state","metadata","facade","STATE","enforce","getterFor","TYPE","type","isArray","documentAll","all","noop","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","feature","detection","data","normalize","POLYFILL","NATIVE","isRegExp","USE_SYMBOL_AS_UID","$Symbol","isArrayIteratorMethod","getIterator","iteratorClose","Result","stopped","ResultPrototype","iterable","unboundFunction","iterator","iterFn","step","AS_ENTRIES","IS_RECORD","IS_ITERATOR","INTERRUPTED","stop","condition","callFn","kind","innerResult","innerError","IteratorPrototype","setToStringTag","returnThis","IteratorConstructor","NAME","ENUMERABLE_NEXT","$","IS_PURE","FunctionName","createIteratorConstructor","setPrototypeOf","IteratorsCore","PROPER_FUNCTION_NAME","CONFIGURABLE_FUNCTION_NAME","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","ENTRIES","Iterable","DEFAULT","IS_SET","CurrentIteratorPrototype","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","values","proto","PrototypeOfArrayIteratorPrototype","arrayIterator","toLength","obj","InternalStateModule","enforceInternalState","getInternalState","join","CONFIGURABLE_LENGTH","TEMPLATE","arity","ceil","trunc","x","notify","toggle","node","promise","then","safeGetBuiltIn","macrotask","Queue","IS_IOS","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","IS_NODE","MutationObserver","WebKitMutationObserver","Promise","microtask","flush","parent","domain","exit","head","enter","resolve","nextTick","observe","characterData","add","PromiseCapability","C","reject","$$resolve","$$reject","activeXDocument","definePropertiesModule","enumBugKeys","html","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","JS","display","src","contentWindow","open","Properties","V8_PROTOTYPE_DEFINE_BUG","objectKeys","defineProperties","props","IE8_DOM_DEFINE","toPropertyKey","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","Attributes","current","propertyIsEnumerableModule","internalObjectKeys","concat","getOwnPropertyNames","getOwnPropertySymbols","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","names","$propertyIsEnumerable","NASHORN_BUG","uncurryThisAccessor","requireObjectCoercible","aPossiblePrototype","CORRECT_SETTER","__proto__","input","pref","val","valueOf","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","NativePromiseConstructor","V8_VERSION","NativePromisePrototype","SUBCLASSING","NATIVE_PROMISE_REJECTION_EVENT","PromiseRejectionEvent","FORCED_PROMISE_CONSTRUCTOR","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","CONSTRUCTOR","REJECTION_EVENT","newPromiseCapability","promiseCapability","checkCorrectnessOfIteration","tail","item","entry","R","re1","re2","regexpFlags","stickyHelpers","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeReplace","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","lastIndex","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","reCopy","group","raw","groups","sticky","charsAdded","strCopy","multiline","hasIndices","ignoreCase","dotAll","unicodeSets","regExpFlags","$RegExp","MISSED_STICKY","defineBuiltInAccessor","CONSTRUCTOR_NAME","Constructor","TAG","uid","SHARED","mode","copyright","license","aConstructor","defaultConstructor","toIntegerOrInfinity","charCodeAt","CONVERT_TO_STRING","pos","first","second","size","codeAt","whitespaces","ltrim","rtrim","start","end","trim","symbol","Symbol","$location","defer","channel","port","arraySlice","validateArgumentsLength","setImmediate","clear","clearImmediate","Dispatch","MessageChannel","counter","ONREADYSTATECHANGE","location","run","runner","eventListener","event","globalPostMessageDefer","postMessage","protocol","host","handler","args","port2","port1","onmessage","addEventListener","importScripts","removeChild","min","integer","number","len","isSymbol","ordinaryToPrimitive","TO_PRIMITIVE","exoticToPrim","toPrimitive","postfix","random","NATIVE_SYMBOL","passed","required","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","$indexOf","arrayMethodIsStrict","nativeIndexOf","NEGATIVE_ZERO","searchElement","addToUnscopables","defineIterator","createIterResultObject","ARRAY_ITERATOR","setInternalState","iterated","Arguments","$reduce","CHROME_VERSION","reduce","nativeReverse","reverse","newPromiseCapabilityModule","perform","iterate","capability","$promiseResolve","remaining","alreadyCalled","real","onRejected","Internal","OwnPromiseCapability","nativeThen","setSpecies","anInstance","speciesConstructor","task","hostReportErrors","PromiseConstructorDetection","PROMISE","NATIVE_PROMISE_SUBCLASSING","getInternalPromiseState","PromiseConstructor","PromisePrototype","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","UNHANDLED_REJECTION","isThenable","callReaction","reaction","exited","fail","rejection","onHandleUnhandled","isReject","notified","reactions","onUnhandled","reason","initEvent","isUnhandled","emit","unwrap","internalReject","internalResolve","wrapper","executor","onFulfilled","PromiseWrapper","wrap","race","capabilityReject","promiseResolve","PromiseConstructorWrapper","CHECK_WRAPPER","$toString","getRegExpFlags","TO_STRING","nativeToString","NOT_GENERIC","INCORRECT_NAME","notARegExp","correctIsRegExpLogic","CORRECT_IS_REGEXP_LOGIC","endsWith","searchString","endPosition","search","stringIndexOf","fixRegExpWellKnownSymbolLogic","advanceStringIndex","regExpExec","nativeMatch","maybeCallNative","matcher","rx","res","fullUnicode","A","matchStr","getSubstitution","REPLACE","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","_","UNSAFE_SUBSTITUTE","searchValue","replaceValue","replacer","functionalReplace","results","accumulatedResult","nextSourcePosition","replacerArgs","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","BUGGY","SPLIT","nativeSplit","internalSplit","separator","limit","splitter","unicodeMatching","lim","p","q","z","startsWith","$trim","forcedStringTrimMethod","DOMIterables","ArrayIteratorMethods","ArrayValues","handlePrototype","CollectionPrototype","COLLECTION_NAME","asyncGeneratorStep","t","o","c","u","_asyncToGenerator","_next","_throw","Number","_defineProperty","cos","sin","Error","PI","lArcFlag","sweepFlag","rX","rY","s","y","abs","h","xRot","pow","sqrt","l","T","v","cX","cY","phi1","atan2","phi2","relative","x1","y1","x2","y2","NaN","SMOOTH_CURVE_TO","CURVE_TO","SMOOTH_QUAD_TO","QUAD_TO","MOVE_TO","CLOSE_PATH","HORIZ_LINE_TO","LINE_TO","VERT_LINE_TO","N","d","E","M","I","L","ROUND","TO_ABS","TO_REL","NORMALIZE_HVZ","ARC","NORMALIZE_ST","QT_TO_C","INFO","SANITIZE","LINE_COMMANDS","MATRIX","ROTATE","TRANSLATE","SCALE","SKEW_X","atan","SKEW_Y","X_AXIS_SYMMETRY","Y_AXIS_SYMMETRY","A_TO_C","H","ANNOTATE_ARCS","CLONE","CALCULATE_BOUNDS","maxX","minX","maxY","minY","DRAWING_COMMANDS","w","map","U","transform","toAbs","toRel","normalizeHVZ","normalizeST","qtToC","aToC","sanitize","translate","scale","rotate","matrix","skewX","skewY","xSymmetry","ySymmetry","annotateArcs","curNumber","curCommandType","curCommandRelative","canParseCommandOrComma","curNumberHasExp","curNumberHasExpDigits","curNumberHasDecimal","curArgs","finish","parse","SyntaxError","commands","encode","getBounds","_typeof","mulTable","shgTable","getImageDataFromCanvas","canvas","topX","topY","width","height","getElementById","context","getContext","getImageData","processCanvasRGBA","radius","imageData","stackEnd","pixels","div","widthMinus1","heightMinus1","radiusPlus1","sumFactor","stackStart","BlurStack","stack","stackIn","stackOut","yw","yi","mulSum","shgSum","pr","pg","pb","pa","_i","rInSum","gInSum","bInSum","aInSum","rOutSum","gOutSum","bOutSum","aOutSum","rSum","gSum","bSum","aSum","_i2","rbs","paInitial","_a2","_p","_stackOut","_r","_g","_b","_a","_x","_pr","_pg","_pb","_pa","_rOutSum","_gOutSum","_bOutSum","_aOutSum","_rSum","_gSum","_bSum","_aSum","_i3","yp","_gInSum","_bInSum","_aInSum","_rInSum","_i4","_rbs","_y","_p2","processImageDataRGBA","putImageData","instance","_classCallCheck","freeze","offscreen","DOMParser","DOMParserFallback","preset","ignoreAnimation","ignoreMouse","createCanvas","OffscreenCanvas","createImage","url","response","fetch","blob","createImageBitmap","deleteProperty","_ref","loadImage","compressSpaces","trimLeft","trimRight","toNumbers","allUppercase","normalizeAttributeName","parseExternalUrl","urlMatch","normalizeColor","color","rgbParts","num","isFloat","attributeRegex","idRegex","classRegex","pseudoElementRegex","pseudoClassWithBracketsRegex","pseudoClassRegex","elementRegex","findSelectorMatch","selector","regex","matches","getSelectorSpecificity","specificity","currentSelector","delta","PSEUDO_ZERO","vectorMagnitude","vectorsRatio","vectorsAngle","acos","CB1","CB2","CB3","CB4","QB1","QB2","QB3","Property","isNormalizedColor","empty","getString","hasValue","zeroIsValue","isString","isUrlDefinition","isPixels","asString","setValue","getValue","def","getNumber","getColor","getDpi","getRem","rootEmSize","getEm","emSize","getUnits","getPixels","axisOrIsFontSize","processPercent","axis","isFontSize","viewPort","screen","computeSize","getMilliseconds","getRadians","getDefinition","definitions","getFillStyleDefinition","element","opacity","createGradient","ctx","createPattern","getHrefAttribute","patternTransform","getAttribute","getTextBaseline","textBaselineMapping","addOpacity","commas","ViewPort","viewPorts","setCurrent","removeCurrent","pop","getCurrent","Point","point","defaultValue","parseScale","parsePath","path","points","pathPoints","angleTo","applyTransform","xp","Mouse","working","events","eventElements","onClick","onMouseMove","isWorking","onclick","onmousemove","hasEvents","runEvents","cursor","forEach","checkPath","_ref2","isPointInPath","checkBoundingBox","boundingBox","_ref3","isPointInBox","mapXY","offsetLeft","offsetTop","offsetParent","scrollX","scrollY","clientX","clientY","eventTarget","defaultWindow","defaultFetch$1","Screen","FRAMERATE","MAX_VIRTUAL_PIXELS","CLIENT_WIDTH","CLIENT_HEIGHT","mouse","animations","waits","isReadyLock","isFirstRender","intervalId","wait","checker","ready","readyPromise","isReady","every","resolveReady","setDefaults","strokeStyle","lineCap","lineJoin","miterLimit","setViewBox","aspectRatio","desiredWidth","desiredHeight","refX","refY","clip","clipX","clipY","cleanAspectRatio","aspectRatioAlign","aspectRatioMeetOrSlice","align","meetOrSlice","scaleX","scaleY","scaleMin","scaleMax","finalDesiredWidth","finalDesiredHeight","refXProp","refYProp","hasRefs","scaledClipX","scaledClipY","beginPath","moveTo","lineTo","closePath","isMeetMinY","isSliceMaxY","isMeetMinX","isSliceMaxX","enableRedraw","ignoreDimensions","ignoreClear","forceRedraw","scaleWidth","scaleHeight","offsetX","offsetY","render","tick","shouldUpdate","animation","update","widthStyle","getStyle","heightStyle","cWidth","clientWidth","cHeight","clientHeight","viewBox","xRatio","yRatio","_widthStyle","_heightStyle","transformStyle","clearRect","defaultFetch","DefaultDOMParser","Parser","resource","_this","parseFromString","load","parser","checkDocument","err","parserError","getElementsByTagName","textContent","_this2","text","Translate","unapply","applyToPoint","Rotate","transformOrigin","angle","originX","originY","cx","cy","numbers","tx","ty","rad","Scale","scaleSize","Matrix","det","Skew","skew","super","SkewX","SkewY","Transform","transforms","parseTransforms","parseTransform","TransformType","transformTypes","fromElement","transformOriginXProperty","transformOriginYProperty","Element","captureTextNodes","attributes","styles","stylesSpecificity","animationFrozen","animationFrozenValue","children","nodeType","attribute","nodeName","addStylesFromStyleDefinition","childNodes","childNode","addChild","textNode","getText","createIfNotExists","attr","_attr","skipAncestors","parentStyle","_style","save","mask","applyEffects","filter","setContext","renderChildren","clearContext","restore","clipPathStyleProp","child","ignoreChildTypes","matchesSelector","_node$getAttribute","styleClasses","some","styleClass","existingSpecificity","removeStyles","ignoreStyles","toRestore","styleProp","restoreStyles","isFirstChild","_this$parent","UnknownElement","wrapFontFamily","fontFamily","trimmed","prepareFontStyle","fontStyle","targetFontStyle","prepareFontWeight","fontWeight","targetFontWeight","Font","fontVariant","fontSize","inherit","inheritFont","parts","part","variants","weights","BoundingBox","addPoint","addX","addY","addBoundingBox","sumCubic","p0","p1","p2","p3","bezierCurveAdd","forX","b2ac","t1","t2","addBezierCurve","p0x","p0y","p1x","p1y","p2x","p2y","p3x","p3y","addQuadraticCurve","cp1x","cp1y","cp2x","cp2y","PathParser","control","command","previousCommand","angles","reset","isEnd","getPoint","xProp","yProp","makeAbsolute","getAsControlPoint","getAsCurrentPoint","getReflectedControlPoint","ox","oy","addMarker","priorTo","addMarkerAngle","getMarkerPoints","getMarkerAngles","RenderedElement","modifiedEmSizeStack","calculateOpacity","opacityStyle","fromMeasure","fillStyleProp","fillOpacityStyleProp","strokeStyleProp","strokeOpacityProp","fillStyle","_fillStyle","_fillStyle2","_strokeStyle","_strokeStyle2","strokeWidthStyleProp","newLineWidth","lineWidth","strokeLinecapStyleProp","strokeLinejoinStyleProp","strokeMiterlimitProp","strokeDasharrayStyleProp","strokeDashoffsetProp","gaps","setLineDash","webkitLineDash","mozDash","offset","lineDashOffset","webkitLineDashOffset","mozDashOffset","font","fontStyleProp","fontStyleStyleProp","fontVariantStyleProp","fontWeightStyleProp","fontSizeStyleProp","fontFamilyStyleProp","globalAlpha","popEmSize","PathElement","pathParser","pathM","pathL","pathH","pathV","pathC","pathS","pathQ","pathT","pathA","pathZ","getBoundingBox","getMarkers","markers","fillRuleStyleProp","fill","setTransform","stroke","markersLastIndex","markerStartStyleProp","markerMidStyleProp","markerEndStyleProp","marker","_marker","_point","_angle","_marker2","_point2","_angle2","controlPoint","currentPoint","bezierCurveTo","quadraticCurveTo","xAxisRotation","currp","cpp","centp","a1","ad","dir","ah","halfWay","sx","sy","arc","Boolean","GlyphElement","horizAdvX","arabicForm","TextElement","measureCache","textBaseline","initializeCoordinates","leafTexts","textChunkStart","POSITIVE_INFINITY","NEGATIVE_INFINITY","getTElementBoundingBox","adjustChildCoordinatesRecursive","childBoundingBox","getChildBoundingBox","getFontSize","inheritFontSize","measureText","getGlyph","char","glyph","isArabic","prevChar","nextChar","glyphs","maybeGlyph","missingGlyph","getTextFromNode","parentNode","renderChild","renderTElementChildren","renderText","customFont","unitsPerEm","fontFace","ctxFont","isRTL","dx","lw","fillText","strokeText","applyAnchoring","firstElement","textAnchor","shift","adjustChildCoordinatesRecursiveCore","textParent","adjustChildCoordinates","xAttr","yAttr","dxAttr","dyAttr","getInheritedAttribute","measure","measureTargetText","targetText","_measure","parentAttr","TSpanElement","TextNode","SVGElement","_this$node$parentNode","getComputedStyle","getPropertyValue","fontSizeProp","refXAttr","refYAttr","viewBoxAttr","resize","preserveAspectRatio","widthAttr","heightAttr","styleAttr","originWidth","originHeight","preserveAspectRatioAttr","RectElement","rxAttr","ryAttr","ry","KAPPA","CircleElement","EllipseElement","LineElement","getPoints","x0","y0","PolylineElement","PolygonElement","PatternElement","parentOpacityProp","patternSvg","patternCanvas","patternCtx","MarkerElement","orient","markerUnits","markerSvg","overflow","DefsElement","GElement","GradientElement","attributesToInherit","stops","getGradientUnits","stopsContainer","inheritStopContainer","gradient","getGradient","addParentOpacity","addColorStop","rootView","rect","attributeToInherit","LinearGradientElement","isBoundingBoxUnits","createLinearGradient","RadialGradientElement","fx","fy","fr","createRadialGradient","StopElement","stopOpacity","stopColor","AnimateElement","duration","initialValue","initialUnits","removed","frozen","begin","maxDuration","to","valuesAttr","getProperty","attributeType","attributeName","calcValue","progress","getProgress","newValue","prop","updated","typeAttr","lb","ub","AnimateColorElement","colorFrom","colorTo","AnimateTransformElement","transformFrom","transformTo","FontElement","fontFamilyStyle","FontFaceElement","ascent","descent","MissingGlyphElement","TRefElement","firstChild","AElement","hasText","ownKeys$2","enumerableOnly","sym","_objectSpread$2","getOwnPropertyDescriptors","TextPathElement","textWidth","textHeight","pathLength","glyphInfo","letterSpacingCache","measuresCache","Map","pathElement","dataArray","parsePathData","theta","dTheta","psi","fs","setTextData","textDecoration","rotation","partialText","getLetterSpacingAt","idx","findSegmentToFitChar","anchor","textFullWidth","fullPathWidth","spacesNumber","inputOffset","dy","charI","glyphWidth","splineStep","getEquidistantPointOnPath","segment","dyX","dyY","chars","thisSpacing","parentSpacing","letterSpacing","textLen","dxSum","acc","cur","getPathLength","startOffset","nextOffset","pathCommands","startX","startY","nextCommandType","calcLength","commandType","getLineLength","getPointOnCubicBezier","getPointOnQuadraticBezier","inc","getPointOnEllipticalArc","getPointOnLine","dist","fromX","fromY","rise","pt","ix","iy","pRise","pRun","getPointOnPath","distance","fullLen","cumulativePathLength","currentT","pct","p4x","p4y","cosPsi","sinPsi","buildEquidistantCache","inputStep","inputPrecision","precision","equidistantCache","targetDistance","dataUriRegex","ImageElement","loaded","href","isSvg","images","loadSvg","image","atob","decodeURIComponent","svg","subDocument","canvg","forkString","documentElement","_image","complete","drawImage","SymbolElement","SVGFontLoader","fonts","fontNode","StyleElement","css","cssParts","cssClasses","cssProps","cssClass","cssProp","UseElement","tempSvg","oldParent","elementTransform","cachedElement","imGet","img","_height","rgba","imSet","m1","m2","m3","FeColorMatrixElement","includeOpacity","srcData","nr","ng","nb","na","MaskElement","ignoredStyles","maskCanvas","maskCtx","tmpCanvas","tmpCtx","globalCompositeOperation","fillRect","ClipPathElement","contextProto","FilterElement","px","py","efd","extraFilterDistance","tmpCanvasWidth","tmpCanvasHeight","FeDropShadowElement","_width","FeMorphologyElement","FeCompositeElement","FeGaussianBlurElement","blurRadius","body","getUniqueId","TitleElement","DescElement","ownKeys$1","_createImage","anonymousCrossOrigin","crossOrigin","onload","onerror","_event","_source","_lineno","_colno","Document","emSizeStack","uniqueId","bindCreateImage","isImagesLoaded","isFontsLoaded","forceAnonymousCrossOrigin","createDocumentElement","elementType","ElementType","elementTypes","config","_objectSpread$1","_objectSpread","Canvg","_arguments","svgDocument","fromString","fork","_arguments2","baseOptions"],"sourceRoot":""} \ No newline at end of file diff --git a/public/js/418.js b/public/js/418.js new file mode 100644 index 0000000..b508228 --- /dev/null +++ b/public/js/418.js @@ -0,0 +1,3 @@ +/*! For license information please see 418.js.LICENSE.txt */ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[418],{9418:(e,t,n)=>{n.r(t),n.d(t,{default:()=>le});const{entries:o,setPrototypeOf:r,isFrozen:i,getPrototypeOf:a,getOwnPropertyDescriptor:l}=Object;let{freeze:c,seal:s,create:u}=Object,{apply:m,construct:p}="undefined"!=typeof Reflect&&Reflect;c||(c=function(e){return e}),s||(s=function(e){return e}),m||(m=function(e,t,n){return e.apply(t,n)}),p||(p=function(e,t){return new e(...t)});const f=v(Array.prototype.forEach),d=v(Array.prototype.lastIndexOf),h=v(Array.prototype.pop),g=v(Array.prototype.push),T=v(Array.prototype.splice),y=v(String.prototype.toLowerCase),E=v(String.prototype.toString),A=v(String.prototype.match),_=v(String.prototype.replace),S=v(String.prototype.indexOf),N=v(String.prototype.trim),b=v(Object.prototype.hasOwnProperty),w=v(RegExp.prototype.test),R=(O=TypeError,function(){for(var e=arguments.length,t=new Array(e),n=0;n1?n-1:0),r=1;r2&&void 0!==arguments[2]?arguments[2]:y;r&&r(e,null);let o=t.length;for(;o--;){let r=t[o];if("string"==typeof r){const e=n(r);e!==r&&(i(t)||(t[o]=e),r=e)}e[r]=!0}return e}function D(e){for(let t=0;t/gm),X=s(/\$\{[\w\W]*/gm),q=s(/^data-[\-\w.\u00B7-\uFFFF]+$/),$=s(/^aria-[\-\w]+$/),K=s(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),V=s(/^(?:\w+script|data):/i),Z=s(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),J=s(/^html$/i),Q=s(/^[a-z][.\w]*(-[.\w]+)+$/i);var ee=Object.freeze({__proto__:null,ARIA_ATTR:$,ATTR_WHITESPACE:Z,CUSTOM_ELEMENT:Q,DATA_ATTR:q,DOCTYPE_NAME:J,ERB_EXPR:j,IS_ALLOWED_URI:K,IS_SCRIPT_OR_DATA:V,MUSTACHE_EXPR:Y,TMPLIT_EXPR:X});const te=1,ne=3,oe=7,re=8,ie=9,ae=function(){return"undefined"==typeof window?null:window};var le=function e(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ae();const n=t=>e(t);if(n.version="3.2.4",n.removed=[],!t||!t.document||t.document.nodeType!==ie||!t.Element)return n.isSupported=!1,n;let{document:r}=t;const i=r,a=i.currentScript,{DocumentFragment:l,HTMLTemplateElement:s,Node:m,Element:p,NodeFilter:O,NamedNodeMap:v=t.NamedNodeMap||t.MozNamedAttrMap,HTMLFormElement:D,DOMParser:Y,trustedTypes:j}=t,X=p.prototype,q=k(X,"cloneNode"),$=k(X,"remove"),V=k(X,"nextSibling"),Z=k(X,"childNodes"),Q=k(X,"parentNode");if("function"==typeof s){const e=r.createElement("template");e.content&&e.content.ownerDocument&&(r=e.content.ownerDocument)}let le,ce="";const{implementation:se,createNodeIterator:ue,createDocumentFragment:me,getElementsByTagName:pe}=r,{importNode:fe}=i;let de={afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]};n.isSupported="function"==typeof o&&"function"==typeof Q&&se&&void 0!==se.createHTMLDocument;const{MUSTACHE_EXPR:he,ERB_EXPR:ge,TMPLIT_EXPR:Te,DATA_ATTR:ye,ARIA_ATTR:Ee,IS_SCRIPT_OR_DATA:Ae,ATTR_WHITESPACE:_e,CUSTOM_ELEMENT:Se}=ee;let{IS_ALLOWED_URI:Ne}=ee,be=null;const we=C({},[...x,...I,...M,...z,...H]);let Re=null;const Oe=C({},[...F,...B,...W,...G]);let ve=Object.seal(u(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Ce=null,De=null,Le=!0,ke=!0,xe=!1,Ie=!0,Me=!1,Ue=!0,ze=!1,Pe=!1,He=!1,Fe=!1,Be=!1,We=!1,Ge=!0,Ye=!1,je=!0,Xe=!1,qe={},$e=null;const Ke=C({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let Ve=null;const Ze=C({},["audio","video","img","source","image","track"]);let Je=null;const Qe=C({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),et="http://www.w3.org/1998/Math/MathML",tt="http://www.w3.org/2000/svg",nt="http://www.w3.org/1999/xhtml";let ot=nt,rt=!1,it=null;const at=C({},[et,tt,nt],E);let lt=C({},["mi","mo","mn","ms","mtext"]),ct=C({},["annotation-xml"]);const st=C({},["title","style","font","a","script"]);let ut=null;const mt=["application/xhtml+xml","text/html"];let pt=null,ft=null;const dt=r.createElement("form"),ht=function(e){return e instanceof RegExp||e instanceof Function},gt=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!ft||ft!==e){if(e&&"object"==typeof e||(e={}),e=L(e),ut=-1===mt.indexOf(e.PARSER_MEDIA_TYPE)?"text/html":e.PARSER_MEDIA_TYPE,pt="application/xhtml+xml"===ut?E:y,be=b(e,"ALLOWED_TAGS")?C({},e.ALLOWED_TAGS,pt):we,Re=b(e,"ALLOWED_ATTR")?C({},e.ALLOWED_ATTR,pt):Oe,it=b(e,"ALLOWED_NAMESPACES")?C({},e.ALLOWED_NAMESPACES,E):at,Je=b(e,"ADD_URI_SAFE_ATTR")?C(L(Qe),e.ADD_URI_SAFE_ATTR,pt):Qe,Ve=b(e,"ADD_DATA_URI_TAGS")?C(L(Ze),e.ADD_DATA_URI_TAGS,pt):Ze,$e=b(e,"FORBID_CONTENTS")?C({},e.FORBID_CONTENTS,pt):Ke,Ce=b(e,"FORBID_TAGS")?C({},e.FORBID_TAGS,pt):{},De=b(e,"FORBID_ATTR")?C({},e.FORBID_ATTR,pt):{},qe=!!b(e,"USE_PROFILES")&&e.USE_PROFILES,Le=!1!==e.ALLOW_ARIA_ATTR,ke=!1!==e.ALLOW_DATA_ATTR,xe=e.ALLOW_UNKNOWN_PROTOCOLS||!1,Ie=!1!==e.ALLOW_SELF_CLOSE_IN_ATTR,Me=e.SAFE_FOR_TEMPLATES||!1,Ue=!1!==e.SAFE_FOR_XML,ze=e.WHOLE_DOCUMENT||!1,Fe=e.RETURN_DOM||!1,Be=e.RETURN_DOM_FRAGMENT||!1,We=e.RETURN_TRUSTED_TYPE||!1,He=e.FORCE_BODY||!1,Ge=!1!==e.SANITIZE_DOM,Ye=e.SANITIZE_NAMED_PROPS||!1,je=!1!==e.KEEP_CONTENT,Xe=e.IN_PLACE||!1,Ne=e.ALLOWED_URI_REGEXP||K,ot=e.NAMESPACE||nt,lt=e.MATHML_TEXT_INTEGRATION_POINTS||lt,ct=e.HTML_INTEGRATION_POINTS||ct,ve=e.CUSTOM_ELEMENT_HANDLING||{},e.CUSTOM_ELEMENT_HANDLING&&ht(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(ve.tagNameCheck=e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),e.CUSTOM_ELEMENT_HANDLING&&ht(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(ve.attributeNameCheck=e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),e.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(ve.allowCustomizedBuiltInElements=e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Me&&(ke=!1),Be&&(Fe=!0),qe&&(be=C({},H),Re=[],!0===qe.html&&(C(be,x),C(Re,F)),!0===qe.svg&&(C(be,I),C(Re,B),C(Re,G)),!0===qe.svgFilters&&(C(be,M),C(Re,B),C(Re,G)),!0===qe.mathMl&&(C(be,z),C(Re,W),C(Re,G))),e.ADD_TAGS&&(be===we&&(be=L(be)),C(be,e.ADD_TAGS,pt)),e.ADD_ATTR&&(Re===Oe&&(Re=L(Re)),C(Re,e.ADD_ATTR,pt)),e.ADD_URI_SAFE_ATTR&&C(Je,e.ADD_URI_SAFE_ATTR,pt),e.FORBID_CONTENTS&&($e===Ke&&($e=L($e)),C($e,e.FORBID_CONTENTS,pt)),je&&(be["#text"]=!0),ze&&C(be,["html","head","body"]),be.table&&(C(be,["tbody"]),delete Ce.tbody),e.TRUSTED_TYPES_POLICY){if("function"!=typeof e.TRUSTED_TYPES_POLICY.createHTML)throw R('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if("function"!=typeof e.TRUSTED_TYPES_POLICY.createScriptURL)throw R('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');le=e.TRUSTED_TYPES_POLICY,ce=le.createHTML("")}else void 0===le&&(le=function(e,t){if("object"!=typeof e||"function"!=typeof e.createPolicy)return null;let n=null;const o="data-tt-policy-suffix";t&&t.hasAttribute(o)&&(n=t.getAttribute(o));const r="dompurify"+(n?"#"+n:"");try{return e.createPolicy(r,{createHTML:e=>e,createScriptURL:e=>e})}catch(e){return console.warn("TrustedTypes policy "+r+" could not be created."),null}}(j,a)),null!==le&&"string"==typeof ce&&(ce=le.createHTML(""));c&&c(e),ft=e}},Tt=C({},[...I,...M,...U]),yt=C({},[...z,...P]),Et=function(e){g(n.removed,{element:e});try{Q(e).removeChild(e)}catch(t){$(e)}},At=function(e,t){try{g(n.removed,{attribute:t.getAttributeNode(e),from:t})}catch(e){g(n.removed,{attribute:null,from:t})}if(t.removeAttribute(e),"is"===e)if(Fe||Be)try{Et(t)}catch(e){}else try{t.setAttribute(e,"")}catch(e){}},_t=function(e){let t=null,n=null;if(He)e=""+e;else{const t=A(e,/^[\r\n\t ]+/);n=t&&t[0]}"application/xhtml+xml"===ut&&ot===nt&&(e=''+e+"");const o=le?le.createHTML(e):e;if(ot===nt)try{t=(new Y).parseFromString(o,ut)}catch(e){}if(!t||!t.documentElement){t=se.createDocument(ot,"template",null);try{t.documentElement.innerHTML=rt?ce:o}catch(e){}}const i=t.body||t.documentElement;return e&&n&&i.insertBefore(r.createTextNode(n),i.childNodes[0]||null),ot===nt?pe.call(t,ze?"html":"body")[0]:ze?t.documentElement:i},St=function(e){return ue.call(e.ownerDocument||e,e,O.SHOW_ELEMENT|O.SHOW_COMMENT|O.SHOW_TEXT|O.SHOW_PROCESSING_INSTRUCTION|O.SHOW_CDATA_SECTION,null)},Nt=function(e){return e instanceof D&&("string"!=typeof e.nodeName||"string"!=typeof e.textContent||"function"!=typeof e.removeChild||!(e.attributes instanceof v)||"function"!=typeof e.removeAttribute||"function"!=typeof e.setAttribute||"string"!=typeof e.namespaceURI||"function"!=typeof e.insertBefore||"function"!=typeof e.hasChildNodes)},bt=function(e){return"function"==typeof m&&e instanceof m};function wt(e,t,o){f(e,(e=>{e.call(n,t,o,ft)}))}const Rt=function(e){let t=null;if(wt(de.beforeSanitizeElements,e,null),Nt(e))return Et(e),!0;const o=pt(e.nodeName);if(wt(de.uponSanitizeElement,e,{tagName:o,allowedTags:be}),e.hasChildNodes()&&!bt(e.firstElementChild)&&w(/<[/\w]/g,e.innerHTML)&&w(/<[/\w]/g,e.textContent))return Et(e),!0;if(e.nodeType===oe)return Et(e),!0;if(Ue&&e.nodeType===re&&w(/<[/\w]/g,e.data))return Et(e),!0;if(!be[o]||Ce[o]){if(!Ce[o]&&vt(o)){if(ve.tagNameCheck instanceof RegExp&&w(ve.tagNameCheck,o))return!1;if(ve.tagNameCheck instanceof Function&&ve.tagNameCheck(o))return!1}if(je&&!$e[o]){const t=Q(e)||e.parentNode,n=Z(e)||e.childNodes;if(n&&t){for(let o=n.length-1;o>=0;--o){const r=q(n[o],!0);r.__removalCount=(e.__removalCount||0)+1,t.insertBefore(r,V(e))}}}return Et(e),!0}return e instanceof p&&!function(e){let t=Q(e);t&&t.tagName||(t={namespaceURI:ot,tagName:"template"});const n=y(e.tagName),o=y(t.tagName);return!!it[e.namespaceURI]&&(e.namespaceURI===tt?t.namespaceURI===nt?"svg"===n:t.namespaceURI===et?"svg"===n&&("annotation-xml"===o||lt[o]):Boolean(Tt[n]):e.namespaceURI===et?t.namespaceURI===nt?"math"===n:t.namespaceURI===tt?"math"===n&&ct[o]:Boolean(yt[n]):e.namespaceURI===nt?!(t.namespaceURI===tt&&!ct[o])&&!(t.namespaceURI===et&&!lt[o])&&!yt[n]&&(st[n]||!Tt[n]):!("application/xhtml+xml"!==ut||!it[e.namespaceURI]))}(e)?(Et(e),!0):"noscript"!==o&&"noembed"!==o&&"noframes"!==o||!w(/<\/no(script|embed|frames)/i,e.innerHTML)?(Me&&e.nodeType===ne&&(t=e.textContent,f([he,ge,Te],(e=>{t=_(t,e," ")})),e.textContent!==t&&(g(n.removed,{element:e.cloneNode()}),e.textContent=t)),wt(de.afterSanitizeElements,e,null),!1):(Et(e),!0)},Ot=function(e,t,n){if(Ge&&("id"===t||"name"===t)&&(n in r||n in dt))return!1;if(ke&&!De[t]&&w(ye,t));else if(Le&&w(Ee,t));else if(!Re[t]||De[t]){if(!(vt(e)&&(ve.tagNameCheck instanceof RegExp&&w(ve.tagNameCheck,e)||ve.tagNameCheck instanceof Function&&ve.tagNameCheck(e))&&(ve.attributeNameCheck instanceof RegExp&&w(ve.attributeNameCheck,t)||ve.attributeNameCheck instanceof Function&&ve.attributeNameCheck(t))||"is"===t&&ve.allowCustomizedBuiltInElements&&(ve.tagNameCheck instanceof RegExp&&w(ve.tagNameCheck,n)||ve.tagNameCheck instanceof Function&&ve.tagNameCheck(n))))return!1}else if(Je[t]);else if(w(Ne,_(n,_e,"")));else if("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==S(n,"data:")||!Ve[e]){if(xe&&!w(Ae,_(n,_e,"")));else if(n)return!1}else;return!0},vt=function(e){return"annotation-xml"!==e&&A(e,Se)},Ct=function(e){wt(de.beforeSanitizeAttributes,e,null);const{attributes:t}=e;if(!t||Nt(e))return;const o={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Re,forceKeepAttr:void 0};let r=t.length;for(;r--;){const i=t[r],{name:a,namespaceURI:l,value:c}=i,s=pt(a);let u="value"===a?c:N(c);if(o.attrName=s,o.attrValue=u,o.keepAttr=!0,o.forceKeepAttr=void 0,wt(de.uponSanitizeAttribute,e,o),u=o.attrValue,!Ye||"id"!==s&&"name"!==s||(At(a,e),u="user-content-"+u),Ue&&w(/((--!?|])>)|<\/(style|title)/i,u)){At(a,e);continue}if(o.forceKeepAttr)continue;if(At(a,e),!o.keepAttr)continue;if(!Ie&&w(/\/>/i,u)){At(a,e);continue}Me&&f([he,ge,Te],(e=>{u=_(u,e," ")}));const m=pt(e.nodeName);if(Ot(m,s,u)){if(le&&"object"==typeof j&&"function"==typeof j.getAttributeType)if(l);else switch(j.getAttributeType(m,s)){case"TrustedHTML":u=le.createHTML(u);break;case"TrustedScriptURL":u=le.createScriptURL(u)}try{l?e.setAttributeNS(l,a,u):e.setAttribute(a,u),Nt(e)?Et(e):h(n.removed)}catch(e){}}}wt(de.afterSanitizeAttributes,e,null)},Dt=function e(t){let n=null;const o=St(t);for(wt(de.beforeSanitizeShadowDOM,t,null);n=o.nextNode();)wt(de.uponSanitizeShadowNode,n,null),Rt(n),Ct(n),n.content instanceof l&&e(n.content);wt(de.afterSanitizeShadowDOM,t,null)};return n.sanitize=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=null,r=null,a=null,c=null;if(rt=!e,rt&&(e="\x3c!--\x3e"),"string"!=typeof e&&!bt(e)){if("function"!=typeof e.toString)throw R("toString is not a function");if("string"!=typeof(e=e.toString()))throw R("dirty is not a string, aborting")}if(!n.isSupported)return e;if(Pe||gt(t),n.removed=[],"string"==typeof e&&(Xe=!1),Xe){if(e.nodeName){const t=pt(e.nodeName);if(!be[t]||Ce[t])throw R("root node is forbidden and cannot be sanitized in-place")}}else if(e instanceof m)o=_t("\x3c!----\x3e"),r=o.ownerDocument.importNode(e,!0),r.nodeType===te&&"BODY"===r.nodeName||"HTML"===r.nodeName?o=r:o.appendChild(r);else{if(!Fe&&!Me&&!ze&&-1===e.indexOf("<"))return le&&We?le.createHTML(e):e;if(o=_t(e),!o)return Fe?null:We?ce:""}o&&He&&Et(o.firstChild);const s=St(Xe?e:o);for(;a=s.nextNode();)Rt(a),Ct(a),a.content instanceof l&&Dt(a.content);if(Xe)return e;if(Fe){if(Be)for(c=me.call(o.ownerDocument);o.firstChild;)c.appendChild(o.firstChild);else c=o;return(Re.shadowroot||Re.shadowrootmode)&&(c=fe.call(i,c,!0)),c}let u=ze?o.outerHTML:o.innerHTML;return ze&&be["!doctype"]&&o.ownerDocument&&o.ownerDocument.doctype&&o.ownerDocument.doctype.name&&w(J,o.ownerDocument.doctype.name)&&(u="\n"+u),Me&&f([he,ge,Te],(e=>{u=_(u,e," ")})),le&&We?le.createHTML(u):u},n.setConfig=function(){gt(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),Pe=!0},n.clearConfig=function(){ft=null,Pe=!1},n.isValidAttribute=function(e,t,n){ft||gt({});const o=pt(e),r=pt(t);return Ot(o,r,n)},n.addHook=function(e,t){"function"==typeof t&&g(de[e],t)},n.removeHook=function(e,t){if(void 0!==t){const n=d(de[e],t);return-1===n?void 0:T(de[e],n,1)[0]}return h(de[e])},n.removeHooks=function(e){de[e]=[]},n.removeAllHooks=function(){de={afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},n}()}}]); +//# sourceMappingURL=418.js.map \ No newline at end of file diff --git a/public/js/418.js.LICENSE.txt b/public/js/418.js.LICENSE.txt new file mode 100644 index 0000000..55e9dbf --- /dev/null +++ b/public/js/418.js.LICENSE.txt @@ -0,0 +1 @@ +/*! @license DOMPurify 3.2.4 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.4/LICENSE */ diff --git a/public/js/418.js.map b/public/js/418.js.map new file mode 100644 index 0000000..6153ea5 --- /dev/null +++ b/public/js/418.js.map @@ -0,0 +1 @@ +{"version":3,"file":"js/418.js","mappings":"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","sources":["webpack:///./node_modules/dompurify/dist/purify.es.mjs"],"sourcesContent":["/*! @license DOMPurify 3.2.4 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.4/LICENSE */\n\nconst {\n entries,\n setPrototypeOf,\n isFrozen,\n getPrototypeOf,\n getOwnPropertyDescriptor\n} = Object;\nlet {\n freeze,\n seal,\n create\n} = Object; // eslint-disable-line import/no-mutable-exports\nlet {\n apply,\n construct\n} = typeof Reflect !== 'undefined' && Reflect;\nif (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n}\nif (!seal) {\n seal = function seal(x) {\n return x;\n };\n}\nif (!apply) {\n apply = function apply(fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n}\nif (!construct) {\n construct = function construct(Func, args) {\n return new Func(...args);\n };\n}\nconst arrayForEach = unapply(Array.prototype.forEach);\nconst arrayLastIndexOf = unapply(Array.prototype.lastIndexOf);\nconst arrayPop = unapply(Array.prototype.pop);\nconst arrayPush = unapply(Array.prototype.push);\nconst arraySplice = unapply(Array.prototype.splice);\nconst stringToLowerCase = unapply(String.prototype.toLowerCase);\nconst stringToString = unapply(String.prototype.toString);\nconst stringMatch = unapply(String.prototype.match);\nconst stringReplace = unapply(String.prototype.replace);\nconst stringIndexOf = unapply(String.prototype.indexOf);\nconst stringTrim = unapply(String.prototype.trim);\nconst objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);\nconst regExpTest = unapply(RegExp.prototype.test);\nconst typeErrorCreate = unconstruct(TypeError);\n/**\n * Creates a new function that calls the given function with a specified thisArg and arguments.\n *\n * @param func - The function to be wrapped and called.\n * @returns A new function that calls the given function with a specified thisArg and arguments.\n */\nfunction unapply(func) {\n return function (thisArg) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n return apply(func, thisArg, args);\n };\n}\n/**\n * Creates a new function that constructs an instance of the given constructor function with the provided arguments.\n *\n * @param func - The constructor function to be wrapped and called.\n * @returns A new function that constructs an instance of the given constructor function with the provided arguments.\n */\nfunction unconstruct(func) {\n return function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return construct(func, args);\n };\n}\n/**\n * Add properties to a lookup table\n *\n * @param set - The set to which elements will be added.\n * @param array - The array containing elements to be added to the set.\n * @param transformCaseFunc - An optional function to transform the case of each element before adding to the set.\n * @returns The modified set with added elements.\n */\nfunction addToSet(set, array) {\n let transformCaseFunc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : stringToLowerCase;\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n let l = array.length;\n while (l--) {\n let element = array[l];\n if (typeof element === 'string') {\n const lcElement = transformCaseFunc(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n element = lcElement;\n }\n }\n set[element] = true;\n }\n return set;\n}\n/**\n * Clean up an array to harden against CSPP\n *\n * @param array - The array to be cleaned.\n * @returns The cleaned version of the array\n */\nfunction cleanArray(array) {\n for (let index = 0; index < array.length; index++) {\n const isPropertyExist = objectHasOwnProperty(array, index);\n if (!isPropertyExist) {\n array[index] = null;\n }\n }\n return array;\n}\n/**\n * Shallow clone an object\n *\n * @param object - The object to be cloned.\n * @returns A new object that copies the original.\n */\nfunction clone(object) {\n const newObject = create(null);\n for (const [property, value] of entries(object)) {\n const isPropertyExist = objectHasOwnProperty(object, property);\n if (isPropertyExist) {\n if (Array.isArray(value)) {\n newObject[property] = cleanArray(value);\n } else if (value && typeof value === 'object' && value.constructor === Object) {\n newObject[property] = clone(value);\n } else {\n newObject[property] = value;\n }\n }\n }\n return newObject;\n}\n/**\n * This method automatically checks if the prop is function or getter and behaves accordingly.\n *\n * @param object - The object to look up the getter function in its prototype chain.\n * @param prop - The property name for which to find the getter function.\n * @returns The getter function found in the prototype chain or a fallback function.\n */\nfunction lookupGetter(object, prop) {\n while (object !== null) {\n const desc = getOwnPropertyDescriptor(object, prop);\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n object = getPrototypeOf(object);\n }\n function fallbackValue() {\n return null;\n }\n return fallbackValue;\n}\n\nconst html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\nconst svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\nconst svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n// List of SVG elements that are disallowed by default.\n// We still need to know them so that we can do namespace\n// checks properly in case one wants to add them to\n// allow-list.\nconst svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\nconst mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover', 'mprescripts']);\n// Similarly to SVG, we want to know all MathML elements,\n// even those that we disallow by default.\nconst mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\nconst text = freeze(['#text']);\n\nconst html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'popover', 'popovertarget', 'popovertargetaction', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns', 'slot']);\nconst svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'amplitude', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'exponent', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'intercept', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'slope', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'tablevalues', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\nconst mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\nconst xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n// eslint-disable-next-line unicorn/better-regex\nconst MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\nconst ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\nconst TMPLIT_EXPR = seal(/\\$\\{[\\w\\W]*/gm); // eslint-disable-line unicorn/better-regex\nconst DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]+$/); // eslint-disable-line no-useless-escape\nconst ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\nconst IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n);\nconst IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\nconst ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n);\nconst DOCTYPE_NAME = seal(/^html$/i);\nconst CUSTOM_ELEMENT = seal(/^[a-z][.\\w]*(-[.\\w]+)+$/i);\n\nvar EXPRESSIONS = /*#__PURE__*/Object.freeze({\n __proto__: null,\n ARIA_ATTR: ARIA_ATTR,\n ATTR_WHITESPACE: ATTR_WHITESPACE,\n CUSTOM_ELEMENT: CUSTOM_ELEMENT,\n DATA_ATTR: DATA_ATTR,\n DOCTYPE_NAME: DOCTYPE_NAME,\n ERB_EXPR: ERB_EXPR,\n IS_ALLOWED_URI: IS_ALLOWED_URI,\n IS_SCRIPT_OR_DATA: IS_SCRIPT_OR_DATA,\n MUSTACHE_EXPR: MUSTACHE_EXPR,\n TMPLIT_EXPR: TMPLIT_EXPR\n});\n\n/* eslint-disable @typescript-eslint/indent */\n// https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\nconst NODE_TYPE = {\n element: 1,\n attribute: 2,\n text: 3,\n cdataSection: 4,\n entityReference: 5,\n // Deprecated\n entityNode: 6,\n // Deprecated\n progressingInstruction: 7,\n comment: 8,\n document: 9,\n documentType: 10,\n documentFragment: 11,\n notation: 12 // Deprecated\n};\nconst getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n};\n/**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param trustedTypes The policy factory.\n * @param purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).\n * @return The policy created (or null, if Trusted Types\n * are not supported or creating the policy failed).\n */\nconst _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, purifyHostElement) {\n if (typeof trustedTypes !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n let suffix = null;\n const ATTR_NAME = 'data-tt-policy-suffix';\n if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) {\n suffix = purifyHostElement.getAttribute(ATTR_NAME);\n }\n const policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML(html) {\n return html;\n },\n createScriptURL(scriptUrl) {\n return scriptUrl;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n};\nconst _createHooksMap = function _createHooksMap() {\n return {\n afterSanitizeAttributes: [],\n afterSanitizeElements: [],\n afterSanitizeShadowDOM: [],\n beforeSanitizeAttributes: [],\n beforeSanitizeElements: [],\n beforeSanitizeShadowDOM: [],\n uponSanitizeAttribute: [],\n uponSanitizeElement: [],\n uponSanitizeShadowNode: []\n };\n};\nfunction createDOMPurify() {\n let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n const DOMPurify = root => createDOMPurify(root);\n DOMPurify.version = '3.2.4';\n DOMPurify.removed = [];\n if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n return DOMPurify;\n }\n let {\n document\n } = window;\n const originalDocument = document;\n const currentScript = originalDocument.currentScript;\n const {\n DocumentFragment,\n HTMLTemplateElement,\n Node,\n Element,\n NodeFilter,\n NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap,\n HTMLFormElement,\n DOMParser,\n trustedTypes\n } = window;\n const ElementPrototype = Element.prototype;\n const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n const remove = lookupGetter(ElementPrototype, 'remove');\n const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n const getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n const template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n let trustedTypesPolicy;\n let emptyHTML = '';\n const {\n implementation,\n createNodeIterator,\n createDocumentFragment,\n getElementsByTagName\n } = document;\n const {\n importNode\n } = originalDocument;\n let hooks = _createHooksMap();\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = typeof entries === 'function' && typeof getParentNode === 'function' && implementation && implementation.createHTMLDocument !== undefined;\n const {\n MUSTACHE_EXPR,\n ERB_EXPR,\n TMPLIT_EXPR,\n DATA_ATTR,\n ARIA_ATTR,\n IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE,\n CUSTOM_ELEMENT\n } = EXPRESSIONS;\n let {\n IS_ALLOWED_URI: IS_ALLOWED_URI$1\n } = EXPRESSIONS;\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n /* allowed element names */\n let ALLOWED_TAGS = null;\n const DEFAULT_ALLOWED_TAGS = addToSet({}, [...html$1, ...svg$1, ...svgFilters, ...mathMl$1, ...text]);\n /* Allowed attribute names */\n let ALLOWED_ATTR = null;\n const DEFAULT_ALLOWED_ATTR = addToSet({}, [...html, ...svg, ...mathMl, ...xml]);\n /*\n * Configure how DOMPurify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n let CUSTOM_ELEMENT_HANDLING = Object.seal(create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false\n }\n }));\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n let FORBID_TAGS = null;\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n let FORBID_ATTR = null;\n /* Decide if ARIA attributes are okay */\n let ALLOW_ARIA_ATTR = true;\n /* Decide if custom data attributes are okay */\n let ALLOW_DATA_ATTR = true;\n /* Decide if unknown protocols are okay */\n let ALLOW_UNKNOWN_PROTOCOLS = false;\n /* Decide if self-closing tags in attributes are allowed.\n * Usually removed due to a mXSS issue in jQuery 3.0 */\n let ALLOW_SELF_CLOSE_IN_ATTR = true;\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n let SAFE_FOR_TEMPLATES = false;\n /* Output should be safe even for XML used within HTML and alike.\n * This means, DOMPurify removes comments when containing risky content.\n */\n let SAFE_FOR_XML = true;\n /* Decide if document with ... should be returned */\n let WHOLE_DOCUMENT = false;\n /* Track whether config is already set on this instance of DOMPurify. */\n let SET_CONFIG = false;\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n let FORCE_BODY = false;\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n let RETURN_DOM = false;\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n let RETURN_DOM_FRAGMENT = false;\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n let RETURN_TRUSTED_TYPE = false;\n /* Output should be free from DOM clobbering attacks?\n * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n */\n let SANITIZE_DOM = true;\n /* Achieve full DOM Clobbering protection by isolating the namespace of named\n * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rules that enable DOM Clobbering:\n * - Named Access on Window (§7.3.3)\n * - DOM Tree Accessors (§3.1.5)\n * - Form Element Parent-Child Relations (§4.10.3)\n * - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n * - HTMLCollection (§4.2.10.2)\n *\n * Namespace isolation is implemented by prefixing `id` and `name` attributes\n * with a constant string, i.e., `user-content-`\n */\n let SANITIZE_NAMED_PROPS = false;\n const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n /* Keep element content when removing element? */\n let KEEP_CONTENT = true;\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n let IN_PLACE = false;\n /* Allow usage of profiles like html, svg and mathMl */\n let USE_PROFILES = {};\n /* Tags to ignore content of when KEEP_CONTENT is true */\n let FORBID_CONTENTS = null;\n const DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n /* Tags that are safe for data: URIs */\n let DATA_URI_TAGS = null;\n const DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n /* Attributes safe for values like \"javascript:\" */\n let URI_SAFE_ATTRIBUTES = null;\n const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n let NAMESPACE = HTML_NAMESPACE;\n let IS_EMPTY_INPUT = false;\n /* Allowed XHTML+XML namespaces */\n let ALLOWED_NAMESPACES = null;\n const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);\n let MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n let HTML_INTEGRATION_POINTS = addToSet({}, ['annotation-xml']);\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erroneously deleted from\n // HTML namespace.\n const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n /* Parsing of strict XHTML documents */\n let PARSER_MEDIA_TYPE = null;\n const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n let transformCaseFunc = null;\n /* Keep a reference to config to pass to hooks */\n let CONFIG = null;\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n const formElement = document.createElement('form');\n const isRegexOrFunction = function isRegexOrFunction(testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n /**\n * _parseConfig\n *\n * @param cfg optional config literal\n */\n // eslint-disable-next-line complexity\n const _parseConfig = function _parseConfig() {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n /* Shield configuration object from tampering */\n if (!cfg || typeof cfg !== 'object') {\n cfg = {};\n }\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n PARSER_MEDIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? DEFAULT_PARSER_MEDIA_TYPE : cfg.PARSER_MEDIA_TYPE;\n // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase;\n /* Set configuration parameters */\n ALLOWED_TAGS = objectHasOwnProperty(cfg, 'ALLOWED_TAGS') ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = objectHasOwnProperty(cfg, 'ALLOWED_ATTR') ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;\n ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, 'ALLOWED_NAMESPACES') ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;\n URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR') ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR, transformCaseFunc) : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = objectHasOwnProperty(cfg, 'ADD_DATA_URI_TAGS') ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS, transformCaseFunc) : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = objectHasOwnProperty(cfg, 'FORBID_CONTENTS') ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = objectHasOwnProperty(cfg, 'FORBID_TAGS') ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : {};\n FORBID_ATTR = objectHasOwnProperty(cfg, 'FORBID_ATTR') ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : {};\n USE_PROFILES = objectHasOwnProperty(cfg, 'USE_PROFILES') ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false; // Default true\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n MATHML_TEXT_INTEGRATION_POINTS = cfg.MATHML_TEXT_INTEGRATION_POINTS || MATHML_TEXT_INTEGRATION_POINTS;\n HTML_INTEGRATION_POINTS = cfg.HTML_INTEGRATION_POINTS || HTML_INTEGRATION_POINTS;\n CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n }\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, text);\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html$1);\n addToSet(ALLOWED_ATTR, html);\n }\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg$1);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl$1);\n addToSet(ALLOWED_ATTR, mathMl);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n }\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n }\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n }\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n }\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n if (cfg.TRUSTED_TYPES_POLICY) {\n if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.');\n }\n if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.');\n }\n // Overwrite existing TrustedTypes policy.\n trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;\n // Sign local variables required by `sanitize`.\n emptyHTML = trustedTypesPolicy.createHTML('');\n } else {\n // Uninitialized policy, attempt to initialize the internal dompurify policy.\n if (trustedTypesPolicy === undefined) {\n trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);\n }\n // If creating the internal policy succeeded sign internal variables.\n if (trustedTypesPolicy !== null && typeof emptyHTML === 'string') {\n emptyHTML = trustedTypesPolicy.createHTML('');\n }\n }\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n CONFIG = cfg;\n };\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n const ALL_SVG_TAGS = addToSet({}, [...svg$1, ...svgFilters, ...svgDisallowed]);\n const ALL_MATHML_TAGS = addToSet({}, [...mathMl$1, ...mathMlDisallowed]);\n /**\n * @param element a DOM element whose namespace is being checked\n * @returns Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n const _checkValidNamespace = function _checkValidNamespace(element) {\n let parent = getParentNode(element);\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: NAMESPACE,\n tagName: 'template'\n };\n }\n const tagName = stringToLowerCase(element.tagName);\n const parentTagName = stringToLowerCase(parent.tagName);\n if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n return false;\n }\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n }\n // The only way to switch from MathML to SVG is via`\n // svg if parent is either or MathML\n // text integration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n }\n // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n }\n // The only way to switch from SVG to MathML is via\n // and HTML integration points\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);\n }\n // For XHTML and XML documents that support custom namespaces\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && ALLOWED_NAMESPACES[element.namespaceURI]) {\n return true;\n }\n // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n // Return false just in case.\n return false;\n };\n /**\n * _forceRemove\n *\n * @param node a DOM node\n */\n const _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, {\n element: node\n });\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n getParentNode(node).removeChild(node);\n } catch (_) {\n remove(node);\n }\n };\n /**\n * _removeAttribute\n *\n * @param name an Attribute name\n * @param element a DOM node\n */\n const _removeAttribute = function _removeAttribute(name, element) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: element.getAttributeNode(name),\n from: element\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: element\n });\n }\n element.removeAttribute(name);\n // We void attribute values for unremovable \"is\" attributes\n if (name === 'is') {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(element);\n } catch (_) {}\n } else {\n try {\n element.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n /**\n * _initDocument\n *\n * @param dirty - a string of dirty markup\n * @return a DOM, filled with the dirty markup\n */\n const _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n let doc = null;\n let leadingWhitespace = null;\n if (FORCE_BODY) {\n dirty = '' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n const matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && NAMESPACE === HTML_NAMESPACE) {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty = '' + dirty + '';\n }\n const dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is invalid xml\n }\n }\n const body = doc.body || doc.documentElement;\n if (dirty && leadingWhitespace) {\n body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n }\n /* Work on whole document or just its body */\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n }\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n /**\n * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.\n *\n * @param root The root element or node to start traversing on.\n * @return The created NodeIterator\n */\n const _createNodeIterator = function _createNodeIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root,\n // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION, null);\n };\n /**\n * _isClobbered\n *\n * @param element element to check for clobbering attacks\n * @return true if clobbered, false if safe\n */\n const _isClobbered = function _isClobbered(element) {\n return element instanceof HTMLFormElement && (typeof element.nodeName !== 'string' || typeof element.textContent !== 'string' || typeof element.removeChild !== 'function' || !(element.attributes instanceof NamedNodeMap) || typeof element.removeAttribute !== 'function' || typeof element.setAttribute !== 'function' || typeof element.namespaceURI !== 'string' || typeof element.insertBefore !== 'function' || typeof element.hasChildNodes !== 'function');\n };\n /**\n * Checks whether the given object is a DOM node.\n *\n * @param value object to check whether it's a DOM node\n * @return true is object is a DOM node\n */\n const _isNode = function _isNode(value) {\n return typeof Node === 'function' && value instanceof Node;\n };\n function _executeHooks(hooks, currentNode, data) {\n arrayForEach(hooks, hook => {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n }\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n * @param currentNode to check for permission to exist\n * @return true if node was killed, false if left alive\n */\n const _sanitizeElements = function _sanitizeElements(currentNode) {\n let content = null;\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeElements, currentNode, null);\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Now let's check the element's type and name */\n const tagName = transformCaseFunc(currentNode.nodeName);\n /* Execute a hook if present */\n _executeHooks(hooks.uponSanitizeElement, currentNode, {\n tagName,\n allowedTags: ALLOWED_TAGS\n });\n /* Detect mXSS attempts abusing namespace confusion */\n if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(/<[/\\w]/g, currentNode.innerHTML) && regExpTest(/<[/\\w]/g, currentNode.textContent)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove any occurrence of processing instructions */\n if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove any kind of possibly harmful comments */\n if (SAFE_FOR_XML && currentNode.nodeType === NODE_TYPE.comment && regExpTest(/<[/\\w]/g, currentNode.data)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove element if anything forbids its presence */\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n /* Check if we have a custom element to handle */\n if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {\n return false;\n }\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) {\n return false;\n }\n }\n /* Keep content except for bad-listed elements */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n const parentNode = getParentNode(currentNode) || currentNode.parentNode;\n const childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n if (childNodes && parentNode) {\n const childCount = childNodes.length;\n for (let i = childCount - 1; i >= 0; --i) {\n const childClone = cloneNode(childNodes[i], true);\n childClone.__removalCount = (currentNode.__removalCount || 0) + 1;\n parentNode.insertBefore(childClone, getNextSibling(currentNode));\n }\n }\n }\n _forceRemove(currentNode);\n return true;\n }\n /* Check whether element has a valid namespace */\n if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Make sure that older browsers don't get fallback-tag mXSS */\n if ((tagName === 'noscript' || tagName === 'noembed' || tagName === 'noframes') && regExpTest(/<\\/no(script|embed|frames)/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) {\n /* Get the element's text content */\n content = currentNode.textContent;\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n content = stringReplace(content, expr, ' ');\n });\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, {\n element: currentNode.cloneNode()\n });\n currentNode.textContent = content;\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeElements, currentNode, null);\n return false;\n };\n /**\n * _isValidAttribute\n *\n * @param lcTag Lowercase tag name of containing element.\n * @param lcName Lowercase attribute name.\n * @param value Attribute value.\n * @return Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n const _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n /* Make sure attribute cannot clobber */\n if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n return false;\n }\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n if (\n // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n _isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) ||\n // Alternative, second condition checks if it's an `is`-attribute, AND\n // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else {\n return false;\n }\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if (value) {\n return false;\n } else ;\n return true;\n };\n /**\n * _isBasicCustomElement\n * checks if at least one dash is included in tagName, and it's not the first char\n * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n *\n * @param tagName name of the tag of the node to sanitize\n * @returns Returns true if the tag name meets the basic criteria for a custom element, otherwise false.\n */\n const _isBasicCustomElement = function _isBasicCustomElement(tagName) {\n return tagName !== 'annotation-xml' && stringMatch(tagName, CUSTOM_ELEMENT);\n };\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param currentNode to sanitize\n */\n const _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeAttributes, currentNode, null);\n const {\n attributes\n } = currentNode;\n /* Check if we have attributes; if not we might have a text node */\n if (!attributes || _isClobbered(currentNode)) {\n return;\n }\n const hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR,\n forceKeepAttr: undefined\n };\n let l = attributes.length;\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n const attr = attributes[l];\n const {\n name,\n namespaceURI,\n value: attrValue\n } = attr;\n const lcName = transformCaseFunc(name);\n let value = name === 'value' ? attrValue : stringTrim(attrValue);\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n _executeHooks(hooks.uponSanitizeAttribute, currentNode, hookEvent);\n value = hookEvent.attrValue;\n /* Full DOM Clobbering protection via namespace isolation,\n * Prefix id and name attributes with `user-content-`\n */\n if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {\n // Remove the attribute with this value\n _removeAttribute(name, currentNode);\n // Prefix the value and later re-create the attribute with the sanitized value\n value = SANITIZE_NAMED_PROPS_PREFIX + value;\n }\n /* Work around a security issue with comments inside attributes */\n if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\\/(style|title)/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n /* Remove attribute */\n _removeAttribute(name, currentNode);\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n continue;\n }\n /* Work around a security issue in jQuery 3.0 */\n if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n value = stringReplace(value, expr, ' ');\n });\n }\n /* Is `value` valid for this attribute? */\n const lcTag = transformCaseFunc(currentNode.nodeName);\n if (!_isValidAttribute(lcTag, lcName, value)) {\n continue;\n }\n /* Handle attributes that require Trusted Types */\n if (trustedTypesPolicy && typeof trustedTypes === 'object' && typeof trustedTypes.getAttributeType === 'function') {\n if (namespaceURI) ; else {\n switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n case 'TrustedHTML':\n {\n value = trustedTypesPolicy.createHTML(value);\n break;\n }\n case 'TrustedScriptURL':\n {\n value = trustedTypesPolicy.createScriptURL(value);\n break;\n }\n }\n }\n }\n /* Handle invalid data-* attribute set by try-catching it */\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n } else {\n arrayPop(DOMPurify.removed);\n }\n } catch (_) {}\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeAttributes, currentNode, null);\n };\n /**\n * _sanitizeShadowDOM\n *\n * @param fragment to iterate over recursively\n */\n const _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n let shadowNode = null;\n const shadowIterator = _createNodeIterator(fragment);\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeShadowDOM, fragment, null);\n while (shadowNode = shadowIterator.nextNode()) {\n /* Execute a hook if present */\n _executeHooks(hooks.uponSanitizeShadowNode, shadowNode, null);\n /* Sanitize tags and elements */\n _sanitizeElements(shadowNode);\n /* Check attributes next */\n _sanitizeAttributes(shadowNode);\n /* Deep shadow DOM detected */\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeShadowDOM, fragment, null);\n };\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty) {\n let cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let body = null;\n let importedNode = null;\n let currentNode = null;\n let returnNode = null;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n IS_EMPTY_INPUT = !dirty;\n if (IS_EMPTY_INPUT) {\n dirty = '';\n }\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n if (typeof dirty.toString === 'function') {\n dirty = dirty.toString();\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n } else {\n throw typeErrorCreate('toString is not a function');\n }\n }\n /* Return dirty HTML if DOMPurify cannot run */\n if (!DOMPurify.isSupported) {\n return dirty;\n }\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n /* Clean up removed elements */\n DOMPurify.removed = [];\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n if (IN_PLACE) {\n /* Do some early pre-sanitization to avoid unsafe root nodes */\n if (dirty.nodeName) {\n const tagName = transformCaseFunc(dirty.nodeName);\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place');\n }\n }\n } else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (importedNode.nodeType === NODE_TYPE.element && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT &&\n // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n }\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n }\n }\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n /* Get node iterator */\n const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);\n /* Now start iterating over the created document */\n while (currentNode = nodeIterator.nextNode()) {\n /* Sanitize tags and elements */\n _sanitizeElements(currentNode);\n /* Check attributes next */\n _sanitizeAttributes(currentNode);\n /* Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n }\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n return returnNode;\n }\n let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n /* Serialize doctype if allowed */\n if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {\n serializedHTML = '\\n' + serializedHTML;\n }\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n serializedHTML = stringReplace(serializedHTML, expr, ' ');\n });\n }\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n };\n DOMPurify.setConfig = function () {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n const lcTag = transformCaseFunc(tag);\n const lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n arrayPush(hooks[entryPoint], hookFunction);\n };\n DOMPurify.removeHook = function (entryPoint, hookFunction) {\n if (hookFunction !== undefined) {\n const index = arrayLastIndexOf(hooks[entryPoint], hookFunction);\n return index === -1 ? undefined : arraySplice(hooks[entryPoint], index, 1)[0];\n }\n return arrayPop(hooks[entryPoint]);\n };\n DOMPurify.removeHooks = function (entryPoint) {\n hooks[entryPoint] = [];\n };\n DOMPurify.removeAllHooks = function () {\n hooks = _createHooksMap();\n };\n return DOMPurify;\n}\nvar purify = createDOMPurify();\n\nexport { purify as default };\n//# sourceMappingURL=purify.es.mjs.map\n"],"names":["entries","setPrototypeOf","isFrozen","getPrototypeOf","getOwnPropertyDescriptor","Object","freeze","seal","create","apply","construct","Reflect","x","fun","thisValue","args","Func","arrayForEach","unapply","Array","prototype","forEach","arrayLastIndexOf","lastIndexOf","arrayPop","pop","arrayPush","push","arraySplice","splice","stringToLowerCase","String","toLowerCase","stringToString","toString","stringMatch","match","stringReplace","replace","stringIndexOf","indexOf","stringTrim","trim","objectHasOwnProperty","hasOwnProperty","regExpTest","RegExp","test","typeErrorCreate","func","TypeError","_len2","arguments","length","_key2","thisArg","_len","_key","addToSet","set","array","transformCaseFunc","undefined","l","element","lcElement","cleanArray","index","clone","object","newObject","property","value","isArray","constructor","lookupGetter","prop","desc","get","html$1","svg$1","svgFilters","svgDisallowed","mathMl$1","mathMlDisallowed","text","html","svg","mathMl","xml","MUSTACHE_EXPR","ERB_EXPR","TMPLIT_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","DOCTYPE_NAME","CUSTOM_ELEMENT","EXPRESSIONS","__proto__","NODE_TYPE","getGlobal","window","purify","createDOMPurify","DOMPurify","root","version","removed","document","nodeType","Element","isSupported","originalDocument","currentScript","DocumentFragment","HTMLTemplateElement","Node","NodeFilter","NamedNodeMap","MozNamedAttrMap","HTMLFormElement","DOMParser","trustedTypes","ElementPrototype","cloneNode","remove","getNextSibling","getChildNodes","getParentNode","template","createElement","content","ownerDocument","trustedTypesPolicy","emptyHTML","implementation","createNodeIterator","createDocumentFragment","getElementsByTagName","importNode","hooks","afterSanitizeAttributes","afterSanitizeElements","afterSanitizeShadowDOM","beforeSanitizeAttributes","beforeSanitizeElements","beforeSanitizeShadowDOM","uponSanitizeAttribute","uponSanitizeElement","uponSanitizeShadowNode","createHTMLDocument","IS_ALLOWED_URI$1","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","CUSTOM_ELEMENT_HANDLING","tagNameCheck","writable","configurable","enumerable","attributeNameCheck","allowCustomizedBuiltInElements","FORBID_TAGS","FORBID_ATTR","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","ALLOW_SELF_CLOSE_IN_ATTR","SAFE_FOR_TEMPLATES","SAFE_FOR_XML","WHOLE_DOCUMENT","SET_CONFIG","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_TRUSTED_TYPE","SANITIZE_DOM","SANITIZE_NAMED_PROPS","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","NAMESPACE","IS_EMPTY_INPUT","ALLOWED_NAMESPACES","DEFAULT_ALLOWED_NAMESPACES","MATHML_TEXT_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","COMMON_SVG_AND_HTML_ELEMENTS","PARSER_MEDIA_TYPE","SUPPORTED_PARSER_MEDIA_TYPES","CONFIG","formElement","isRegexOrFunction","testValue","Function","_parseConfig","cfg","ADD_URI_SAFE_ATTR","ADD_DATA_URI_TAGS","ALLOWED_URI_REGEXP","ADD_TAGS","ADD_ATTR","table","tbody","TRUSTED_TYPES_POLICY","createHTML","createScriptURL","purifyHostElement","createPolicy","suffix","ATTR_NAME","hasAttribute","getAttribute","policyName","scriptUrl","_","console","warn","_createTrustedTypesPolicy","ALL_SVG_TAGS","ALL_MATHML_TAGS","_forceRemove","node","removeChild","_removeAttribute","name","attribute","getAttributeNode","from","removeAttribute","setAttribute","_initDocument","dirty","doc","leadingWhitespace","matches","dirtyPayload","parseFromString","documentElement","createDocument","innerHTML","body","insertBefore","createTextNode","childNodes","call","_createNodeIterator","SHOW_ELEMENT","SHOW_COMMENT","SHOW_TEXT","SHOW_PROCESSING_INSTRUCTION","SHOW_CDATA_SECTION","_isClobbered","nodeName","textContent","attributes","namespaceURI","hasChildNodes","_isNode","_executeHooks","currentNode","data","hook","_sanitizeElements","tagName","allowedTags","firstElementChild","_isBasicCustomElement","parentNode","i","childClone","__removalCount","parent","parentTagName","Boolean","_checkValidNamespace","expr","_isValidAttribute","lcTag","lcName","_sanitizeAttributes","hookEvent","attrName","attrValue","keepAttr","allowedAttributes","forceKeepAttr","attr","getAttributeType","setAttributeNS","_sanitizeShadowDOM","fragment","shadowNode","shadowIterator","nextNode","sanitize","importedNode","returnNode","appendChild","firstChild","nodeIterator","shadowroot","shadowrootmode","serializedHTML","outerHTML","doctype","setConfig","clearConfig","isValidAttribute","tag","addHook","entryPoint","hookFunction","removeHook","removeHooks","removeAllHooks"],"sourceRoot":""} \ No newline at end of file diff --git a/resources/lang/am.json b/resources/lang/am.json index 874f3ee..82998ba 100644 --- a/resources/lang/am.json +++ b/resources/lang/am.json @@ -197,7 +197,8 @@ "steps": { "one": { "heading": "ደረጃ 1 - ይመዝገቡ", - "body": "ከደህንነት መልዕክት ዳታቤዝ ኤፒአይ መረጃ መጠቀም ለመጀመር በመጀመሪያ {0} ወደ የደህንነት መልዕክት ዳታቤዝ ፖርታል ይግቡ።\n\nፌስቡክ እና ጎግል አካውንትዎን ወይም ኢሜል አድራሻዎን ተጠቅመው አካውንት መፍጠር ይችላሉ።", "create_account_alt": "አካዉንት ይክፈቱ፤", + "body": "ከደህንነት መልዕክት ዳታቤዝ ኤፒአይ መረጃ መጠቀም ለመጀመር በመጀመሪያ {0} ወደ የደህንነት መልዕክት ዳታቤዝ ፖርታል ይግቡ።\n\nፌስቡክ እና ጎግል አካውንትዎን ወይም ኢሜል አድራሻዎን ተጠቅመው አካውንት መፍጠር ይችላሉ።", + "create_account_alt": "አካዉንት ይክፈቱ፤", "existing_account": "ከዚህ ቀደም አካዉንት ካለዎት፣ እባከዎ {0}።", "login_cta": "ይግቡ፤", "sign_up_cta": "ይመዝገቡ፤" @@ -215,7 +216,8 @@ }, "four": { "api_docs_cta": "የ ኤፒ አይ (API) ሰነድ፤", - "body": "የደህንነት መልዕክት ዳታቤዝ ኤፒአይ HTTP(S) ይጠቀማል እና የታተመ መረጃ ለማግኘት RESTful endpoints ያቀርባል።\n\nእያንዳንዱ ጥያቄ በቀደመው ደረጃ በተፈጠረው ኤፒአይ ቁልፍ መረጋገጥ አለበት።", "example_title": "የሙከራ ጥያቄ፤", + "body": "የደህንነት መልዕክት ዳታቤዝ ኤፒአይ HTTP(S) ይጠቀማል እና የታተመ መረጃ ለማግኘት RESTful endpoints ያቀርባል።\n\nእያንዳንዱ ጥያቄ በቀደመው ደረጃ በተፈጠረው ኤፒአይ ቁልፍ መረጋገጥ አለበት።", + "example_title": "የሙከራ ጥያቄ፤", "heading": "ደረጃ4 - ጥያቄ ያቅርቡ", "moreInfo": "ስለሁሉም የ API ኢንድፖይንቶች ተጨማሪ መረጃ ለማግኘት፣{0} ይመልከቱ።" } @@ -439,9 +441,9 @@ "immediate": "ወዲያውኑ", "warning": "ማስጠንቀቂያ", "anticipated": "በቅድሚያ የተጠበቀ", - "assess_and_plan":"ግምገማ እና እቅድ", - "mitigate_risks":"አደጋን መቀነስ", - "prepare_to_respond":"ለመልስ ዝግጁ ይሁኑ", + "assess_and_plan": "ግምገማ እና እቅድ", + "mitigate_risks": "አደጋን መቀነስ", + "prepare_to_respond": "ለመልስ ዝግጁ ይሁኑ", "recover": "መልሶ ማግኛት" }, "content": { @@ -524,7 +526,7 @@ "seasonalForecast_extra": "የወቅቱ ትንበያ የአደገኛ ክስተት ትንበያ መግለጫ ነው። የሚወሰዱ እርምጃዎች አደጋዎችን ለመዳሰስ እና አደጋን ለመቀነስ እና ቤተሰቡን ለመጠበቅ የሚረዱ እንቅስቃሴዎችን ለማቀድ ነው ፡፡", "watch": "ማየት", "watch_help": "ለመመለስ መዘጋጀት", - "watch_extra": " ማየት የሚታዘዘው የአደገኛ ክስተት ስጋት በከፍተኛ ሁኔታ ይጨምራል ፣ ግን መከሰቱ ፣ቦታው ፣ወይም\/ እና የጊዜ አወጣጥ አሁንም እርግጠኛ አይደሉም። ለመከላከያ እርምጃዎች እና ቅደመ ምላሽ ለመስጠት ዝግጁ ለማድረግ በቂ ጊዜ ለመስጠት የታሰበ ነው ፡፡", + "watch_extra": " ማየት የሚታዘዘው የአደገኛ ክስተት ስጋት በከፍተኛ ሁኔታ ይጨምራል ፣ ግን መከሰቱ ፣ቦታው ፣ወይም/ እና የጊዜ አወጣጥ አሁንም እርግጠኛ አይደሉም። ለመከላከያ እርምጃዎች እና ቅደመ ምላሽ ለመስጠት ዝግጁ ለማድረግ በቂ ጊዜ ለመስጠት የታሰበ ነው ፡፡", "warning": "ማስጠንቀቂያ", "warning_help": "ለመመለስ መዘጋጀት", "warning_extra": "አደገኛ ክስተት ሲከሰት ፣ ሲቃረብ ወይም በጣም ከፍተኛ የመከሰት እድሉ ሲኖር ማስጠንቀቂያ ይሰጣል ፡፡ ያ ማለት ለህይወት ወይም ለንብረት አስጊ ሁኔታ ሲፈጠር ማለት ነው። በዚህ አደጋ ጎዳና ላይ ያሉ ሰዎች የመከላከያ እርምጃዎችን መውሰድ አለባቸው ፡፡", @@ -556,7 +558,8 @@ "content_edit_title": "ይዘት አርትዕ", "content_add_hazard_title": "አደጋ ጨምር", "key_message_label": "ዋና መልእክት ርዕስ", - "supporting_message_label": "የድጋፍ መልእክት" + "supporting_message_label": "የድጋፍ መልእክት", + "mitigate_risk": "አደጋን መቀነስ" }, "message_editor": { "title": "የምክንያት አርታኢ", @@ -616,7 +619,7 @@ "bad_request_error_codes": { "30001": "የአምድ ርዕሶች ከእቅድ ንድፍ ጋር አይመሳሰሉም", "30002": " የመለያ ስም፣ መልክዕት ወይም ማስፈንጥሪያው ተዘሏል", - "30003": "የማይሰራ የመለያ ማስፈንጠሪያ እባኮዎን የአሁን ፕሮቶኮል መሆኑን ያረጋግጡ፣ ለምሳሌ https:\/\/", + "30003": "የማይሰራ የመለያ ማስፈንጠሪያ እባኮዎን የአሁን ፕሮቶኮል መሆኑን ያረጋግጡ፣ ለምሳሌ https://", "40001": "የማይሰራ ያሀገር ኮድ ተሰጥቷል", "40002": "የተመረጠው ማህበረሰብ ከተመረጠው ፋይል ከማህበረሰቡ ጋር አይጣጣምም", "40003": "የተመረጠው ፋይል ወደ ውጭ ሲልክ የተሳሳተ ስለሆነ ማስመጣቱን ማጠናቀቅ አይችልም" @@ -687,7 +690,7 @@ }, "landing": { "strapline": "የደህንነት መልዕክት ዳታቤዝ አገልግሎት", - "strapline_part_2": "የአለም አቀፍ ቀይ መስቀል \/ ቀይ ጨረቃ ቁልፍ የደህንነት መልዕክቶች", + "strapline_part_2": "የአለም አቀፍ ቀይ መስቀል / ቀይ ጨረቃ ቁልፍ የደህንነት መልዕክቶች", "head_1": "IFRC ደህንነት", "head_2": "የመልዕክት ዳታቤዝ", "head_text_1": "በIFRC የህዝብ ግንዛቤ እና ላይ የተመሰረቱ የደህንነት መልዕክቶች", @@ -742,7 +745,7 @@ "fake_alert_heading": "እጅግ በጣም የቀዘቀዘ ማስጠንቀቂያ", "fake_alert_description": "Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est.", "fake_alert_time": "አንድ ሰዓት በፊት", - "fake_alert_time_exact": "05\/02\/18 at 05:15 CT", + "fake_alert_time_exact": "05/02/18 at 05:15 CT", "use_cases": { "heading": "የበለጠ ይማሩ", "first_heading": " እንዴት እንደሚሰራ", @@ -783,7 +786,7 @@ }, "data_preview": { "heading": "የደህንነት መልዕክቶች", - "sub_heading": "በዓለም ዙርያ ካሉት የቀይ መስቀል\/ቀይ ጨረቃ ብሔራዊ ማኅበራት ቁልፍ የድርጊት መልእክቶችን ለማየት ይመዝገቡ" + "sub_heading": "በዓለም ዙርያ ካሉት የቀይ መስቀል/ቀይ ጨረቃ ብሔራዊ ማኅበራት ቁልፍ የድርጊት መልእክቶችን ለማየት ይመዝገቡ" }, "footer": { "terms_conditions": "ውሎች እና ሁኔታዎች", @@ -839,10 +842,10 @@ "industries": { "media": "መገናኛ ዘዴ", "emergency": "የአደጋ ጊዜ አስተዳደር", - "non_profit": "ለትርፍ ያልተቋቋመ \/ መንግስታዊ ያልሆነ ድርጅት", + "non_profit": "ለትርፍ ያልተቋቋመ / መንግስታዊ ያልሆነ ድርጅት", "humanitarian": "የሰብአዊ እርዳታ ድርጅት", - "red_cross": "ቀይ መስቀል \/ ቀይ ጨረቃ", - "education": "ትምህርት \/ አካዳሚ", + "red_cross": "ቀይ መስቀል / ቀይ ጨረቃ", + "education": "ትምህርት / አካዳሚ", "gov": "የመንግስት ድርጅት", "other": "ሌላ" }, @@ -857,9 +860,9 @@ "body": "የኮሎምቢያ ዲስትሪክት ህጎች በዚህ ስምምነት መሠረት ማንኛውንም የሕግ ግጭቶች መርሆዎች ሳይፈጽሙ ሁሉንም መብቶች እና ግዴታዎች ያስተዳድራሉ ፡፡", "heading": "ተፈጻሚ ህግ:" }, - "body": "በቀይ መስቀል ለእርስዎ የተሰጠውን የምዝገባ ቁልፍ ምስጥራዊነት እና ደህንነት የመጠበቅ ሃላፊነት የእርስዎ ነው ፡፡ ከጊዜ ወደጊዜ ለማዘመን እና መረጃዎችን (Data Feeds) መቀበልን ለመቀጠል ከኤ.ፒ.አይ ጋር ተጓዳኝነትን ማስቀጠል የእርስዎ ሃላፊነት ነው፡፡ ቀይ መስቀል የዘመኑ የኤፒአይ ስሪቶችን እና መረጃዎችን በራሱ ምርጫ ሊለቅ ይችላል። አዲስ ስሪቶች ከቀደሙት ትግበራዎች ጋር ላይጣጣሙ ይችላሉ ፤ እንዲሁም በጣም በቅርብ ጊዜ የተሻሻለውን የመረጃ መቀበያ ስሪት በማንኛውም ጊዜ ለመጠቀም ተስማምተዋል።\n\nማንኛውንም የኤ.ፒ.አይ ክፍልን ወይም ማንኛውንም የቀይ መስቀልን ሶፍትዌር ላለማሻሻል ፣ ላለማሰራጨት ፣ ላለመበተን ፣ ላለማቀናጀት ወይም ላለመቀልበስ ተስማምተዋል ፡፡\n\nኤ.ፒ.አይ.ውን ወይም የመረጃ መቀበያውን ቀይ መስቀል በወሰነው ውሳኔ መሠረት ከተመጣጣኝ የጥያቄ መጠን በላይ ወይም ከመጠን በላይ ወይም አላግባብ ላይጠቀሙ ይችላሉ::\n\nበቀይ መስቀል ብቸኛ ውሳኔ መሠረት ኤ.ፒ.አይ. ወይም የመረጃ መቀበያዎችን በሕገ-ወጥ ፣ በተሳሳተ ፣ በቸልተኛ ፣ በተንኮል-አዘል መንገድ ቀይ መስቀል፣ የአገልግሎት አቅራቢዎች ፣ የይዘት አቅራቢዎች ወይም ሌላ ሰው ላይ ጉዳት ለማድረስ በማሰብ ወይም በሚጎዳ መንገድ መጠቀም አይችሉም ፡፡\n\nቀይ መስቀል የኤ.ፒ.አይ. እና የመረጃ መቀበያዎች አጠቃቀምዎን ሊከታተል ይችላል። በእንደዚህ ዓይነት ቁጥጥር ውስጥ ጣልቃ ለመግባት ማንኛውንም ቴክኒካዊ ዘዴዎችን አይጠቀሙም ፤ እንዲሁም ቀይ መስቀል ማንኛውንም እንደዚህ ዓይነቱን ጣልቃ ገብነት ለማሸነፍ ቴክኒካዊ መንገዶችን ሊጠቀም ይችላል ፡፡\n\nየዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶች (Prepare, Respond, and Recover Messages) መቅረብ ያለባቸው በወቅቱ የክስተት ማንቂያ (Event Alert) አንገብጋቢ መቼት መሰረት ወቅታዊ ወይም የዘመኑ ሲሆኑ ብቻ ነው ፤ እንዲሁም ግለሰብ የዝግጅት ፣ እያንዳንዳቸውን የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶች (Prepare, Respond, and Recover Messages) በቀይ መስቀል የሚወጡ የመረጃ መቀበያዎች እና\/ወይም ተያያዥ የክስተት ማንቂያዎች (Event Alert) ወቅታዊ በሚሆኑበት ወቅት ማዘመን አለብዎት፡፡\n\nእያንዳንዱ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክት (Prepare, Respond, and Recover Message) መገናኘት ያለበት ለወጣበት መልክአ-ምድር ብቻ ነው:: የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶች እንደ አሜሪካን ቀይ መስቀል ወይም ሌላ የቀይ መስቀልን ወይም የቀይ ጨረቃ ብሔራዊ ማኅበረሰብን ወይም ድርጅትን እንደ ማጣቀሻ ከተጠቀሙ (እያንዳንዱ “ምንጭ ማጣቀሻ”) ለመረጃ መቀበያዎች በተዘጋጀው ፎርም ላይ ከእያንዳንዳቸው የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶች ጋር የተገናኘውን ምንጭ ማጣቀሻ መግለፅ አለብዎት፡፡ ማንኛውንም ምንጭ ማጣቀሻ መጠቀም አይቻልም::\n\nየመረጃ መቀበያዎችን ፣ የክስተት ማንቂያዎችን እና \/ ወይም የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶችን ወደ ሌላ ቋንቋ መተርጎም፣ መጠቀም፣ አርትኦት ማድረግ ወይም መከለስ ወይም የመረጃ መቀበያዎችን ፣ የክስተት ማንቂያዎችን እና \/ ወይም የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶችን ትርጉም መቀየር አይችሉም ፡፡\n\nየመረጃ መቀበያዎችን በርስዎ ሀላፊነት ወይም ቁጥጥር ውስጥ መሆናቸውን ማረጋገጥ አለብዎት::\n\nየክስተት ማንቂያዎችን እና የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶችን ማንኛውንም ማስታወቂያ ወይም ስፖንሰርሺፕን አካትቶ ለዋና ተጠቃሚዎች እንዲደርሱ ማድረግ አይችሉም ፡፡\n\nበጠቅላላው ወይም በከፊል የመረጃ መቀበያዎችን መዝገብ መያዝ አይችሉም ፡፡", + "body": "በቀይ መስቀል ለእርስዎ የተሰጠውን የምዝገባ ቁልፍ ምስጥራዊነት እና ደህንነት የመጠበቅ ሃላፊነት የእርስዎ ነው ፡፡ ከጊዜ ወደጊዜ ለማዘመን እና መረጃዎችን (Data Feeds) መቀበልን ለመቀጠል ከኤ.ፒ.አይ ጋር ተጓዳኝነትን ማስቀጠል የእርስዎ ሃላፊነት ነው፡፡ ቀይ መስቀል የዘመኑ የኤፒአይ ስሪቶችን እና መረጃዎችን በራሱ ምርጫ ሊለቅ ይችላል። አዲስ ስሪቶች ከቀደሙት ትግበራዎች ጋር ላይጣጣሙ ይችላሉ ፤ እንዲሁም በጣም በቅርብ ጊዜ የተሻሻለውን የመረጃ መቀበያ ስሪት በማንኛውም ጊዜ ለመጠቀም ተስማምተዋል።\n\nማንኛውንም የኤ.ፒ.አይ ክፍልን ወይም ማንኛውንም የቀይ መስቀልን ሶፍትዌር ላለማሻሻል ፣ ላለማሰራጨት ፣ ላለመበተን ፣ ላለማቀናጀት ወይም ላለመቀልበስ ተስማምተዋል ፡፡\n\nኤ.ፒ.አይ.ውን ወይም የመረጃ መቀበያውን ቀይ መስቀል በወሰነው ውሳኔ መሠረት ከተመጣጣኝ የጥያቄ መጠን በላይ ወይም ከመጠን በላይ ወይም አላግባብ ላይጠቀሙ ይችላሉ::\n\nበቀይ መስቀል ብቸኛ ውሳኔ መሠረት ኤ.ፒ.አይ. ወይም የመረጃ መቀበያዎችን በሕገ-ወጥ ፣ በተሳሳተ ፣ በቸልተኛ ፣ በተንኮል-አዘል መንገድ ቀይ መስቀል፣ የአገልግሎት አቅራቢዎች ፣ የይዘት አቅራቢዎች ወይም ሌላ ሰው ላይ ጉዳት ለማድረስ በማሰብ ወይም በሚጎዳ መንገድ መጠቀም አይችሉም ፡፡\n\nቀይ መስቀል የኤ.ፒ.አይ. እና የመረጃ መቀበያዎች አጠቃቀምዎን ሊከታተል ይችላል። በእንደዚህ ዓይነት ቁጥጥር ውስጥ ጣልቃ ለመግባት ማንኛውንም ቴክኒካዊ ዘዴዎችን አይጠቀሙም ፤ እንዲሁም ቀይ መስቀል ማንኛውንም እንደዚህ ዓይነቱን ጣልቃ ገብነት ለማሸነፍ ቴክኒካዊ መንገዶችን ሊጠቀም ይችላል ፡፡\n\nየዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶች (Prepare, Respond, and Recover Messages) መቅረብ ያለባቸው በወቅቱ የክስተት ማንቂያ (Event Alert) አንገብጋቢ መቼት መሰረት ወቅታዊ ወይም የዘመኑ ሲሆኑ ብቻ ነው ፤ እንዲሁም ግለሰብ የዝግጅት ፣ እያንዳንዳቸውን የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶች (Prepare, Respond, and Recover Messages) በቀይ መስቀል የሚወጡ የመረጃ መቀበያዎች እና/ወይም ተያያዥ የክስተት ማንቂያዎች (Event Alert) ወቅታዊ በሚሆኑበት ወቅት ማዘመን አለብዎት፡፡\n\nእያንዳንዱ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክት (Prepare, Respond, and Recover Message) መገናኘት ያለበት ለወጣበት መልክአ-ምድር ብቻ ነው:: የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶች እንደ አሜሪካን ቀይ መስቀል ወይም ሌላ የቀይ መስቀልን ወይም የቀይ ጨረቃ ብሔራዊ ማኅበረሰብን ወይም ድርጅትን እንደ ማጣቀሻ ከተጠቀሙ (እያንዳንዱ “ምንጭ ማጣቀሻ”) ለመረጃ መቀበያዎች በተዘጋጀው ፎርም ላይ ከእያንዳንዳቸው የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶች ጋር የተገናኘውን ምንጭ ማጣቀሻ መግለፅ አለብዎት፡፡ ማንኛውንም ምንጭ ማጣቀሻ መጠቀም አይቻልም::\n\nየመረጃ መቀበያዎችን ፣ የክስተት ማንቂያዎችን እና / ወይም የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶችን ወደ ሌላ ቋንቋ መተርጎም፣ መጠቀም፣ አርትኦት ማድረግ ወይም መከለስ ወይም የመረጃ መቀበያዎችን ፣ የክስተት ማንቂያዎችን እና / ወይም የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶችን ትርጉም መቀየር አይችሉም ፡፡\n\nየመረጃ መቀበያዎችን በርስዎ ሀላፊነት ወይም ቁጥጥር ውስጥ መሆናቸውን ማረጋገጥ አለብዎት::\n\nየክስተት ማንቂያዎችን እና የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶችን ማንኛውንም ማስታወቂያ ወይም ስፖንሰርሺፕን አካትቶ ለዋና ተጠቃሚዎች እንዲደርሱ ማድረግ አይችሉም ፡፡\n\nበጠቅላላው ወይም በከፊል የመረጃ መቀበያዎችን መዝገብ መያዝ አይችሉም ፡፡", "contact": "ኤ.ፒ.አይ.ን በተመለከተ ማንኛውም ጥያቄ ካለዎት እባክዎን ቀይ መስቀልን በ {0} ያነጋግሩ ፡፡", - "disclaimer": "ኤ.ፒ.አይ እና የመረጃ መቀበያዎች ለመረጃ እና ለትምህርታዊ ዓላማዎች ብቻ በ 'እንደነበረው' እና 'በተገኘው' መሠረት የተሰጡ ናቸው። ቀይ መስቀል በግልጽም ሆነ በተዘዋዋሪ ምንም ዓይነት ውክልና ወይም ዋስትና አይሰጥም ፡፡ በተዘዋዋሪ የተመለከቱ የመሸጥ ዋስትናዎች እና ብቃት ማረጋገጫዎችን ጨምሮ ቀይ መስቀል ሁሉንም ዋስትናዎች አይቀበልም፡፡ በቀጥታ፣ በተዘዋዋሪ፣ በአጋጣሚ፣ በቅጣት እና በተከታይነት የሚፈጠሩ ጉዳቶችን ጨምሮ ኤ.ፒ.አይን፣ የመረጃ መቀበያዎችን ፣ የክስተት ማንቂያዎችን እና \/ ወይም የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶችን በመጠቀም ወቅት ለሚደርሱ ጉዳቶች ቀይ መስቀል እና ሰራተኞቹ ፣ መኮንኖች ፣ ገዥዎች እና ወኪሎች እንዲሁም ፈቃድ ሰጪዎች ተጠያቂ አይሆኑም ፡፡\n\nቀይ መስቀል ኤ.ፒ.አይን፣ የመረጃ መቀበያዎችን ፣ የክስተት ማንቂያዎችን እና \/ ወይም የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶችን ቅደም ተከተል ፣ ትክክለኛነት ፣ እውነተኝነት ወይም ሙሉነት ዋስትና አይሰጥም እንዲሁም በምንም መንገድ ለእርስዎ ወይም ለዋና ተጠቃሚዎችዎ ወይም ለማንኛውም ሶስተኛ አካል ማንኛውንም መዘግየቶች ፣ ጉድለቶች፣ ስህተቶች ወይም ግድፈቶችን ጨምሮ ያለምንም ገደብ ቀጥሎ ያሉትን ኤ.ፒ.አይ፣ የመረጃ መቀበያዎች ፣ የክስተት ማንቂያዎችን እና \/ ወይም የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶች በተመለከተ ተጠያቂ አይሆንም፡፡", + "disclaimer": "ኤ.ፒ.አይ እና የመረጃ መቀበያዎች ለመረጃ እና ለትምህርታዊ ዓላማዎች ብቻ በ 'እንደነበረው' እና 'በተገኘው' መሠረት የተሰጡ ናቸው። ቀይ መስቀል በግልጽም ሆነ በተዘዋዋሪ ምንም ዓይነት ውክልና ወይም ዋስትና አይሰጥም ፡፡ በተዘዋዋሪ የተመለከቱ የመሸጥ ዋስትናዎች እና ብቃት ማረጋገጫዎችን ጨምሮ ቀይ መስቀል ሁሉንም ዋስትናዎች አይቀበልም፡፡ በቀጥታ፣ በተዘዋዋሪ፣ በአጋጣሚ፣ በቅጣት እና በተከታይነት የሚፈጠሩ ጉዳቶችን ጨምሮ ኤ.ፒ.አይን፣ የመረጃ መቀበያዎችን ፣ የክስተት ማንቂያዎችን እና / ወይም የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶችን በመጠቀም ወቅት ለሚደርሱ ጉዳቶች ቀይ መስቀል እና ሰራተኞቹ ፣ መኮንኖች ፣ ገዥዎች እና ወኪሎች እንዲሁም ፈቃድ ሰጪዎች ተጠያቂ አይሆኑም ፡፡\n\nቀይ መስቀል ኤ.ፒ.አይን፣ የመረጃ መቀበያዎችን ፣ የክስተት ማንቂያዎችን እና / ወይም የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶችን ቅደም ተከተል ፣ ትክክለኛነት ፣ እውነተኝነት ወይም ሙሉነት ዋስትና አይሰጥም እንዲሁም በምንም መንገድ ለእርስዎ ወይም ለዋና ተጠቃሚዎችዎ ወይም ለማንኛውም ሶስተኛ አካል ማንኛውንም መዘግየቶች ፣ ጉድለቶች፣ ስህተቶች ወይም ግድፈቶችን ጨምሮ ያለምንም ገደብ ቀጥሎ ያሉትን ኤ.ፒ.አይ፣ የመረጃ መቀበያዎች ፣ የክስተት ማንቂያዎችን እና / ወይም የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶች በተመለከተ ተጠያቂ አይሆንም፡፡", "entire_agreement": { "body": "የኤ.ፒ.አይ. ውሎች በዚህ ጉዳይ ላይ በቀይ መስቀል እና በርስዎ መካከል የተደረገ የተሟላ እና ብቸኛ ስምምነትን የሚያካትቱ ሲሆን ከዚህ በፊት የተደረጉ የቃል ወይም የጽሑፍ ግንዛቤዎችን ፣ ግንኙነቶችን ወይም በዚህ ውስጥ ያልተካተቱ ስምምነቶችን ሁሉ ይተካሉ ፡፡ ቀይ መስቀል ይህንን ስምምነት በማንኛውም ጊዜ የማሻሻል ወይም የመሻር መብቱ የተጠበቀ ነው ፡፡", "heading": "አጠቃላይ ስምምነት:" @@ -867,11 +870,12 @@ "heading": "የኤ.ፒ.አይ. ዋና ተጠቃሚ ፈቃድ አሰጣጥ ስምምነት", "intro": "እስማማለሁ: አገልግሎቱን በመጠቀም ወይም የቀረበው ሣጥን ላይ ምልክት በማድረግ ተጠቃሚው በዚህ ስምምነት እንዲታሰር እየተስማማ ነው።\n\nኤ.ፒ.አይ.ው እርስዎ (“እርስዎ”) በቀይ መስቀል በኩል የሚቀርቡ የዓለም የአየር ሁኔታ እና የአደጋ ክስተት ማስጠንቀቂያ እና የእይታ ማስታወቂያዎችን (“የክስተት ማንቂያዎች”) እና ተግባራዊ እና አውዳዊ መልእክቶችን ጨምሮ ለአካባቢያዊ አደጋዎች በአደጋው አይነት እና አስቸኳይነት መሰረት መዘጋጀትን ጨምሮ የመረጃ መቀብያዎችን (የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶች እና በአጠቃላይ የክስተት ማንቂያዎችን እና የመረጃ መቀብያዎችን) ሰርስረው እንዲያወጡ የሚያስችልዎ መሳሪያ ነው፡፡ ተዘጋጅ፣ መልስ እና እንደገና አግኝ የሚሉ መልእክቶች ከዝግጅት ማንቂያዎች ወይም ሌላ ማስጠንቀቂያ ጋር እና በእርስዎ መተግበሪያ ውስጥ ከአየር ንብረት እና የአደጋ ክስተት ጋር ተያያዥ ከሆኑ የማሳሰቢያ ማስታዎሻዎች ጋር አብረው እንዲመጡ የሚታሰቡ ናቸው። የእርስዎ መረጃ አቅርቦት በኤፒአይ ቃላት የሚመራ ነው።", "license_limitations": { - "body": "በየጊዜው ከሚታደሰው ከኤፒ አይ ጋር ያለውን ተመጣጣኝነት እስከጠበቁ ድረስ የመረጃ አቅርቦቶችን ለኤፒአይ ውሎች ከሚሆኑ ትግበራዎች ጋር አያይዘው ሊጠቀሙ ይችላሉ። የራስዎን መተግበሪያ (“የመጨረሻ ተጠቃሚዎች”) የክስተት ማስጠንቀቂያዎች እና አግባብነት ያለው ዐውደ-ጽሑፍ የተስተካከለ መልዕክቶችን በአስቸኳይ ፣ በፍጥነት በማደስ ፣ መልሶ የማግኘት ፣ የመጠቀም ፣ የማባዛት እና የማሰራጨት ብቸኛ ያልሆነ ፣ ውስን እና ሊሻር የሚችል መብት ተሰጥቶዎታል ፡፡ በኤፒአይ ውሎች መሠረት ከእያንዳንዱ የውሂብ ምግቦች የግለሰብ የዝግጅት ማስጠንቀቂያዎች ቅንብር። ኤፒአይን መጠቀም የሚችሉት ከንግድ ጋር ያልተያያዙ በኤፒአይን ውል መሠረት የመረጃ አቅርቦቶችን ለማቃለል ብቻ ነው። የመረጃ አቅርቦቶች፣ የዝግጅት ማስጠንቀቂያዎችን እና \/ ወይም ለማዘጋጀት ፣ ምላሽ ለመስጠት እና መልዕክቶችን ያለገደብ ጨምሮ ፣ መልሶ በመሸጥ ፣ እነሱን ለመድረስ ክፍያ በመጠየቅ ፣ እነሱን እንደገና ለማሰራጨት ክፍያ ለመሙላት ወይም ክፍያ ለመሙላት በማንኛውም ሁኔታ ኤ.ፒ.አይ. መጠቀም አይችሉም ፡፡ በእነሱ ላይ የተመሠረተ የመነሻ ሥራዎችን ለመፍጠር ፡፡ የኤፒአይ ኀላፊነት፣ ባለቤትነት፣ መብትና ትርፍ የቀይ መስቀልና ፈቃድ የሰጡት አካላት ነው። ይህም የሚያካትተው ዝግጅትን፣ ምላሽን፣ የጠፉ መልእክቶችን የመመለስን፣ የኹናት ማስጠንቀቂያዎችን፣ የመረጃ አቅርቦትንና የምንጭ ጣቀሻዎችን ነው። በግልጽ ያልተሰጡ መብቶች በሙሉ ተጠብቀዋል ፡፡", + "body": "በየጊዜው ከሚታደሰው ከኤፒ አይ ጋር ያለውን ተመጣጣኝነት እስከጠበቁ ድረስ የመረጃ አቅርቦቶችን ለኤፒአይ ውሎች ከሚሆኑ ትግበራዎች ጋር አያይዘው ሊጠቀሙ ይችላሉ። የራስዎን መተግበሪያ (“የመጨረሻ ተጠቃሚዎች”) የክስተት ማስጠንቀቂያዎች እና አግባብነት ያለው ዐውደ-ጽሑፍ የተስተካከለ መልዕክቶችን በአስቸኳይ ፣ በፍጥነት በማደስ ፣ መልሶ የማግኘት ፣ የመጠቀም ፣ የማባዛት እና የማሰራጨት ብቸኛ ያልሆነ ፣ ውስን እና ሊሻር የሚችል መብት ተሰጥቶዎታል ፡፡ በኤፒአይ ውሎች መሠረት ከእያንዳንዱ የውሂብ ምግቦች የግለሰብ የዝግጅት ማስጠንቀቂያዎች ቅንብር። ኤፒአይን መጠቀም የሚችሉት ከንግድ ጋር ያልተያያዙ በኤፒአይን ውል መሠረት የመረጃ አቅርቦቶችን ለማቃለል ብቻ ነው። የመረጃ አቅርቦቶች፣ የዝግጅት ማስጠንቀቂያዎችን እና / ወይም ለማዘጋጀት ፣ ምላሽ ለመስጠት እና መልዕክቶችን ያለገደብ ጨምሮ ፣ መልሶ በመሸጥ ፣ እነሱን ለመድረስ ክፍያ በመጠየቅ ፣ እነሱን እንደገና ለማሰራጨት ክፍያ ለመሙላት ወይም ክፍያ ለመሙላት በማንኛውም ሁኔታ ኤ.ፒ.አይ. መጠቀም አይችሉም ፡፡ በእነሱ ላይ የተመሠረተ የመነሻ ሥራዎችን ለመፍጠር ፡፡ የኤፒአይ ኀላፊነት፣ ባለቤትነት፣ መብትና ትርፍ የቀይ መስቀልና ፈቃድ የሰጡት አካላት ነው። ይህም የሚያካትተው ዝግጅትን፣ ምላሽን፣ የጠፉ መልእክቶችን የመመለስን፣ የኹናት ማስጠንቀቂያዎችን፣ የመረጃ አቅርቦትንና የምንጭ ጣቀሻዎችን ነው። በግልጽ ያልተሰጡ መብቶች በሙሉ ተጠብቀዋል ፡፡", "heading": "ፈቃድና ገደቦች:-" }, "overview": { - "body": "ግሎባል የአደጋ ዝግጁነት ማዕከል የደህንነት መልዕክት ዳታቤዝ አገልግሎት መተግበሪያ ፕሮግራም በይነገጽ (“ኤፒአይ”) በአሜሪካ ብሔራዊ ቀይ መስቀል (“ቀይ መስቀል”) ለእርስዎ ይገኛል። ኤፒአይ የምዝገባ ቁልፍ ያስፈልገዋል። በምዝገባ ሂደት ውስጥ፣ ከዚህ በታች ያለውን ሰነድ በማውረድ እና ከታች ያለውን 'ተቀብያለሁ' የሚለውን ቁልፍ በመጫን የተጠቃሚውን ስምምነት ውሎች ከዚህ በታች ካለው ሰነድ በማውረድ እና 'ተቀብያለሁ' የሚለውን ቁልፍ በመጫን በ {0} ላይ ከሚገኘው ቀይ መስቀል ድር ጣቢያ የአገልግሎት ውል ስምምነት ውሎች ጋር (በጋራ “ኤፒአይ ውሎች”) መስማማት አለብዎት። ኤፒአይ ውሎች የእርስዎን የኤፒአይ አጠቃቀም እና በኤፒአይ በኩል የሚገኙትን ሊወርዱ የሚችሉ የኤሌክትሮኒክስ ቁሳቁሶችን ይቆጣጠራሉ። {1}", "cta": "ለመመዝገብ ይህንን ይጫኑ።" + "body": "ግሎባል የአደጋ ዝግጁነት ማዕከል የደህንነት መልዕክት ዳታቤዝ አገልግሎት መተግበሪያ ፕሮግራም በይነገጽ (“ኤፒአይ”) በአሜሪካ ብሔራዊ ቀይ መስቀል (“ቀይ መስቀል”) ለእርስዎ ይገኛል። ኤፒአይ የምዝገባ ቁልፍ ያስፈልገዋል። በምዝገባ ሂደት ውስጥ፣ ከዚህ በታች ያለውን ሰነድ በማውረድ እና ከታች ያለውን 'ተቀብያለሁ' የሚለውን ቁልፍ በመጫን የተጠቃሚውን ስምምነት ውሎች ከዚህ በታች ካለው ሰነድ በማውረድ እና 'ተቀብያለሁ' የሚለውን ቁልፍ በመጫን በ {0} ላይ ከሚገኘው ቀይ መስቀል ድር ጣቢያ የአገልግሎት ውል ስምምነት ውሎች ጋር (በጋራ “ኤፒአይ ውሎች”) መስማማት አለብዎት። ኤፒአይ ውሎች የእርስዎን የኤፒአይ አጠቃቀም እና በኤፒአይ በኩል የሚገኙትን ሊወርዱ የሚችሉ የኤሌክትሮኒክስ ቁሳቁሶችን ይቆጣጠራሉ። {1}", + "cta": "ለመመዝገብ ይህንን ይጫኑ።" }, "privacy_policy": { "body": "ኤፒአይ ውስጥ የተወሰኑ መርሃግብሮች፣ አገልግሎቶች፣ ቈሳቍስ፤ የግዢ አማራጮች፤ ዕቆች፤ ወይም መረጃዎች የሚያስፈልጋቸው እርስዎን ሊያሳውቁ የሚችሉ የግል መረጃዎች አቅርቦትን፣ ተጠቃሚነትንና ሥርጭትን መኾኑን ተረድተዋል፣ ተቀብለዋል እንዲሁም ተስማምተዋል። በዚህ መሠረት ኤ.ፒ.አይን ለመድረስ እና ለመጠቀም ከፈለጉ ኤፒአይው መጠቀሙ በ {0} በተለጠፈው የግላዊነት ፖሊሲ ውስጥ የተካተቱትን የግል መለያ መረጃዎችን የመሰብሰብና የመጠቀም ልምዶችን መቀበልን እንደሚቀበል እውቅና ይሰጡዎታል እንዲሁም ይስማማሉ ፡፡", @@ -885,17 +889,17 @@ "two": "በቀይ መስቀል ወይም በኤ.ፒ.አይ. የተቀጠሩ ማናቸውንም የማረጋገጫ ቴክኖሎጂዎች ያለ ምንም ገደብ ጨምሮ ማንኛውንም ቁልፍ ወይም የደህንነት ዘዴዎችን ለመከልከል ወይም ለማሻሻል ፡፡", "three": "ለራስዎ መለያ ለእርስዎ ከሚቀርበው በስተቀር ለቀይ መስቀል የመለያ መግቢያ ስሞችን ፣ የይለፍ ቃሎችን ወይም ሌሎች የማረጋገጫ ማስረጃዎችን ለመጠየቅ ፣ ለመሰብሰብ ፣ ለመጠየቅ ወይም በሌላ መንገድ ለማግኘት ፡፡", "four": " በቀይ መስቀል ወይም ከቀይ መስቀል ጋር ተያያዥነት ባላቸው ድርጅቶች ወይም ማኅበራት መዋሃድን፣ መደገፍን ወይም መታገዝን መግለጽ ወይም ማካተት", - "five": "ኤፒአዩን፣ የመረጃ አቅርቦቱን፣ የክስተት ማንቂያ እና\/ ወይም የመዘጋጃ፣ የምላሽ መስጫ፣ እና የመመለሻ መልእክቶችን የእርስዎ እንደሆን ወይም እንደፈጠሩት ለማስቀመጥ ወይም ለማመላከት", + "five": "ኤፒአዩን፣ የመረጃ አቅርቦቱን፣ የክስተት ማንቂያ እና/ ወይም የመዘጋጃ፣ የምላሽ መስጫ፣ እና የመመለሻ መልእክቶችን የእርስዎ እንደሆን ወይም እንደፈጠሩት ለማስቀመጥ ወይም ለማመላከት", "six": "ለጒዳት የሚያጋልጥ ማንኛውንም ዐይነት ቫይረስ፣ እንቅፋት፣ ትሮጃን ሆርስም ሆነ ሌላ ለማስተላለፍ" } }, - "reserve_rights": "ቀይ መስቀል ኤፒአይ እና የመረጃ ምግቦች ሙሉ በሙሉ ወይም በከፊል ለጊዜው ወይም በቋሚነት በማንኛውም ጊዜ ያለ ቅድመ ማስጠንቀቂያ የመቀየር እና \/ ወይም ከአሁን በኋላ የመቀበል መብቱ የተጠበቀ ነው ፡፡ ጥርጣሬን ለማስቀረት የቀይ መስቀል ኤ.ፒ.አይ. ወይም የውሂብ ምግቦች ለእርስዎ እንዲገኙ በዚህ ውስጥ የሚያስገድድ አንዳችም ነገር የለም ፣ እናም ማንኛውም መዳረሻ በቀይ መስቀል ብቸኛ እና በፍፁም ውሳኔ ውስጥ መሆኑን ይስማማሉ እና ይቀበላሉ ፡፡", + "reserve_rights": "ቀይ መስቀል ኤፒአይ እና የመረጃ ምግቦች ሙሉ በሙሉ ወይም በከፊል ለጊዜው ወይም በቋሚነት በማንኛውም ጊዜ ያለ ቅድመ ማስጠንቀቂያ የመቀየር እና / ወይም ከአሁን በኋላ የመቀበል መብቱ የተጠበቀ ነው ፡፡ ጥርጣሬን ለማስቀረት የቀይ መስቀል ኤ.ፒ.አይ. ወይም የውሂብ ምግቦች ለእርስዎ እንዲገኙ በዚህ ውስጥ የሚያስገድድ አንዳችም ነገር የለም ፣ እናም ማንኛውም መዳረሻ በቀይ መስቀል ብቸኛ እና በፍፁም ውሳኔ ውስጥ መሆኑን ይስማማሉ እና ይቀበላሉ ፡፡", "severability": { "body": "የኤ.ፒ.አይ. ውሎች ማንኛውም ቃል ወይም አቅርቦት ዋጋ ቢስነት የሌላ ማንኛውም አቅርቦት ትክክለኛነት ላይ ተጽዕኖ አይኖረውም ፡፡", "heading": "ሊሰበር የሚችልና የሚተው\n" }, "suspension": { - "body": "ቀይ መስቀሉ በኤፒአይ ውሎች ላይ በተጠቀሰው መሠረት ኤፒአይ ወይም የውሂብ ምግብ ባልተፈቀደ አጠቃቀም ላይ የተሰማሩ እንደሆኑ ወይም ኤ.ፒ.አይ ወይም የውሂብ ምግብን እየተጠቀሙ መሆኑን የሚወስን ከሆነ በቀይ መስቀል ብቸኛ ምርጫው መዳረሻዎን የማገድ ወይም የማቋረጥ መብቱ የተጠበቀ ነው ፡፡ በማንኛውም ሰው ወይም በቀይ መስቀል አውታረመረቦች ደህንነት እና \/ ወይም ደህንነት ላይ አደጋ በሚያደርስ \/ በሚጎዳ እንቅስቃሴ ውስጥ ፡፡", + "body": "ቀይ መስቀሉ በኤፒአይ ውሎች ላይ በተጠቀሰው መሠረት ኤፒአይ ወይም የውሂብ ምግብ ባልተፈቀደ አጠቃቀም ላይ የተሰማሩ እንደሆኑ ወይም ኤ.ፒ.አይ ወይም የውሂብ ምግብን እየተጠቀሙ መሆኑን የሚወስን ከሆነ በቀይ መስቀል ብቸኛ ምርጫው መዳረሻዎን የማገድ ወይም የማቋረጥ መብቱ የተጠበቀ ነው ፡፡ በማንኛውም ሰው ወይም በቀይ መስቀል አውታረመረቦች ደህንነት እና / ወይም ደህንነት ላይ አደጋ በሚያደርስ / በሚጎዳ እንቅስቃሴ ውስጥ ፡፡", "heading": "እገዳ ወይም ማቋረጥ" } }, diff --git a/resources/lang/ar.json b/resources/lang/ar.json index 46fd668..5e7aced 100644 --- a/resources/lang/ar.json +++ b/resources/lang/ar.json @@ -449,9 +449,9 @@ "immediate": "فوري", "warning": "تحذير", "anticipated": "متوقع", - "assess_and_plan":"تقييم وتخطيط", - "mitigate_risks":"تخفيف المخاطرة", - "prepare_to_respond":"الاستعداد للاستجابة", + "assess_and_plan": "تقييم وتخطيط", + "mitigate_risks": "تخفيف المخاطرة", + "prepare_to_respond": "الاستعداد للاستجابة", "recover": "التعافي" }, "content": { @@ -594,7 +594,8 @@ "desc_tool": "قدم وصفًا موجزًا عن الخطر والرسائل. يجب أن يكون هذا من 1-3 جمل.", "title_tool": "على سبيل المثال: رسائل السلامة للفيضانات", "safety_tool": "هذا إجراء ذو أولوية يجب على الشخص اتخاذه للحفاظ على سلامته. يجب أن تكون الرسالة موجهة نحو العمل وموجزة وأقل من 50 حرفًا.", - "supporting_tool": "يوفر هذا مزيدًا من التفاصيل لدعم الإجراء الرئيسي ذي الأولوية. يجب أن تكون الرسالة موجهة نحو العمل وموجزة." + "supporting_tool": "يوفر هذا مزيدًا من التفاصيل لدعم الإجراء الرئيسي ذي الأولوية. يجب أن تكون الرسالة موجهة نحو العمل وموجزة.", + "mitigate_risk": "تخفيف المخاطرة" }, "message_editor": { "title": "محرر الإسناد", diff --git a/resources/lang/bn.json b/resources/lang/bn.json index 4efe0b2..b872f5a 100644 --- a/resources/lang/bn.json +++ b/resources/lang/bn.json @@ -197,13 +197,15 @@ "steps": { "one": { "heading": "১ম ধাপ - সাইন আপ", - "body": "নিরাপত্তা বার্তা ডেটাবেস API থেকে ডেটা ব্যবহার শুরু করতে, প্রথমে নিরাপত্তা বার্তা ডেটাবেস পোর্টালে {0} করুন।\n\nআপনি আপনার ফেসবুক ও গুগল অ্যাকাউন্ট অথবা একটি ইমেল ঠিকানা ব্যবহার করে একটি অ্যাকাউন্ট তৈরি করতে পারেন।", "create_account_alt": "অ্যাকাউন্ট তৈরি করুন", + "body": "নিরাপত্তা বার্তা ডেটাবেস API থেকে ডেটা ব্যবহার শুরু করতে, প্রথমে নিরাপত্তা বার্তা ডেটাবেস পোর্টালে {0} করুন।\n\nআপনি আপনার ফেসবুক ও গুগল অ্যাকাউন্ট অথবা একটি ইমেল ঠিকানা ব্যবহার করে একটি অ্যাকাউন্ট তৈরি করতে পারেন।", + "create_account_alt": "অ্যাকাউন্ট তৈরি করুন", "existing_account": "আপনার যদি ইতিমধ্যে একটি অ্যাকাউন্ট থাকে, তবে অনুগ্রহ করে {0} দিন।", "login_cta": "লগ ইন করুন", "sign_up_cta": "সাইন আপ করুন" }, "two": { - "body": "API ব্যবহার করতে, আপনাকে নিরাপত্তা বার্তা ডেটাবেস পোর্টালে একটি অ্যাপ্লিকেশন তৈরি করতে হবে। আপনি কী তৈরি করছেন সে সম্পর্কে আমাদের কিছু বলুন।", "create_app_alt": "অ্যাপ তৈরি করুন", + "body": "API ব্যবহার করতে, আপনাকে নিরাপত্তা বার্তা ডেটাবেস পোর্টালে একটি অ্যাপ্লিকেশন তৈরি করতে হবে। আপনি কী তৈরি করছেন সে সম্পর্কে আমাদের কিছু বলুন।", + "create_app_alt": "অ্যাপ তৈরি করুন", "heading": "২য় ধাপ- অ্যাপ তৈরি করুন" }, "three": { @@ -214,7 +216,8 @@ }, "four": { "api_docs_cta": "এপিআই নথিকরণ", - "body": "নিরাপত্তা বার্তা ডেটাবেস API HTTP(S) ব্যবহার করে এবং প্রকাশিত ডেটা পাওয়ার জন্য RESTful এন্ডপয়েন্ট সরবরাহ করে।\n\nপ্রতিটি অনুরোধ পূর্ববর্তী ধাপে তৈরি API কী ব্যবহার করে প্রমাণীকরণ করা আবশ্যক।", "example_title": "অনুরোধের উদাহরণ", + "body": "নিরাপত্তা বার্তা ডেটাবেস API HTTP(S) ব্যবহার করে এবং প্রকাশিত ডেটা পাওয়ার জন্য RESTful এন্ডপয়েন্ট সরবরাহ করে।\n\nপ্রতিটি অনুরোধ পূর্ববর্তী ধাপে তৈরি API কী ব্যবহার করে প্রমাণীকরণ করা আবশ্যক।", + "example_title": "অনুরোধের উদাহরণ", "heading": "ধাপ ৪- অনুরোধ করুন", "moreInfo": "এপিআই -এর এন্ড পয়েন্টগুলোর উপর অতিরিক্ত তথ্য পেতে, {0} দেখুন।" } @@ -438,9 +441,9 @@ "immediate": "তাৎক্ষণিক", "warning": "সতর্কীকরণ", "anticipated": "প্রত্যাশিত", - "assess_and_plan":"মূল্যায়ন এবং পরিকল্পনা", - "mitigate_risks":"ঝুঁকি হ্রাস করুন", - "prepare_to_respond":"সাড়া দিতে প্রস্তুত", + "assess_and_plan": "মূল্যায়ন এবং পরিকল্পনা", + "mitigate_risks": "ঝুঁকি হ্রাস করুন", + "prepare_to_respond": "সাড়া দিতে প্রস্তুত", "recover": "পুনরুদ্ধার" }, "content": { @@ -523,7 +526,7 @@ "seasonalForecast_extra": "ঋতু ভিত্তিক পূর্বাভাস হল একটি বিপজ্জনক ঘটনার পূর্বাভাসের বিবৃতি। গৃহীত পদক্ষেপগুলো হচ্ছে পরিবারকে সুরক্ষা করার জন্য সম্ভাব্য ঝুঁকিগুলো ধারণা করা এবং ওগুলো কমাতে পরিকল্পিতভাবে কাজ করা।", "watch": "পর্যবেক্ষণ করা", "watch_help": "সাড়া দিতে প্রস্তুত", - "watch_extra": "যখন একটি বিপজ্জনক ঘটনার ঝুঁকি অত্যন্ত প্রবল হয়ে ওঠে তখন একটি পর্যবেক্ষন জারি করা হয় কিন্তু এর উপস্থিতি, অবস্থান এবং\/বা সময় তখন পর্যন্ত অনুপস্থিত থাকে। এর উদ্দেশ্য হল প্রতিরক্ষামূলক কাজ এবং প্রস্তুতির জন্য পর্যাপ্ত সময় দেয়া।", + "watch_extra": "যখন একটি বিপজ্জনক ঘটনার ঝুঁকি অত্যন্ত প্রবল হয়ে ওঠে তখন একটি পর্যবেক্ষন জারি করা হয় কিন্তু এর উপস্থিতি, অবস্থান এবং/বা সময় তখন পর্যন্ত অনুপস্থিত থাকে। এর উদ্দেশ্য হল প্রতিরক্ষামূলক কাজ এবং প্রস্তুতির জন্য পর্যাপ্ত সময় দেয়া।", "warning": "সতর্কীকরণ", "warning_help": "সাড়া দিতে প্রস্তুত", "warning_extra": "যখন কোন বিপজ্জনক ঘটনা ঘটে, ঘটা আসন্ন হয় বা ঘটে যাওয়ার খুব বেশি সম্ভাবনা থাকে তখন একটি সতর্কতা জারি করা হয়। এর অর্থ হল পরিস্থিতি জীবন বা সম্পত্তির জন্য হুমকিস্বরূপ। এই বিপদের সম্মুখে মানুষদের প্রতিরক্ষামূলক পদক্ষেপ নেওয়া দরকার।", @@ -550,7 +553,8 @@ "disaster_risk_reduction": "দুর্যোগ ঝুঁকি হ্রাস", "disaster_risk_reduction_description": "পিএপিই থেকে মূল নিরাপত্তা বার্তা", "recovery": "পুনরুদ্ধার", - "recovery_description": "পুনরুদ্ধার কার্যক্রমের জন্য মূল নিরাপত্তা" + "recovery_description": "পুনরুদ্ধার কার্যক্রমের জন্য মূল নিরাপত্তা", + "mitigate_risk": "ঝুঁকি হ্রাস করুন" }, "message_editor": { "title": "অ্যাট্রিবিউশন সম্পাদক", @@ -610,7 +614,7 @@ "bad_request_error_codes": { "30001": "কলামের শিরোনামগুলো টেমপ্লেটের সাথে মিলছে না", "30002": "অ‍্যাট্রিবিউশনের নাম, বার্তা অথবা URL অনুপস্থিত", - "30003": "অকার্যকর অ‍্যাট্রিবিউশন URL - অনুগ্রহ করে নিশ্চিত করুন যে প্রোটোকল উপস্থিত, যেমন https: \/\/", + "30003": "অকার্যকর অ‍্যাট্রিবিউশন URL - অনুগ্রহ করে নিশ্চিত করুন যে প্রোটোকল উপস্থিত, যেমন https: //", "40001": "অবৈধ দেশ কোড প্রদান করা হয়েছে", "40002": "যে সমাজ নির্বাচিত করা হয়েছে তা নির্বাচিত ফাইলের মধ্যে থাকা সমাজের সঙ্গে মিলছে না", "40003": "যে তারিখে নির্বাচিত ফাইলটি এক্সপোর্ট করা হয়েছে তা ত্রুটিযুক্ত এবং ইমপোর্ট সম্পূর্ণ করা যায় নি" @@ -681,7 +685,7 @@ }, "landing": { "strapline": "নিরাপত্তা বার্তা ডেটাবেস পরিষেবা", - "strapline_part_2": "গ্লোবাল রেড ক্রস \/ রেড ক্রিসেন্ট এর মূল সুরক্ষা বার্তা", + "strapline_part_2": "গ্লোবাল রেড ক্রস / রেড ক্রিসেন্ট এর মূল সুরক্ষা বার্তা", "head_1": "IFRC নিরাপত্তা", "head_2": "বার্তা ডেটাবেস", "head_text_1": "IFRC জনসচেতনতা এবং এর উপর ভিত্তি করে নিরাপত্তা বার্তা", @@ -736,7 +740,7 @@ "fake_alert_heading": "চরম ঠান্ডার জন্য সতর্কীকরণ", "fake_alert_description": "Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est.", "fake_alert_time": "১ ঘণ্টা পূর্বে", - "fake_alert_time_exact": "০৫\/০২\/১৮ তারিখে ০৫:১৫ কেন্দ্রীয় সময়", + "fake_alert_time_exact": "০৫/০২/১৮ তারিখে ০৫:১৫ কেন্দ্রীয় সময়", "use_cases": { "heading": "আরও জানুন", "first_heading": "এটা কিভাবে কাজ করে", @@ -777,7 +781,7 @@ }, "data_preview": { "heading": "নিরাপত্তা বার্তা", - "sub_heading": "বিশ্বব্যাপী রেড ক্রস \/ রেড ক্রিসেন্ট ন্যাশনাল সোসাইটির কাছ থেকে কী অ‍্যাকশন মেসেজগুলো দেখতে সাইন আপ করুন" + "sub_heading": "বিশ্বব্যাপী রেড ক্রস / রেড ক্রিসেন্ট ন্যাশনাল সোসাইটির কাছ থেকে কী অ‍্যাকশন মেসেজগুলো দেখতে সাইন আপ করুন" }, "footer": { "terms_conditions": "নিয়ম ও শর্তাবলী", @@ -833,10 +837,10 @@ "industries": { "media": "মিডিয়া", "emergency": "জরুরি ব্যবস্থাপনা", - "non_profit": "অলাভজনক\/এনজিও", + "non_profit": "অলাভজনক/এনজিও", "humanitarian": "মানবিক সাহায্য সংস্থা", - "red_cross": "রেড ক্রস \/ রেড ক্রিসেন্ট", - "education": "শিক্ষা\/একাডেমিয়া", + "red_cross": "রেড ক্রস / রেড ক্রিসেন্ট", + "education": "শিক্ষা/একাডেমিয়া", "gov": "সরকারী সংস্থা", "other": "অন্যান্য" }, @@ -851,9 +855,9 @@ "body": "ডিসট্রিক্ট অফ কলম্বিয়ার আইন গুলির দ্বারা কোনও নীতি কার্যকর না করে এই চুক্তির অধীনে থাকা সমস্ত অধিকার এবং বাধ্যবাধকতা পরিচালনা করবে।", "heading": "প্রযোজ্য আইন:" }, - "body": "রেড ক্রস প্রদত্ত রেজিষ্ট্রেশন কী-এর গোপনীয়তা এবং সুরক্ষা বজায় রাখার জন্য আপনি দায় বদ্ধ থাকবেন। ডেটা ফিড গুলি গ্রহণ করা চালিয়ে যাওয়ার জন্য মাঝে মাঝে আপডেট হিসাবে API-এর সাথে সামঞ্জস্য বজায় রাখার জন্য আপনি দায়বদ্ধ থাকবেন। রেড ক্রস তার নিজস্ব বিবেচনার ভিত্তিতে এপিআই এবং ডেটা ফিড গুলির আপডেট সংস্করণ প্রকাশ করতে পারে। নতুন সংস্করণগুলো পূর্ববর্তী বাস্তবায়নের সাথে সামঞ্জস্যপূর্ণ নাও হতে পারে এবং আপনি সর্বদা ডেটা ফিড গুলির সর্বশেষ আপডেট হওয়া সংস্করণটি ব্যবহার করতে সম্মত থাকবেন।\n\nআপনাকে সম্মত হতে হবে যে এপিআই বা রেড ক্রসের কোনও সফটওয়্যারের কোনও অংশ সংশোধন, বিতরণ, ডি কম্পাইল, বিচ্ছিন্ন করা, বা রিভার্স ইনজিনিয়ারিং করা যাবে না।\n\nআপনি API বা ডেটা ফিড গুলি এমনভাবে ব্যবহার করতে পারবেন না যা যুক্তিসঙ্গত অনুরোধের পরিমাণকে ছাড়িয়ে যায় বা অতিরিক্ত বা আপত্তিজনক ব্যবহার করে, যা রেড ক্রসের নিজস্ব বিবেচনার ভিত্তিতে নির্ধারিত।\n\nআপনি এপিআই অথবা ডেটা ফিড গুলি এমনভাবে ব্যবহার করতে পারবেন না যা বেআইনী, বিভ্রান্তিকর, অবহেলাপূর্ণ, বিদ্বেষপূর্ণ, যা ক্ষতির কারণ হতে পারে অথবা রেড ক্রস, এর পরিষেবা সরবরাহকারী, এর কনটেন্ট সরবরাহকারী, বা অন্য কোনও ব্যক্তিকে ক্ষতি করে, যা রেড ক্রস দ্বারা এর নিজস্ব বিবেচনার ভিত্তিতে নির্ধারিত।\n\nরেড ক্রস আপনার এপিআই এবং ডেটা ফিড গুলির ব্যবহার পর্যবেক্ষণ করতে পারে। আপনি এই ধরনের পর্যবেক্ষণে হস্তক্ষেপ করার জন্য কোনও প্রযুক্তিগত পদ্ধতি ব্যবহার নাও করতে পারেন, এবং রেড ক্রস এই জাতীয় কোনও হস্তক্ষেপ কাটিয়ে উঠতে প্রযুক্তিগত পদ্ধতি ব্যবহার করতে পারে।\n\nপ্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার করা বার্তা গুলির ব্যবহার কেবলমাত্র বর্তমান হিসাবে উপস্থাপিত হবে বা তৎক্ষনাৎ বর্তমান জরুরী সেটিং-এর সাথে সম্পর্কিত সম্পর্কিত ইভেন্ট অ্যালার্টের আপডেট করা হবে, এবং আপনি রেড ক্রস দ্বারা ডেটা ফিড এবং\/অথবা সম্পর্কিত ইভেন্ট সতর্কতার যে কোনও আপডেট হওয়ার পরে পৃথকভাবে প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার করা বার্তাগুলি আপডেট করবেন।\n\nনিজস্ব প্রস্তুতি, প্রতিক্রিয়া, এবং পুনরুদ্ধার বার্তাসমূহ যা আপনি ব‍্যবহার করবেন কেবলমাত্র সংশ্লিষ্ট ভৌগোলিক অঞ্চলের জন‍্য প্রযোজ‍্য হবে। যদি কোনও প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার বার্তা একটি উৎসের সঙ্গে একটি রেফারেন্স যেমন আমেরিকান রেড ক্রস বা অন্য রেড ক্রস বা রেড ক্রিসেন্ট ন্যাশনাল সোসাইটি বা সংগঠন (প্রতিটি ”সোর্স রেফারেন্স”) অন্তর্ভুক্ত করে তবে আপনি ডেটা ফিড গুলোতে প্রদত্ত ফর্মে প্রতিটি প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার এর বার্তাগুলোর সাথে সম্পর্কিত উৎসের রেফারেন্স অন্তর্ভুক্ত করবেন। আপনি আর কোনও উৎস রেফারেন্স ব্যবহার করবেন না।\n\nআপনি অন্য কোন ভাষায় ডেটা ফিড, ইভেন্ট অ্যালার্ট, এবং\/অথবা প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার এর বার্তাগুলোর অনুবাদ নাও করতে পারেন, ডেটা ফিড, ইভেন্ট অ্যালার্ট এবং\/অথবা প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার এর বার্তাগুলোর কোন ব্যবহার, সম্পাদনা, বা অর্থ পরিবর্তন নাও করতে পারেন।\n\nআপনাকে অবশ্যই নিশ্চিত করতে হবে যে ডেটা ফিড গুলো কেবলমাত্র আপনার দখলে এবং\/অথবা নিয়ন্ত্রণে থাকবে।\n\nআপনি প্রান্তিক ব্যবহারকারীদের কাছে বিতরণ করা ইভেন্ট অ্যালার্ট এবং প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার এর বার্তাগুলোতে কোন বিজ্ঞাপন বা স্পনসরশিপ অন্তর্ভুক্ত করার অনুমতি নাও দিতে পারেন।\n\nআপনি পুরোপুরি বা আংশিকভাবে ডাটা ফিডের কোন আর্কাইভ তৈরি নাও করতে পারেন।", + "body": "রেড ক্রস প্রদত্ত রেজিষ্ট্রেশন কী-এর গোপনীয়তা এবং সুরক্ষা বজায় রাখার জন্য আপনি দায় বদ্ধ থাকবেন। ডেটা ফিড গুলি গ্রহণ করা চালিয়ে যাওয়ার জন্য মাঝে মাঝে আপডেট হিসাবে API-এর সাথে সামঞ্জস্য বজায় রাখার জন্য আপনি দায়বদ্ধ থাকবেন। রেড ক্রস তার নিজস্ব বিবেচনার ভিত্তিতে এপিআই এবং ডেটা ফিড গুলির আপডেট সংস্করণ প্রকাশ করতে পারে। নতুন সংস্করণগুলো পূর্ববর্তী বাস্তবায়নের সাথে সামঞ্জস্যপূর্ণ নাও হতে পারে এবং আপনি সর্বদা ডেটা ফিড গুলির সর্বশেষ আপডেট হওয়া সংস্করণটি ব্যবহার করতে সম্মত থাকবেন।\n\nআপনাকে সম্মত হতে হবে যে এপিআই বা রেড ক্রসের কোনও সফটওয়্যারের কোনও অংশ সংশোধন, বিতরণ, ডি কম্পাইল, বিচ্ছিন্ন করা, বা রিভার্স ইনজিনিয়ারিং করা যাবে না।\n\nআপনি API বা ডেটা ফিড গুলি এমনভাবে ব্যবহার করতে পারবেন না যা যুক্তিসঙ্গত অনুরোধের পরিমাণকে ছাড়িয়ে যায় বা অতিরিক্ত বা আপত্তিজনক ব্যবহার করে, যা রেড ক্রসের নিজস্ব বিবেচনার ভিত্তিতে নির্ধারিত।\n\nআপনি এপিআই অথবা ডেটা ফিড গুলি এমনভাবে ব্যবহার করতে পারবেন না যা বেআইনী, বিভ্রান্তিকর, অবহেলাপূর্ণ, বিদ্বেষপূর্ণ, যা ক্ষতির কারণ হতে পারে অথবা রেড ক্রস, এর পরিষেবা সরবরাহকারী, এর কনটেন্ট সরবরাহকারী, বা অন্য কোনও ব্যক্তিকে ক্ষতি করে, যা রেড ক্রস দ্বারা এর নিজস্ব বিবেচনার ভিত্তিতে নির্ধারিত।\n\nরেড ক্রস আপনার এপিআই এবং ডেটা ফিড গুলির ব্যবহার পর্যবেক্ষণ করতে পারে। আপনি এই ধরনের পর্যবেক্ষণে হস্তক্ষেপ করার জন্য কোনও প্রযুক্তিগত পদ্ধতি ব্যবহার নাও করতে পারেন, এবং রেড ক্রস এই জাতীয় কোনও হস্তক্ষেপ কাটিয়ে উঠতে প্রযুক্তিগত পদ্ধতি ব্যবহার করতে পারে।\n\nপ্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার করা বার্তা গুলির ব্যবহার কেবলমাত্র বর্তমান হিসাবে উপস্থাপিত হবে বা তৎক্ষনাৎ বর্তমান জরুরী সেটিং-এর সাথে সম্পর্কিত সম্পর্কিত ইভেন্ট অ্যালার্টের আপডেট করা হবে, এবং আপনি রেড ক্রস দ্বারা ডেটা ফিড এবং/অথবা সম্পর্কিত ইভেন্ট সতর্কতার যে কোনও আপডেট হওয়ার পরে পৃথকভাবে প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার করা বার্তাগুলি আপডেট করবেন।\n\nনিজস্ব প্রস্তুতি, প্রতিক্রিয়া, এবং পুনরুদ্ধার বার্তাসমূহ যা আপনি ব‍্যবহার করবেন কেবলমাত্র সংশ্লিষ্ট ভৌগোলিক অঞ্চলের জন‍্য প্রযোজ‍্য হবে। যদি কোনও প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার বার্তা একটি উৎসের সঙ্গে একটি রেফারেন্স যেমন আমেরিকান রেড ক্রস বা অন্য রেড ক্রস বা রেড ক্রিসেন্ট ন্যাশনাল সোসাইটি বা সংগঠন (প্রতিটি ”সোর্স রেফারেন্স”) অন্তর্ভুক্ত করে তবে আপনি ডেটা ফিড গুলোতে প্রদত্ত ফর্মে প্রতিটি প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার এর বার্তাগুলোর সাথে সম্পর্কিত উৎসের রেফারেন্স অন্তর্ভুক্ত করবেন। আপনি আর কোনও উৎস রেফারেন্স ব্যবহার করবেন না।\n\nআপনি অন্য কোন ভাষায় ডেটা ফিড, ইভেন্ট অ্যালার্ট, এবং/অথবা প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার এর বার্তাগুলোর অনুবাদ নাও করতে পারেন, ডেটা ফিড, ইভেন্ট অ্যালার্ট এবং/অথবা প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার এর বার্তাগুলোর কোন ব্যবহার, সম্পাদনা, বা অর্থ পরিবর্তন নাও করতে পারেন।\n\nআপনাকে অবশ্যই নিশ্চিত করতে হবে যে ডেটা ফিড গুলো কেবলমাত্র আপনার দখলে এবং/অথবা নিয়ন্ত্রণে থাকবে।\n\nআপনি প্রান্তিক ব্যবহারকারীদের কাছে বিতরণ করা ইভেন্ট অ্যালার্ট এবং প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার এর বার্তাগুলোতে কোন বিজ্ঞাপন বা স্পনসরশিপ অন্তর্ভুক্ত করার অনুমতি নাও দিতে পারেন।\n\nআপনি পুরোপুরি বা আংশিকভাবে ডাটা ফিডের কোন আর্কাইভ তৈরি নাও করতে পারেন।", "contact": "অনুগ্রহ করে এপিআই সম্পর্কিত যে কোন প্রশ্ন করতে রেড ক্রসের সাথে {0} তে যোগাযোগ করুন।", - "disclaimer": "এপিআই এবং ডেটা ফিড গুলি শুধুমাত্র তথ্যমূলক এবং শিক্ষাগত উদ্দেশ্যে সরবরাহ করা হয়, এবং ‘যেমন আছে তেমন’ এবং ‘উপলব্ধ হওয়ার’ ভিত্তিতে সরবরাহ করা হয়। রেড ক্রস কোন ধরণের প্রকাশিত বা নিহিত প্রতিনিধিত্ব বা ওয়ারেন্টি তৈরি করে না। রেড ক্রস প্রকাশিত বা অন্তর্নিহিত সমস্ত ওয়ারেন্টি পরিত্যাগ করে, একটি নির্দিষ্ট উদ্দেশ্যে বাণিজ্য এবং উপযুক্ততার জন্য অন্তর্ভুক্ত কিন্তু অন্তর্নিহিত ওয়ারেন্টির মধ্যে তা সীমাবদ্ধ না। রেড ক্রস এবং এর কর্মচারী, কর্মকর্তা, প্রশাসক এবং প্রতিনিধি এবং লাইসেন্সধারীরা এপিআই, ডেটা ফিড, ইভেন্ট অ্যালার্ট এবং\/অথবা প্রিপেয়ার, রেসপন্ড এবং রিকভার মেসেজ ব্যবহার থেকে উদ্ভূত কোন ধরণের ক্ষতির জন্য দায়বদ্ধ হবে না যার মধ্যে অন্তর্ভুক্ত রয়েছে তবে তা প্রত্যক্ষ, পরোক্ষ, আনুষঙ্গিক, শাস্তিমূলক এবং ফলস্বরূপ ক্ষতিতে সীমাবদ্ধ নয়।\n\nরেড ক্রস এপিআই, ডেটা ফিড, ইভেন্ট অ্যালার্ট এবং\/অথবা প্রিপেয়ার, রেসপন্ড এবং রিকভার মেসেজ ক্রম, নির্ভুলতা, সত্যতা বা সম্পূর্ণতার গ্যারান্টি দেয় না এবং এখানে প্রদত্ত এপিআই, ডেটা ফিডস, ইভেন্ট অ্যালার্ট এবং\/অথবা প্রিপেয়ার, রেসপন্ড এবং রিকভার মেসেজের ক্ষেত্রে কোনও বিলম্ব, ভুল, বা কোন বাদ দেওয়ার সীমাবদ্ধতা ছাড়াই আপনার বা আপনার এন্ড ইউজার বা কোনও তৃতীয় পক্ষের কাছে দায়বদ্ধ থাকবে না।", + "disclaimer": "এপিআই এবং ডেটা ফিড গুলি শুধুমাত্র তথ্যমূলক এবং শিক্ষাগত উদ্দেশ্যে সরবরাহ করা হয়, এবং ‘যেমন আছে তেমন’ এবং ‘উপলব্ধ হওয়ার’ ভিত্তিতে সরবরাহ করা হয়। রেড ক্রস কোন ধরণের প্রকাশিত বা নিহিত প্রতিনিধিত্ব বা ওয়ারেন্টি তৈরি করে না। রেড ক্রস প্রকাশিত বা অন্তর্নিহিত সমস্ত ওয়ারেন্টি পরিত্যাগ করে, একটি নির্দিষ্ট উদ্দেশ্যে বাণিজ্য এবং উপযুক্ততার জন্য অন্তর্ভুক্ত কিন্তু অন্তর্নিহিত ওয়ারেন্টির মধ্যে তা সীমাবদ্ধ না। রেড ক্রস এবং এর কর্মচারী, কর্মকর্তা, প্রশাসক এবং প্রতিনিধি এবং লাইসেন্সধারীরা এপিআই, ডেটা ফিড, ইভেন্ট অ্যালার্ট এবং/অথবা প্রিপেয়ার, রেসপন্ড এবং রিকভার মেসেজ ব্যবহার থেকে উদ্ভূত কোন ধরণের ক্ষতির জন্য দায়বদ্ধ হবে না যার মধ্যে অন্তর্ভুক্ত রয়েছে তবে তা প্রত্যক্ষ, পরোক্ষ, আনুষঙ্গিক, শাস্তিমূলক এবং ফলস্বরূপ ক্ষতিতে সীমাবদ্ধ নয়।\n\nরেড ক্রস এপিআই, ডেটা ফিড, ইভেন্ট অ্যালার্ট এবং/অথবা প্রিপেয়ার, রেসপন্ড এবং রিকভার মেসেজ ক্রম, নির্ভুলতা, সত্যতা বা সম্পূর্ণতার গ্যারান্টি দেয় না এবং এখানে প্রদত্ত এপিআই, ডেটা ফিডস, ইভেন্ট অ্যালার্ট এবং/অথবা প্রিপেয়ার, রেসপন্ড এবং রিকভার মেসেজের ক্ষেত্রে কোনও বিলম্ব, ভুল, বা কোন বাদ দেওয়ার সীমাবদ্ধতা ছাড়াই আপনার বা আপনার এন্ড ইউজার বা কোনও তৃতীয় পক্ষের কাছে দায়বদ্ধ থাকবে না।", "entire_agreement": { "body": "এপিআই শর্তাবলী রেড ক্রস এবং আপনার মধ্যে এর বিষয়বস্তু সম্পর্কিত সম্পূর্ণ এবং একচেটিয়া চুক্তি গঠন করে এবং এখানে নির্দিষ্টভাবে অন্তর্ভুক্ত নয় এমন সমস্ত পূর্ব মৌখিক বা লিখিত বোঝা পড়া, যোগাযোগ বা চুক্তিগুলো বাদ দিয়ে দেয়। রেড ক্রস যে কোন সময় এই চুক্তিটি সংশোধন বা প্রত্যাহার করার অধিকার সংরক্ষণ করে।", "heading": "সম্পূর্ণ চুক্তি:" @@ -861,7 +865,7 @@ "heading": "এপিআই এন্ড ইউজার লাইসেন্সিং চুক্তি", "intro": "সম্মত: পরিষেবাটি ব্যবহার করার মাধ‍্যমে বা প্রদত্ত বক্সটিতে টিক দেওয়ার মাধ‍্যমে, ব্যবহারকারী এই চুক্তিতে আবদ্ধ হতে সম্মত হচ্ছেন।\n\nAPI এমন একটি টুল যা আপনাকে (”আপনি”) রেড ক্রস দ্বারা উপলব্ধ ডেটা ফিড গুলি পুনরুদ্ধার এবং ব্যবহার করতে দেয় যার মধ্যে রয়েছে বিশ্বব্যাপী আবহাওয়া এবং দুর্যোগের ঘটনার সতর্কতা এবং ঘড়ির বিজ্ঞপ্তিগুলো (”ইভেন্ট অ্যালার্ট”) এবং ঝুঁকির ধরণ এবং জরুরির দ্বারা কীভাবে স্থানীয় বিপদের জন্য প্রস্তুতি নেবেন সে সম্পর্কিত বিষয়ে কার্যকর এবং প্রাসঙ্গিক বার্তা গুলির একটি ফিড (\"প্রস্তুত করুন, প্রতিক্রিয়া জানান এবং বার্তা পুনরুদ্ধার করুন\" এবং ইভেন্ট অ্যালার্টের সাথে \"ডেটা ফিডS\")। প্রিপেয়ার, রেসপন্ড, এবং রিকভার বার্তা গুলোর উদ্দেশ্য ইভেন্ট অ্যালার্ট বা অন্যান্য সতর্কতার সাথে যুক্ত হওয়া এবং আপনার নিজের অ্যাপ্লিকেশনে আবহাওয়া এবং দুর্যোগের ঘটনার সাথে সম্পর্কিত বিজ্ঞপ্তিগুলো দেখা। আপনার ডেটা ফিড গুলির ব্যবহার এপিআই শর্তাবলী দ্বারা পরিচালিত হয়।", "license_limitations": { - "body": "আপনি শুধুমাত্র API-এর শর্তাবলী সাপেক্ষে আপনার নিজের অ্যাপ্লিকেশনের সাথে সামঞ্জস্য রেখে ডেটা ফিড গুলি ব্যবহার করতে পারেন এবং মাঝে মাঝে আপডেট হওয়ার সাথে সাথে আপনি API-এর সাথে সামঞ্জস্য বজায় রাখতে পারেন। আপনাকে এপিআই শর্তাবলী সাপেক্ষে ডেটা ফিডগুলি থেকে স্বতন্ত্র ইভেন্ট অ্যালার্ট এর জরুরি সেটিং-এর সাথে সামঞ্জস্য রেখে আপনার নিজস্ব অ্যাপ্লিকেশনের প্রান্তিক ব্যবহারকারীদের ইভেন্ট অ্যালার্ট এবং প্রাসঙ্গিক পরিপ্রেক্ষিত ভিত্তিক প্রস্তুতি, প্রতিক্রিয়া, এবং বার্তা পুনরুদ্ধার, ডাউনলোড, ব্যবহার, পুনরুত্পাদন এবং বিতরণ করার একটি অ-একচেটিয়া, সীমিত এবং প্রত্যাখ্যান যোগ্য অধিকার দেওয়া হয় (“প্রান্তিক ব্যবহারকারী”)। আপনি শুধুমাত্র এপিআই শর্তাবলী অনুসারে ডেটা ফিড গুলির অ-বাণিজ্যিক ব্যবহারের সুবিধার্থে এপিআই ব্যবহার করতে পারবেন। আপনি কোন ইভেন্টে এপিআই ব্যবহার করে ডেটা ফিডস, ইভেন্ট অ্যালার্ট এবং\/অথবা প্রস্তুতি, প্রতিক্রিয়া এবং বার্তা পুনরুদ্ধার, বাণিজ্যিক ব্যবহার সহজতর করতে পারবেন না।\nসীমাবদ্ধতা ছাড়াই, পুনরায় বিক্রয়, ওগুলোতে প্রবেশের মূল্য নেয়া, পুনরায় বিতরণ করার জন্য মূল্য গ্রহন, বা ওগুলোর উপর ভিত্তি করে কিছু তৈরি করা হলে তার উপর মূল্য গ্রহন করতে পারবেন না। রেড ক্রস এবং এর লাইসেন্স দাতারা এতে এবং এর মধ্যে API- এর সমস্ত শিরোনাম, মালিকানা, অধিকার এবং আগ্রহ বজায় রাখেন, বার্তার প্রস্তুতি, বার্তার প্রতিক্রিয়া এবং পুনরুদ্ধার, ইভেন্ট সতর্কতা, ডেটা ফিড এবং উত্স রেফারেন্স গুলি (নীচে সংজ্ঞায়িত হিসাবে) এতে রয়েছে। স্পষ্টভাবে অনুমোদিত নয় এমন সমস্ত অধিকার সংরক্ষিত।", + "body": "আপনি শুধুমাত্র API-এর শর্তাবলী সাপেক্ষে আপনার নিজের অ্যাপ্লিকেশনের সাথে সামঞ্জস্য রেখে ডেটা ফিড গুলি ব্যবহার করতে পারেন এবং মাঝে মাঝে আপডেট হওয়ার সাথে সাথে আপনি API-এর সাথে সামঞ্জস্য বজায় রাখতে পারেন। আপনাকে এপিআই শর্তাবলী সাপেক্ষে ডেটা ফিডগুলি থেকে স্বতন্ত্র ইভেন্ট অ্যালার্ট এর জরুরি সেটিং-এর সাথে সামঞ্জস্য রেখে আপনার নিজস্ব অ্যাপ্লিকেশনের প্রান্তিক ব্যবহারকারীদের ইভেন্ট অ্যালার্ট এবং প্রাসঙ্গিক পরিপ্রেক্ষিত ভিত্তিক প্রস্তুতি, প্রতিক্রিয়া, এবং বার্তা পুনরুদ্ধার, ডাউনলোড, ব্যবহার, পুনরুত্পাদন এবং বিতরণ করার একটি অ-একচেটিয়া, সীমিত এবং প্রত্যাখ্যান যোগ্য অধিকার দেওয়া হয় (“প্রান্তিক ব্যবহারকারী”)। আপনি শুধুমাত্র এপিআই শর্তাবলী অনুসারে ডেটা ফিড গুলির অ-বাণিজ্যিক ব্যবহারের সুবিধার্থে এপিআই ব্যবহার করতে পারবেন। আপনি কোন ইভেন্টে এপিআই ব্যবহার করে ডেটা ফিডস, ইভেন্ট অ্যালার্ট এবং/অথবা প্রস্তুতি, প্রতিক্রিয়া এবং বার্তা পুনরুদ্ধার, বাণিজ্যিক ব্যবহার সহজতর করতে পারবেন না।\nসীমাবদ্ধতা ছাড়াই, পুনরায় বিক্রয়, ওগুলোতে প্রবেশের মূল্য নেয়া, পুনরায় বিতরণ করার জন্য মূল্য গ্রহন, বা ওগুলোর উপর ভিত্তি করে কিছু তৈরি করা হলে তার উপর মূল্য গ্রহন করতে পারবেন না। রেড ক্রস এবং এর লাইসেন্স দাতারা এতে এবং এর মধ্যে API- এর সমস্ত শিরোনাম, মালিকানা, অধিকার এবং আগ্রহ বজায় রাখেন, বার্তার প্রস্তুতি, বার্তার প্রতিক্রিয়া এবং পুনরুদ্ধার, ইভেন্ট সতর্কতা, ডেটা ফিড এবং উত্স রেফারেন্স গুলি (নীচে সংজ্ঞায়িত হিসাবে) এতে রয়েছে। স্পষ্টভাবে অনুমোদিত নয় এমন সমস্ত অধিকার সংরক্ষিত।", "heading": "লাইসেন্স এবং সীমাবদ্ধতা:" }, "overview": { @@ -880,17 +884,17 @@ "two": "সীমাবদ্ধতা ছাড়াই কোন সত্যতা যাচাইয়ের প্রযুক্তিসহ, রেড ক্রস বা এপিআই দ্বারা নিযুক্ত কোনও কী বা সুরক্ষা ব্যবস্থা এড়াতে বা সংশোধন করতে।", "three": "আপনার নিজের অ্যাকাউন্টের জন্য যা আপনাকে সরবরাহ করা হয়েছে তা ছাড়া রেড ক্রসের অন‍্য সাইন-ইন নাম, পাসওয়ার্ড বা অন্যান্য যাচাইকরণ গোপনীয় তথ‍্য লাভের অনুরোধ করা, সংগ্রহ করা, আবেদন করা বা অন্য কোনো উপায়ে সংগ্রহ করা।", "four": "রেডক্রস বা অন্য কোন রেড ক্রস বা রেড ক্রিসেন্ট ন্যাশনাল সোসাইটি বা সংগঠনের সাথে সংশ্লিষ্টতা, স্পন্সরশিপ বা এনডোর্সমেন্ট প্রকাশ করা।", - "five": "API বা ডেটা ফিড গুলো, ইভেন্ট অ্যালার্টস এবং\/অথবা প্রস্তুতি, প্রতিক্রিয়া এবং বার্তা পুনরুদ্ধারের মালিকানা আপনার বা আপনি তা তৈরি করেছেন তা প্রকাশ বা নিহিত করতে।", + "five": "API বা ডেটা ফিড গুলো, ইভেন্ট অ্যালার্টস এবং/অথবা প্রস্তুতি, প্রতিক্রিয়া এবং বার্তা পুনরুদ্ধারের মালিকানা আপনার বা আপনি তা তৈরি করেছেন তা প্রকাশ বা নিহিত করতে।", "six": "কোনো ভাইরাস, ও‍য়ার্মস ডিফেক্টস, ট্রোজান হর্স অথবা অন‍্য কোনও ধ্বংসাত্মক কিছু ট্রান্সমিট করা।" } }, - "reserve_rights": "রেড ক্রস পূর্ব ঘোষণা ছাড়াই যে কোন সময়ে অস্থায়ী বা স্থায়ীভাবে সম্পূর্ণ বা আংশিকভাবে এপিআই এবং ডেটা ফিডস পরিবর্তন এবং\/ বা আর সরবরাহ না করার অধিকার সংরক্ষণ করে। সংশয় এড়াতে, এ কথা জানানো হচ্ছে যে এগুলোর মধ্যে কোন কিছুই রেড ক্রসকে তার API বা ডেটা ফিড গুলো আপনার কাছে উপলভ‍্য করতে বাধ্য করে না এবং আপনি সম্মত হচ্ছেন এবং স্বীকার করছেন যে, যে কোন প্রকার অ্যাক্সেস রেড ক্রসের একমাত্র এবং পূর্ণ ইচ্ছাধীনতার মধ্যে রয়েছে।", + "reserve_rights": "রেড ক্রস পূর্ব ঘোষণা ছাড়াই যে কোন সময়ে অস্থায়ী বা স্থায়ীভাবে সম্পূর্ণ বা আংশিকভাবে এপিআই এবং ডেটা ফিডস পরিবর্তন এবং/ বা আর সরবরাহ না করার অধিকার সংরক্ষণ করে। সংশয় এড়াতে, এ কথা জানানো হচ্ছে যে এগুলোর মধ্যে কোন কিছুই রেড ক্রসকে তার API বা ডেটা ফিড গুলো আপনার কাছে উপলভ‍্য করতে বাধ্য করে না এবং আপনি সম্মত হচ্ছেন এবং স্বীকার করছেন যে, যে কোন প্রকার অ্যাক্সেস রেড ক্রসের একমাত্র এবং পূর্ণ ইচ্ছাধীনতার মধ্যে রয়েছে।", "severability": { "body": "এপিআই শর্তাবলির কোন শর্তের বা বিধানের অবৈধতা অন্য কোন বিধানের বৈধতা প্রভাবিত করবে না।", "heading": "তীব্রতা এবং অধিকার পরিত্যাগের ঘোষণা:" }, "suspension": { - "body": "রেড ক্রস যদি এর পূর্ণ স্বাধীন ইচ্ছায় ঠিক করে যে আপনি এপিআই শর্তাবলির এপিআই বা ডাটা ফিড ব্যবহারের অননুমোদিত ব‍্যবহারে নিয়োজিত বা আপনি এপিআই বা ডেটা ফিড এমন কোন কাজে ব্যবহার করছেন যা রেডক্রস নেটওয়ার্কগুলোর বা কোন ব্যক্তির নিরাপত্তার জন্য হুমকি\/আপস করে তাহলে রেড ক্রস আপনার প্রবেশাধিকার স্থগিত বা স্্থগিত করার অধিকার রাখে।", + "body": "রেড ক্রস যদি এর পূর্ণ স্বাধীন ইচ্ছায় ঠিক করে যে আপনি এপিআই শর্তাবলির এপিআই বা ডাটা ফিড ব্যবহারের অননুমোদিত ব‍্যবহারে নিয়োজিত বা আপনি এপিআই বা ডেটা ফিড এমন কোন কাজে ব্যবহার করছেন যা রেডক্রস নেটওয়ার্কগুলোর বা কোন ব্যক্তির নিরাপত্তার জন্য হুমকি/আপস করে তাহলে রেড ক্রস আপনার প্রবেশাধিকার স্থগিত বা স্্থগিত করার অধিকার রাখে।", "heading": "স্থগিতকরণ বা সমাপ্তি:" } }, @@ -903,7 +907,7 @@ "alert_preview": "সতর্কতার পূর্বরূপ", "cap_alerts": "সিএপি এলার্ট", "onset": "শুরু", - "severity": "গুরুতর\/কঠোরতা", + "severity": "গুরুতর/কঠোরতা", "title": "শিরোনাম", "date": "তারিখ", "headline": "শিরোনাম", @@ -917,7 +921,7 @@ "type": "ধরন", "status": "স্ট‍্যাটাস", "urgency": "ত্বরা", - "severity": "গুরুতর\/কঠোরতা", + "severity": "গুরুতর/কঠোরতা", "certainty": "নিশ্চয়তা", "sent": "প্রেরিত", "effective": "কার্যকর", diff --git a/resources/lang/de.json b/resources/lang/de.json index aa4e494..0a38610 100644 --- a/resources/lang/de.json +++ b/resources/lang/de.json @@ -40,7 +40,7 @@ "name": "Name", "first_name": "Vorname", "last_name": "Nachname", - "toggle_navigation": "Navigation ein-\/ausblenden", + "toggle_navigation": "Navigation ein-/ausblenden", "you_are_logged_in": "Sie sind eingeloggt!", "reset_password": "Passwort zurücksetzen", "set_password": "Passwort einrichten", @@ -441,9 +441,9 @@ "immediate": "Sofort", "warning": "Warnung", "anticipated": "Erwartet", - "assess_and_plan":"Bewerten und planen", - "mitigate_risks":"Risiko mindern", - "prepare_to_respond":"Auf die Reaktion vorbereiten", + "assess_and_plan": "Bewerten und planen", + "mitigate_risks": "Risiko mindern", + "prepare_to_respond": "Auf die Reaktion vorbereiten", "recover": "Wiederherstellen" }, "content": { @@ -526,7 +526,7 @@ "seasonalForecast_extra": "Eine saisonale Vorhersage ist eine Aussage über die Vorhersehbarkeit eines gefährlichen Ereignisses. Die ergriffenen Maßnahmen dienen der Bewertung potenzieller Risiken und der Planung von Aktivitäten zur Risikominderung und zum Schutz des Haushalts.", "watch": "Ansehen", "watch_help": "Bereiten Sie sich vor, zu reagieren", - "watch_extra": "Eine Frühwarnung wird ausgegeben, wenn das Risiko eines gefährlichen Ereignisses erheblich gestiegen ist, aber sein Auftreten, sein Ort und\/oder sein Zeitpunkt noch ungewiss sind. Sie soll genügend Zeit für Schutzmaßnahmen und die Vorbereitung auf die Reaktion bieten.", + "watch_extra": "Eine Frühwarnung wird ausgegeben, wenn das Risiko eines gefährlichen Ereignisses erheblich gestiegen ist, aber sein Auftreten, sein Ort und/oder sein Zeitpunkt noch ungewiss sind. Sie soll genügend Zeit für Schutzmaßnahmen und die Vorbereitung auf die Reaktion bieten.", "warning": "Warnung", "warning_help": "Bereiten Sie sich vor, zu reagieren", "warning_extra": "Eine Warnung wird ausgegeben, wenn ein gefährliches Ereignis eintritt, unmittelbar bevorsteht oder eine sehr hohe Eintrittswahrscheinlichkeit hat. Es bedeutet, dass die Bedingungen eine Gefahr für Leben oder Eigentum darstellen. Personen, die sich im Wirkungsbereich dieser Gefahr befinden, müssen Schutzmaßnahmen ergreifen.", @@ -558,7 +558,8 @@ "content_edit_title": "Inhalt bearbeiten", "content_add_hazard_title": "Gefahr hinzufügen", "key_message_label": "Titel der Hauptnachricht", - "supporting_message_label": "Unterstützende Nachricht" + "supporting_message_label": "Unterstützende Nachricht", + "mitigate_risk": "Risiko mindern" }, "message_editor": { "title": "Attribution Editor", @@ -618,7 +619,7 @@ "bad_request_error_codes": { "30001": "Spaltenüberschriften stimmen nicht mit der Vorlage überein", "30002": "Zuordnungsname, Nachricht oder URL fehlen", - "30003": "Ungültige Zuordnungs-URL - bitte stellen Sie sicher, dass das Protokoll vorhanden ist, z. B. https:\/\/", + "30003": "Ungültige Zuordnungs-URL - bitte stellen Sie sicher, dass das Protokoll vorhanden ist, z. B. https://", "40001": "Ungültiger Ländercode angegeben", "40002": "Ausgewählte Gesellschaft stimmt nicht mit der Gesellschaft für die ausgewählte Datei überein", "40003": "Das Datum, an dem die ausgewählte Datei exportiert wurde, ist fehlerhaft und der Import kann nicht abgeschlossen werden" @@ -689,7 +690,7 @@ }, "landing": { "strapline": "Datenbankdienst für Sicherheitsmeldungen", - "strapline_part_2": "Die wichtigsten Sicherheitsbotschaften des Globalen Roten Kreuzes \/ Roten Halbmondes", + "strapline_part_2": "Die wichtigsten Sicherheitsbotschaften des Globalen Roten Kreuzes / Roten Halbmondes", "head_1": "IFRC-Sicherheit", "head_2": "Nachrichten-Datenbank", "head_text_1": "Sicherheitsbotschaften auf der Grundlage von IFRC Public Awareness and", @@ -785,7 +786,7 @@ }, "data_preview": { "heading": "Sicherheitshinweise", - "sub_heading": "Melden Sie sich an und sehen Sie sich die wichtigsten Aktionsbotschaften der Nationalen Gesellschaften des Roten Kreuzes \/ Roten Halbmondes in aller Welt an" + "sub_heading": "Melden Sie sich an und sehen Sie sich die wichtigsten Aktionsbotschaften der Nationalen Gesellschaften des Roten Kreuzes / Roten Halbmondes in aller Welt an" }, "footer": { "terms_conditions": "Geschäftsbedingungen", @@ -841,10 +842,10 @@ "industries": { "media": "Mediathek", "emergency": "Notfallmanagement", - "non_profit": "Non-Profit\/NGO", + "non_profit": "Non-Profit/NGO", "humanitarian": "Humanitäre Organisation", - "red_cross": "Rotes Kreuz\/Roter Halbmond", - "education": "Bildungswesen\/Wissenschaft", + "red_cross": "Rotes Kreuz/Roter Halbmond", + "education": "Bildungswesen/Wissenschaft", "gov": "Regierungsbehörde", "other": "Sonstiges" }, @@ -859,9 +860,9 @@ "body": "Die Gesetze des District of Columbia bestimmen alle Rechte und Pflichten dieser Vereinbarung unter Ausschluss der Grundsätze des Kollisionsrechts.", "heading": "Geltendes Recht:" }, - "body": "Sie sind verantwortlich für die Geheimhaltung und Sicherheit des Registrierungsschlüssels, der Ihnen vom Roten Kreuz zur Verfügung gestellt wird. Sie sind dafür verantwortlich, die Kompatibilität mit der von Zeit zu Zeit aktualisierten API aufrechtzuerhalten, um weiterhin die Daten-Feeds zu erhalten. Das Rote Kreuz kann nach eigenem Ermessen aktualisierte Versionen der API und der Daten-Feeds veröffentlichen. Neue Versionen sind möglicherweise nicht mit früheren Implementierungen kompatibel, und Sie erklären sich damit einverstanden, stets die zuletzt aktualisierte Version der Daten-Feeds zu verwenden.\n\nSie erklären sich damit einverstanden, keinen Teil der API oder Software vom Roten Kreuz zu verändern, zu vertreiben, zu entschlüsseln, zu disassemblieren oder zu rekonstruieren.\n\nSie dürfen die API oder Datenfeeds nicht in einer Weise nutzen, die ein angemessenes Anfragevolumen überschreitet oder eine exzessive oder missbräuchliche Nutzung darstellt, wie vom Roten Kreuz nach eigenem Ermessen festgelegt.\n\nSie dürfen die API oder Datenfeeds nicht in einer Weise nutzen, die rechtswidrig, irreführend, fahrlässig, böswillig oder in der Absicht, Schaden zu verursachen, ist oder das Rote Kreuz, seinen Dienstanbietern, seinen Inhaltsanbietern oder einer anderen Person schadet, wie vom Roten Kreuz nach eigenem Ermessen festgelegt.\n\nDas Rote Kreuz kann Ihre Nutzung der API und Daten-Feeds überwachen. Sie dürfen keine technischen Mittel einsetzen, um diese Überwachung zu stören, und das Rote Kreuz darf technische Mittel einsetzen, um eine solche Störung zu überwinden.\n\nDie Verwendung von Prepare-, Respond- und Recover-Nachrichten darf nur als aktuell oder als aktualisiert auf die damals aktuelle Dringlichkeitseinstellung der damit verbundenen Ereigniswarnung dargestellt werden, und Sie müssen einzelne Prepare-, Respond- und Recover-Nachrichten bei jeder Aktualisierung der Daten-Feeds und\/oder korrelierten Ereigniswarnungen durch das Rote Kreuz aktualisieren.\n\nEinzelne Prepare-, Respond- und Recover-Nachrichten, die Sie verwenden, werden nur mit der geografischen Region in Verbindung gebracht, für die sie freigegeben sind. Wenn eine Prepare-, Respond- und Recover-Nachricht einen Verweis auf eine Quelle wie das Amerikanische Rote Kreuz oder eine andere nationale Gesellschaft oder Organisation des Roten Kreuzes oder des Roten Halbmonds (jeweils ein \"Quellenverweis\") enthält, müssen Sie den Quellenverweis, der mit jeder Prepare-, Respond- und Recover-Nachricht verbunden ist, in der in den Daten-Feeds bereitgestellten Form angeben. Sie dürfen die Quellverweise nicht weiter verwenden.\n\nEs ist nicht gestattet, die Daten-Feeds, Ereigniswarnungen und\/oder Prepare-, Respond- und Recover-Nachrichten in eine andere Sprache zu übersetzen, zu verwenden, zu bearbeiten oder zu überarbeiten oder die Bedeutung der Daten-Feeds, Ereigniswarnungen und\/oder Prepare-, Respond- und Recover-Nachrichten zu verändern.\n\nSie müssen sicherstellen, dass die Daten-Feeds in Ihrem alleinigen Besitz und\/oder unter Ihrer Kontrolle sind.\n\nSie dürfen nicht zulassen, dass Ereigniswarnungen und Prepare-, Respond- und Recover-Nachrichten, die an Endbenutzer gesendet werden, Werbung oder Sponsoring enthalten.\n\nSie dürfen die Daten-Feeds weder ganz noch teilweise archivieren.", + "body": "Sie sind verantwortlich für die Geheimhaltung und Sicherheit des Registrierungsschlüssels, der Ihnen vom Roten Kreuz zur Verfügung gestellt wird. Sie sind dafür verantwortlich, die Kompatibilität mit der von Zeit zu Zeit aktualisierten API aufrechtzuerhalten, um weiterhin die Daten-Feeds zu erhalten. Das Rote Kreuz kann nach eigenem Ermessen aktualisierte Versionen der API und der Daten-Feeds veröffentlichen. Neue Versionen sind möglicherweise nicht mit früheren Implementierungen kompatibel, und Sie erklären sich damit einverstanden, stets die zuletzt aktualisierte Version der Daten-Feeds zu verwenden.\n\nSie erklären sich damit einverstanden, keinen Teil der API oder Software vom Roten Kreuz zu verändern, zu vertreiben, zu entschlüsseln, zu disassemblieren oder zu rekonstruieren.\n\nSie dürfen die API oder Datenfeeds nicht in einer Weise nutzen, die ein angemessenes Anfragevolumen überschreitet oder eine exzessive oder missbräuchliche Nutzung darstellt, wie vom Roten Kreuz nach eigenem Ermessen festgelegt.\n\nSie dürfen die API oder Datenfeeds nicht in einer Weise nutzen, die rechtswidrig, irreführend, fahrlässig, böswillig oder in der Absicht, Schaden zu verursachen, ist oder das Rote Kreuz, seinen Dienstanbietern, seinen Inhaltsanbietern oder einer anderen Person schadet, wie vom Roten Kreuz nach eigenem Ermessen festgelegt.\n\nDas Rote Kreuz kann Ihre Nutzung der API und Daten-Feeds überwachen. Sie dürfen keine technischen Mittel einsetzen, um diese Überwachung zu stören, und das Rote Kreuz darf technische Mittel einsetzen, um eine solche Störung zu überwinden.\n\nDie Verwendung von Prepare-, Respond- und Recover-Nachrichten darf nur als aktuell oder als aktualisiert auf die damals aktuelle Dringlichkeitseinstellung der damit verbundenen Ereigniswarnung dargestellt werden, und Sie müssen einzelne Prepare-, Respond- und Recover-Nachrichten bei jeder Aktualisierung der Daten-Feeds und/oder korrelierten Ereigniswarnungen durch das Rote Kreuz aktualisieren.\n\nEinzelne Prepare-, Respond- und Recover-Nachrichten, die Sie verwenden, werden nur mit der geografischen Region in Verbindung gebracht, für die sie freigegeben sind. Wenn eine Prepare-, Respond- und Recover-Nachricht einen Verweis auf eine Quelle wie das Amerikanische Rote Kreuz oder eine andere nationale Gesellschaft oder Organisation des Roten Kreuzes oder des Roten Halbmonds (jeweils ein \"Quellenverweis\") enthält, müssen Sie den Quellenverweis, der mit jeder Prepare-, Respond- und Recover-Nachricht verbunden ist, in der in den Daten-Feeds bereitgestellten Form angeben. Sie dürfen die Quellverweise nicht weiter verwenden.\n\nEs ist nicht gestattet, die Daten-Feeds, Ereigniswarnungen und/oder Prepare-, Respond- und Recover-Nachrichten in eine andere Sprache zu übersetzen, zu verwenden, zu bearbeiten oder zu überarbeiten oder die Bedeutung der Daten-Feeds, Ereigniswarnungen und/oder Prepare-, Respond- und Recover-Nachrichten zu verändern.\n\nSie müssen sicherstellen, dass die Daten-Feeds in Ihrem alleinigen Besitz und/oder unter Ihrer Kontrolle sind.\n\nSie dürfen nicht zulassen, dass Ereigniswarnungen und Prepare-, Respond- und Recover-Nachrichten, die an Endbenutzer gesendet werden, Werbung oder Sponsoring enthalten.\n\nSie dürfen die Daten-Feeds weder ganz noch teilweise archivieren.", "contact": "Bitte kontaktieren Sie bei Fragen zur API das Rote Kreuz unter {0}.", - "disclaimer": "Die API und die Daten-Feeds werden NUR ZU INFORMATIONS- UND BILDUNGSZWECKEN UND auf einer Basis \"wie vorliegend\" und \"wie verfügbar\" zur Verfügung gestellt. Das Rote Kreuz trifft keinerlei ausdrückliche oder implizite Zusicherungen oder Garantien. Das Rote Kreuz lehnt alle ausdrücklichen oder impliziten Garantien ab, einschließlich, aber nicht beschränkt auf implizite Garantien der Marktgängigkeit und Eignung für einen bestimmten Zweck. Das Rote Kreuz und seine Mitarbeiter, leitenden Angestellten, Geschäftsführer und Vertreter sowie Lizenzgeber haften nicht für Schäden jeglicher Art, die aus der Nutzung der API, der DatenFeeds, der Ereigniswarnungen und\/oder der Prepare-, Respond- und Recover-Nachrichten entstehen, einschließlich, aber nicht beschränkt auf direkte, indirekte, zufällige, strafbare und mittelbare Schäden.\n\nDas Rote Kreuz übernimmt keine Garantie für die Reihenfolge, Genauigkeit, Authentizität oder Vollständigkeit der API, der Daten-Feeds, der Ereigniswarnungen und\/oder der Prepare-, Respond- und Recover-Nachrichten und haftet in keiner Weise gegenüber Ihnen oder Ihren Endnutzern oder Dritten, insbesondere nicht für Verzögerungen, Ungenauigkeiten, Fehler oder Auslassungen in Bezug auf die API, die Datenfeeds, die Ereigniswarnungen und\/oder die Prepare-, Respond- und Recover-Nachrichten, die im Rahmen dieser Vereinbarung bereitgestellt werden.", + "disclaimer": "Die API und die Daten-Feeds werden NUR ZU INFORMATIONS- UND BILDUNGSZWECKEN UND auf einer Basis \"wie vorliegend\" und \"wie verfügbar\" zur Verfügung gestellt. Das Rote Kreuz trifft keinerlei ausdrückliche oder implizite Zusicherungen oder Garantien. Das Rote Kreuz lehnt alle ausdrücklichen oder impliziten Garantien ab, einschließlich, aber nicht beschränkt auf implizite Garantien der Marktgängigkeit und Eignung für einen bestimmten Zweck. Das Rote Kreuz und seine Mitarbeiter, leitenden Angestellten, Geschäftsführer und Vertreter sowie Lizenzgeber haften nicht für Schäden jeglicher Art, die aus der Nutzung der API, der DatenFeeds, der Ereigniswarnungen und/oder der Prepare-, Respond- und Recover-Nachrichten entstehen, einschließlich, aber nicht beschränkt auf direkte, indirekte, zufällige, strafbare und mittelbare Schäden.\n\nDas Rote Kreuz übernimmt keine Garantie für die Reihenfolge, Genauigkeit, Authentizität oder Vollständigkeit der API, der Daten-Feeds, der Ereigniswarnungen und/oder der Prepare-, Respond- und Recover-Nachrichten und haftet in keiner Weise gegenüber Ihnen oder Ihren Endnutzern oder Dritten, insbesondere nicht für Verzögerungen, Ungenauigkeiten, Fehler oder Auslassungen in Bezug auf die API, die Datenfeeds, die Ereigniswarnungen und/oder die Prepare-, Respond- und Recover-Nachrichten, die im Rahmen dieser Vereinbarung bereitgestellt werden.", "entire_agreement": { "body": "Die API-Bedingungen stellen die vollständige und ausschließliche Vereinbarung zwischen dem Roten Kreuz und Ihnen in Bezug auf den Vertragsgegenstand dar und ersetzen alle früheren mündlichen oder schriftlichen Absprachen, Mitteilungen oder Vereinbarungen, die nicht ausdrücklich hierin enthalten sind. Das Rote Kreuz behält sich das Recht vor, diese Vereinbarung jederzeit zu ändern oder zu widerrufen.", "heading": "Gesamte Vereinbarung:" @@ -869,7 +870,7 @@ "heading": "API ENDBENUTZER-LIZENZVERTRAG", "intro": "ZUSTIMMEN: DURCH DIE NUTZUNG DES DIENSTES ODER DAS ANKREUZEN DES VORGESEHENEN KÄSTCHENS STIMMT DER BENUTZER ZU, AN DIESE VEREINBARUNG GEBUNDEN ZU SEIN.\n\nDie API ist ein Tool, das es Ihnen (\"Sie\") ermöglicht, die vom Roten Kreuz zur Verfügung gestellten Daten-Feeds abzurufen und zu nutzen, einschließlich eines Feeds mit globalen Wetter- und Katastrophenwarnungen und -beobachtungen (\"Ereigniswarnungen\") und eines Feeds mit umsetzbaren und kontextualisierten Nachrichten zur Vorbereitung auf lokale Gefahren nach Gefahrentyp und Dringlichkeit (\"Prepare-, Respond- und Recover-Nachrichten\", und zusammen mit den Ereigniswarnungen die \"Daten-Feeds\"). Prepare-, Respond- und Recover-Meldungen dienen dazu, Ereigniswarnungen oder andere Warn- und Beobachtungsmeldungen im Zusammenhang mit Wetter- und Katastrophenereignissen in Ihrer eigenen Anwendung zu begleiten. Ihre Nutzung der Daten-Feeds wird durch die API-Bedingungen geregelt.", "license_limitations": { - "body": "Sie sind nur berechtigt, die Daten-Feeds in Verbindung mit Ihrer eigenen Anwendung zu nutzen, vorbehaltlich der API-Bedingungen und unter der Voraussetzung, dass Sie die Kompatibilität mit der von Zeit zu Zeit aktualisierten API gewährleisten. Ihnen wird ein nicht-exklusives, beschränktes und widerrufliches Recht eingeräumt, Ereigniswarnungen und relevante kontextualisierte Prepare-, Respond- und Recover-Meldungen in Verbindung mit der Dringlichkeitseinstellung einzelner Ereigniswarnungen aus den Daten-Feeds gemäß den API-Bedingungen herunterzuladen, zu verwenden, zu vervielfältigen und an Endnutzer Ihrer eigenen Anwendung („Endnutzer“) zu verteilen. Sie dürfen die API nur nutzen, um die nicht-kommerzielle Nutzung der Daten-Feeds in Übereinstimmung mit den API-Bedingungen zu ermöglichen. Sie sind keinesfalls berechtigt, die API zu nutzen, um eine kommerzielle Nutzung der Daten-Feeds, Ereigniswarnungen und\/oder Prepare-, Respond- und Recover-Meldungen zu ermöglichen, einschließlich, aber nicht beschränkt auf den Weiterverkauf, die Erhebung von Gebühren für den Zugriff auf die Daten-Feeds, die Weiterverbreitung der Daten-Feeds oder die Erstellung von abgeleiteten Werken auf der Grundlage der Daten-Feeds. Das Rote Kreuz und seine Lizenzgeber besitzen alle Titel, Eigentumsrechte, Rechte und Interessen an der API, den Prepare-, Respond- und Recover-Meldungen, den Ereigniswarnungen, den Daten-Feeds und den Quellenverweisen (wie unten definiert). Alle nicht ausdrücklich gewährten Rechte sind vorbehalten.", + "body": "Sie sind nur berechtigt, die Daten-Feeds in Verbindung mit Ihrer eigenen Anwendung zu nutzen, vorbehaltlich der API-Bedingungen und unter der Voraussetzung, dass Sie die Kompatibilität mit der von Zeit zu Zeit aktualisierten API gewährleisten. Ihnen wird ein nicht-exklusives, beschränktes und widerrufliches Recht eingeräumt, Ereigniswarnungen und relevante kontextualisierte Prepare-, Respond- und Recover-Meldungen in Verbindung mit der Dringlichkeitseinstellung einzelner Ereigniswarnungen aus den Daten-Feeds gemäß den API-Bedingungen herunterzuladen, zu verwenden, zu vervielfältigen und an Endnutzer Ihrer eigenen Anwendung („Endnutzer“) zu verteilen. Sie dürfen die API nur nutzen, um die nicht-kommerzielle Nutzung der Daten-Feeds in Übereinstimmung mit den API-Bedingungen zu ermöglichen. Sie sind keinesfalls berechtigt, die API zu nutzen, um eine kommerzielle Nutzung der Daten-Feeds, Ereigniswarnungen und/oder Prepare-, Respond- und Recover-Meldungen zu ermöglichen, einschließlich, aber nicht beschränkt auf den Weiterverkauf, die Erhebung von Gebühren für den Zugriff auf die Daten-Feeds, die Weiterverbreitung der Daten-Feeds oder die Erstellung von abgeleiteten Werken auf der Grundlage der Daten-Feeds. Das Rote Kreuz und seine Lizenzgeber besitzen alle Titel, Eigentumsrechte, Rechte und Interessen an der API, den Prepare-, Respond- und Recover-Meldungen, den Ereigniswarnungen, den Daten-Feeds und den Quellenverweisen (wie unten definiert). Alle nicht ausdrücklich gewährten Rechte sind vorbehalten.", "heading": "Lizenz und Beschränkungen:" }, "overview": { @@ -888,17 +889,17 @@ "two": "Die Umgehung oder Modifizierung von Schlüsseln oder Sicherheitsmechanismen, die vom Roten Kreuz oder der API verwendet werden, einschließlich und ohne Einschränkung jeglicher Authentifizierungstechnologien.", "three": "Die Anforderung, Sammlung, Aufforderung oder anderweitige Erlangung des Zugangs zu Anmeldenamen, Passwörtern oder anderen Authentifizierungsdaten für das Rote Kreuz, die Ihnen nicht für Ihr eigenes Konto zur Verfügung gestellt wurden.", "four": "Die Zugehörigkeit, das Sponsoring oder die Befürwortung durch das Rote Kreuz oder eine andere nationale Gesellschaft oder Organisation des Roten Kreuzes oder des Roten Halbmonds anzugeben oder zu implizieren.", - "five": "Die Angabe oder Andeutung, dass Sie Eigentümer oder Ersteller der API, der Daten-Feeds, der Ereigniswarnungen und\/oder der Prepare-, Respond- und Recover-Meldungen sind.", + "five": "Die Angabe oder Andeutung, dass Sie Eigentümer oder Ersteller der API, der Daten-Feeds, der Ereigniswarnungen und/oder der Prepare-, Respond- und Recover-Meldungen sind.", "six": "Die Übertragung von Viren, Würmern, Trojanern oder anderen zerstörerischen Elementen." } }, - "reserve_rights": "Das Rote Kreuz behält sich das Recht vor, die API und Daten-Feeds jederzeit ohne vorherige Ankündigung ganz oder teilweise, entweder vorübergehend oder dauerhaft, zu ändern und\/oder nicht mehr zur Verfügung zu stellen. Um Missverständnisse zu vermeiden: Nichts hierin verpflichtet das Rote Kreuz dazu, Ihnen die API oder Daten-Feeds zur Verfügung zu stellen, und Sie stimmen zu und erkennen an, dass jeglicher Zugriff im alleinigen und absoluten Ermessen des Roten Kreuzes liegt.", + "reserve_rights": "Das Rote Kreuz behält sich das Recht vor, die API und Daten-Feeds jederzeit ohne vorherige Ankündigung ganz oder teilweise, entweder vorübergehend oder dauerhaft, zu ändern und/oder nicht mehr zur Verfügung zu stellen. Um Missverständnisse zu vermeiden: Nichts hierin verpflichtet das Rote Kreuz dazu, Ihnen die API oder Daten-Feeds zur Verfügung zu stellen, und Sie stimmen zu und erkennen an, dass jeglicher Zugriff im alleinigen und absoluten Ermessen des Roten Kreuzes liegt.", "severability": { "body": "Die Ungültigkeit einzelner Bestimmungen dieser Nutzungsbedingung hat keine Auswirkungen auf die Gültigkeit der übrigen Bestimmungen.", "heading": "Salvatorische Klausel und Verzichtserklärung:" }, "suspension": { - "body": "Das Rote Kreuz behält sich das Recht vor, Ihren Zugang zu sperren oder zu beenden, wenn das Rote Kreuz nach eigenem Ermessen feststellt, dass Sie die API oder den Daten-Feed wie in den API-Bedingungen beschrieben unberechtigt nutzen oder dass Sie die API oder den Daten-Feed für Aktivitäten nutzen, die die Sicherheit einer Person oder der Netzwerke des Roten Kreuzes bedrohen\/kompromittieren.", + "body": "Das Rote Kreuz behält sich das Recht vor, Ihren Zugang zu sperren oder zu beenden, wenn das Rote Kreuz nach eigenem Ermessen feststellt, dass Sie die API oder den Daten-Feed wie in den API-Bedingungen beschrieben unberechtigt nutzen oder dass Sie die API oder den Daten-Feed für Aktivitäten nutzen, die die Sicherheit einer Person oder der Netzwerke des Roten Kreuzes bedrohen/kompromittieren.", "heading": "Aufhebung oder Beendigung:" } }, diff --git a/resources/lang/en.json b/resources/lang/en.json index a16aaaa..dcdc386 100644 --- a/resources/lang/en.json +++ b/resources/lang/en.json @@ -607,7 +607,8 @@ "desc_tool": "Give a brief description about the hazard and messages. This should be 1-3 sentences long", "title_tool": "For example: Safety messages for Floods", "safety_tool": "This is a priority action that a person should take to stay safe. The message should be action-oriented, concise, and under 50 characters.", - "supporting_tool": "This provides more detail to support the priority key action. The message should be action-oriented and concise." + "supporting_tool": "This provides more detail to support the priority key action. The message should be action-oriented and concise.", + "mitigate_risk": "Mitigate Risk" }, "message_editor": { "title": "Attribution Editor", @@ -1071,4 +1072,4 @@ "draft": "Draft", "bulkUploadDraft": "Message File Upload Draft" } -} \ No newline at end of file +} diff --git a/resources/lang/es.json b/resources/lang/es.json index 8adc7b3..3763bc0 100644 --- a/resources/lang/es.json +++ b/resources/lang/es.json @@ -594,7 +594,8 @@ "desc_tool": "Proporciona una breve descripción sobre el peligro y los mensajes. Debe tener de 1 a 3 frases.", "title_tool": "Por ejemplo: Mensajes de seguridad para Inundaciones", "safety_tool": "Esta es una acción prioritaria que una persona debe tomar para mantenerse segura. El mensaje debe estar orientado a la acción, ser conciso y tener menos de 50 caracteres.", - "supporting_tool": "Esto proporciona más detalles para apoyar la acción clave prioritaria. El mensaje debe estar orientado a la acción y ser conciso." + "supporting_tool": "Esto proporciona más detalles para apoyar la acción clave prioritaria. El mensaje debe estar orientado a la acción y ser conciso.", + "mitigate_risk": "Mitigar Riesgo" }, "message_editor": { "title": "Editor de Atribución", diff --git a/resources/lang/fr.json b/resources/lang/fr.json index 41bb9dd..d0f9d86 100644 --- a/resources/lang/fr.json +++ b/resources/lang/fr.json @@ -594,7 +594,8 @@ "desc_tool": "Donnez une brève description du danger et des messages. Cela devrait faire 1 à 3 phrases.", "title_tool": "Par exemple : Messages de sécurité pour les Inondations", "safety_tool": "Ceci est une action prioritaire qu'une personne devrait entreprendre pour rester en sécurité. Le message doit être orienté vers l'action, concis et faire moins de 50 caractères.", - "supporting_tool": "Ceci fournit plus de détails pour soutenir l'action clé prioritaire. Le message doit être orienté vers l'action et concis." + "supporting_tool": "Ceci fournit plus de détails pour soutenir l'action clé prioritaire. Le message doit être orienté vers l'action et concis.", + "mitigate_risk": "Atténuer le Risque" }, "message_editor": { "title": "Éditeur d'Attribution", diff --git a/resources/lang/ht.json b/resources/lang/ht.json index 8af2708..2ebe89e 100644 --- a/resources/lang/ht.json +++ b/resources/lang/ht.json @@ -30,7 +30,7 @@ "email_confirmed": "Mèsi pou konfime adrès imel ou. Silvouplè konekte.", "confirmation_failed": "Adrès imel ou a pa ka konfime, tanpri kontakte administratè ou a pou eseye ankò.", "home_redirect": "Ale sou paj akèy la", - "status": "Eta\/Kondisyon", + "status": "Eta/Kondisyon", "remember_me": "Sonje m", "old_password": "Modpas ou gen kounye a", "password": "Modpas", @@ -197,13 +197,15 @@ "steps": { "one": { "heading": "Etap 1 - Enskri", - "body": "Pou kòmanse itilize done ki soti nan API Baz Done Mesaj Sekirite a, premye {0} nan Portal Baz Done Mesaj Sekirite a.\n\nOu ka itilize kont Facebook ak Google ou, oswa yon adrès imel pou kreye yon kont.", "create_account_alt": "kreye yon kont", + "body": "Pou kòmanse itilize done ki soti nan API Baz Done Mesaj Sekirite a, premye {0} nan Portal Baz Done Mesaj Sekirite a.\n\nOu ka itilize kont Facebook ak Google ou, oswa yon adrès imel pou kreye yon kont.", + "create_account_alt": "kreye yon kont", "existing_account": "Si w gen yon kont deja, tanpri {0}.", "login_cta": "konekte", "sign_up_cta": "enskri" }, "two": { - "body": "Pou itilize API a, ou dwe kreye yon aplikasyon nan Portal Baz Done Mesaj Sekirite a. Di nou yon ti kras sou sa w ap bati a.", "create_app_alt": "kreye yon aplikasyon", + "body": "Pou itilize API a, ou dwe kreye yon aplikasyon nan Portal Baz Done Mesaj Sekirite a. Di nou yon ti kras sou sa w ap bati a.", + "create_app_alt": "kreye yon aplikasyon", "heading": "Etap 2 - Kreye yon aplikasyon" }, "three": { @@ -214,7 +216,8 @@ }, "four": { "api_docs_cta": "Dokiman API", - "body": "API Baz Done Mesaj Sekirite a itilize HTTP(S) epi li bay pwen final RESTful pou jwenn done pibliye yo.\n\nChak demann dwe otantifye lè l sèvi avèk kle API ki te kreye nan etap anvan an.", "example_title": "Egzanp demann", + "body": "API Baz Done Mesaj Sekirite a itilize HTTP(S) epi li bay pwen final RESTful pou jwenn done pibliye yo.\n\nChak demann dwe otantifye lè l sèvi avèk kle API ki te kreye nan etap anvan an.", + "example_title": "Egzanp demann", "heading": "Etap 4 - Fè yon demann", "moreInfo": "Pou plis enfòmasyon sou tout pwen final API yo, gade {0}." } @@ -438,9 +441,9 @@ "immediate": "Imedyat", "warning": "Avètisman", "anticipated": "Antisipe", - "assess_and_plan":"Evalye epi Planifye", - "mitigate_risks":"Diminye Risk", - "prepare_to_respond":"Prepare pou Reponn", + "assess_and_plan": "Evalye epi Planifye", + "mitigate_risks": "Diminye Risk", + "prepare_to_respond": "Prepare pou Reponn", "recover": "Rekipere" }, "content": { @@ -511,7 +514,8 @@ "content_description_description": "Deskripsyon Mesaj Sekirite sa yo", "content_label": "Tanpri antre enfòmasyon danje yo", "content_url": "URL", - "content_url_description": "URL pou plis enfòmasyon sou Mesaj Sekirite sa yo. Tanpri enkli pwotokòl la, sa vle di http:// oswa https://", "created": "kreye", + "content_url_description": "URL pou plis enfòmasyon sou Mesaj Sekirite sa yo. Tanpri enkli pwotokòl la, sa vle di http:// oswa https://", + "created": "kreye", "pieces_edited": " Moso edite", "content_placeholder": "Tanpri antre yon mesaj", "mitigation": "Alèjman", @@ -522,7 +526,7 @@ "seasonalForecast_extra": "Yon previzyon sezonye se yon deklarasyon sou prediksyon yon evènman danjere. Aksyon ki poze yo fèt pou evalye potansyèl risk yo epitou planifye aktivite yo pou diminye oswa pwoteje kay la.", "watch": "Gade", "watch_help": "Prepare pou reponn", - "watch_extra": "Yon alèt bay lè gen risk pou yo yon evènman ki gen danje ladan ogmante siyifikativman, men ensidan li yo, kote, ak \/ oswa distribisyon yo toujou ensèten. Li fèt nan entansyon pou bay ase tan pou aksyon pwoteksyon ak preparasyon reponn.", + "watch_extra": "Yon alèt bay lè gen risk pou yo yon evènman ki gen danje ladan ogmante siyifikativman, men ensidan li yo, kote, ak / oswa distribisyon yo toujou ensèten. Li fèt nan entansyon pou bay ase tan pou aksyon pwoteksyon ak preparasyon reponn.", "warning": "Avètisman", "warning_help": "Prepare pou reponn", "warning_extra": "Yon avètisman bay lè yon evènman danjere k ap rive, tou pre, oswa gen trè gwo pwobablite pou l rive. Sa vle di kondisyon yo poze yon menas pou lavi oswa pwopriyete. Moun ki sou chemen danjere sa a bezwen poze aksyon yo k ap pwoteje.", @@ -554,7 +558,8 @@ "content_edit_title": "Edite Kontni", "content_add_hazard_title": "Ajoute Danje", "key_message_label": "Tit Mesaj Kle", - "supporting_message_label": "Mesaj Sipò" + "supporting_message_label": "Mesaj Sipò", + "mitigate_risk": "Diminye Risk" }, "message_editor": { "title": "Editè Atribisyon", @@ -614,7 +619,7 @@ "bad_request_error_codes": { "30001": "Tit kolòn ki pa mache ak modèl la", "30002": "Non atribisyon, mesaj oswa url ki manke", - "30003": "Atribisyon url ki pa valab - tanpri asire pwotokòl la prezan, eg. https:\/\/", + "30003": "Atribisyon url ki pa valab - tanpri asire pwotokòl la prezan, eg. https://", "40001": "Kòd peyi ki pa valid yo bay", "40002": "Sosyete chwazi ki pa mache sosyete pou achiv chwazi", "40003": "Done nan achiv chwazi ki te ekspòte e malfòme ak enpòtasyon pa kapab konplè" @@ -685,7 +690,7 @@ }, "landing": { "strapline": "Sèvis Baz Done Mesaj Sekirite", - "strapline_part_2": "Kwa Wouj Global\/ Mesaj Kle yo pou sekirite Kwa Wouj", + "strapline_part_2": "Kwa Wouj Global/ Mesaj Kle yo pou sekirite Kwa Wouj", "head_1": "Sekirite IFRC", "head_2": "Baz Done Mesaj", "head_text_1": "Mesaj Sekirite ki baze sou Konsyantizasyon Piblik IFRC ak", @@ -740,7 +745,7 @@ "fake_alert_heading": "Avètisman fwa ekstrèm", "fake_alert_description": "Men, sa a egzije pou yon distenksyon senp epi fasil. Pou tan lib lè pouvwa nou an.", "fake_alert_time": "1 è PASE", - "fake_alert_time_exact": "05\/02\/18 a 5:15 CT", + "fake_alert_time_exact": "05/02/18 a 5:15 CT", "use_cases": { "heading": "Aprann plis", "first_heading": "kijan li fonksyone", @@ -781,7 +786,7 @@ }, "data_preview": { "heading": "Mesaj Sekirite", - "sub_heading": "Enskri epi gade mesaj aksyon kle ki soti nan Lakwa Wouj \/ Kwasan Wouj Sosyete Nasyonal atravè monn lan\n" + "sub_heading": "Enskri epi gade mesaj aksyon kle ki soti nan Lakwa Wouj / Kwasan Wouj Sosyete Nasyonal atravè monn lan\n" }, "footer": { "terms_conditions": "Tèm ak kondisyon yo\n", @@ -837,10 +842,10 @@ "industries": { "media": "Medya", "emergency": "Jesyon Ijans", - "non_profit": "Òganizasyon Non-gouvènmantal (ONG)\/Ki pa Peye", + "non_profit": "Òganizasyon Non-gouvènmantal (ONG)/Ki pa Peye", "humanitarian": "Òganizasyon Imanitè", - "red_cross": "Lakwa Wouj\/Kwasan Wouj", - "education": "Edikasyon\/Akademi", + "red_cross": "Lakwa Wouj/Kwasan Wouj", + "education": "Edikasyon/Akademi", "gov": "Ajans Gouvènman an", "other": "Lòt" }, @@ -855,9 +860,9 @@ "body": "Lwa yo nan Distri a nan Kolonbi pral gouvène tout dwa ak obligasyon anba Kontra sa-a, san yo pa bay efè nan nenpòt prensip nan konfli nan lwa yo.", "heading": "Lwa ki aplikab:" }, - "body": "Ou responsab pou kenbe sekrè ak sekirite kle enskripsyon Lakwa Wouj ba ou an. Ou responsab pou kenbe konpatibilite ak API a, jan yo mete ajou de tanzantan, pou kontinye resevwa Transmisyon Done yo. Lakwa Wouj ka lage vèsyon ki ajou nan API a ak Transmisyon Done yo nan sèl diskresyon li. Nouvo vèsyon yo ka pa konpatib ak aplikasyon anvan yo, epi ou dakò pou itilize vèsyon ki pi resamman mete ajou nan Transmisyon Done yo a toutan.\n\nOu dakò pa modifye, distribye, dekonpilasyon, demonte, oswa ranvèse enjenyè nenpòt pòsyon nan API a oswa nenpòt lojisyèl nan Lakwa Wouj.\n\nOu pa ka sèvi ak API la oswa Transmisyon Done yo nan yon fason ki depase volim demann rezonab oswa konstitye yo oswa itilizasyon abizif, jan yo detèmine pa Lakwa Wouj nan sèl diskresyon li.\n\nOu pa ka sèvi ak API a oswa Transmisyon Done yo nan yon fason ki ilegal, twonpè, neglijan, malveyan, lide lakòz domaj, oswa sa nwi Lakwa Wouj, founisè sèvis li yo, founisè kontni li yo, oswa nenpòt ki lòt moun, tankou detèmine pa Kwasan Wouj nan sèl diskresyon li.\n\nLakwa Wouj ka siveye itilizasyon API a ak Transmisyon Done yo. Ou pa ka itilize okenn mwayen teknik pou entèfere ak siveyans sa yo, epi Lakwa Wouj ka itilize mwayen teknik pou simonte nenpòt entèferans sa yo.\n\nItilizasyon prepasyon an, nan repons lan, ak rekiperasyon an pa dwe prezante sèlman kòm aktyèlman oswa mete ajou sou premye paramèt lan nan epòk lan, epi pral mete ajou preparasyon endividyèl la, reponn epi rekipere mesaj mizajou a nan transmisyon done yo ak \/ oswa alèt evènman korelate pa Lakwa Wouj la.\n\nPrepare ou, reponn epi rekipere mesaj yo ke ou itilize pa dwe asosye avek rejyon jeyografik la pou li ke yo bay li a. Itilizasyon preparasyon an, nan repons ak rekiperasyon an pa dwe prezante ke kòm aktyèlman oswa mizajou sou paramèt ijans nan epòk la, epi mete ajou preparasyon endividyèl la, reponn epi rekipere mesaj yo nan mizajou transmisyon done yo ak \/ oswa alèt evènman korelate Lakwa Wouj la. Ou pa dwe kontinye sèvi ak nenpòt Sous Referans.\n\nOu pa ka tradui transmisyon done yo, alet evènman yo ak \/ oswa prepare, reponn ak rekipere mesaj yo nan yon lòt lang, pote yon itilizasyon, modifikasyon ak revizyon, oswa modifikasyon siyifikasyon an nan transmisyon done yo, alèt evènman yo ak \/ oswa prepare, reponn ak rekipere mesaj yo.\n\nOu dwe asire ke Transmisyon Done yo rete nan posesyon ak\/oubyen sèl kontwòl ou.\n\nOu pa ka otorize alèt evènman yo epi prepare, reponn, epi rekipere mesaj livre a itilizate final yo pou entegre tout piblisite oswa parenaj.\n\nOu pa ka fè achiv nan oken pati Transmisyon Done yo.", + "body": "Ou responsab pou kenbe sekrè ak sekirite kle enskripsyon Lakwa Wouj ba ou an. Ou responsab pou kenbe konpatibilite ak API a, jan yo mete ajou de tanzantan, pou kontinye resevwa Transmisyon Done yo. Lakwa Wouj ka lage vèsyon ki ajou nan API a ak Transmisyon Done yo nan sèl diskresyon li. Nouvo vèsyon yo ka pa konpatib ak aplikasyon anvan yo, epi ou dakò pou itilize vèsyon ki pi resamman mete ajou nan Transmisyon Done yo a toutan.\n\nOu dakò pa modifye, distribye, dekonpilasyon, demonte, oswa ranvèse enjenyè nenpòt pòsyon nan API a oswa nenpòt lojisyèl nan Lakwa Wouj.\n\nOu pa ka sèvi ak API la oswa Transmisyon Done yo nan yon fason ki depase volim demann rezonab oswa konstitye yo oswa itilizasyon abizif, jan yo detèmine pa Lakwa Wouj nan sèl diskresyon li.\n\nOu pa ka sèvi ak API a oswa Transmisyon Done yo nan yon fason ki ilegal, twonpè, neglijan, malveyan, lide lakòz domaj, oswa sa nwi Lakwa Wouj, founisè sèvis li yo, founisè kontni li yo, oswa nenpòt ki lòt moun, tankou detèmine pa Kwasan Wouj nan sèl diskresyon li.\n\nLakwa Wouj ka siveye itilizasyon API a ak Transmisyon Done yo. Ou pa ka itilize okenn mwayen teknik pou entèfere ak siveyans sa yo, epi Lakwa Wouj ka itilize mwayen teknik pou simonte nenpòt entèferans sa yo.\n\nItilizasyon prepasyon an, nan repons lan, ak rekiperasyon an pa dwe prezante sèlman kòm aktyèlman oswa mete ajou sou premye paramèt lan nan epòk lan, epi pral mete ajou preparasyon endividyèl la, reponn epi rekipere mesaj mizajou a nan transmisyon done yo ak / oswa alèt evènman korelate pa Lakwa Wouj la.\n\nPrepare ou, reponn epi rekipere mesaj yo ke ou itilize pa dwe asosye avek rejyon jeyografik la pou li ke yo bay li a. Itilizasyon preparasyon an, nan repons ak rekiperasyon an pa dwe prezante ke kòm aktyèlman oswa mizajou sou paramèt ijans nan epòk la, epi mete ajou preparasyon endividyèl la, reponn epi rekipere mesaj yo nan mizajou transmisyon done yo ak / oswa alèt evènman korelate Lakwa Wouj la. Ou pa dwe kontinye sèvi ak nenpòt Sous Referans.\n\nOu pa ka tradui transmisyon done yo, alet evènman yo ak / oswa prepare, reponn ak rekipere mesaj yo nan yon lòt lang, pote yon itilizasyon, modifikasyon ak revizyon, oswa modifikasyon siyifikasyon an nan transmisyon done yo, alèt evènman yo ak / oswa prepare, reponn ak rekipere mesaj yo.\n\nOu dwe asire ke Transmisyon Done yo rete nan posesyon ak/oubyen sèl kontwòl ou.\n\nOu pa ka otorize alèt evènman yo epi prepare, reponn, epi rekipere mesaj livre a itilizate final yo pou entegre tout piblisite oswa parenaj.\n\nOu pa ka fè achiv nan oken pati Transmisyon Done yo.", "contact": "Tanpri kontakte Lakwa Rouj nan [nimewo telefòn] avèk nenpòt kesyon ou genyen konsènan API a.", - "disclaimer": "API ak Transmisyon Done yo founi inikman pou enfòmasyon ak edikasyon, epi sou yon baz de \" tankou \" epi \"disponib tou\". Lakwa Wouj pa fè okenn reprezantasyon oswa garanti nenpòt kalite, ekspresyon oswa enplisit. Lakwa Wouj refize tout garanti eksprime ni enplisit, tankou garanti enplisit nan komès ak kapasite pou yon rezon patikilye. Lakwa Wouj ak anplwaye li yo, ofisye yo, gouvènè yo ak ajan yo ak lisansye yo p ap responsab pou oken domaj ki rive nan itilizasyon API, Transmisyon Done, Alèt Evènman, ak \/ oubyen mesaj Prepare, Reponn, ak Rekipere, tankou domaj endirèk, ensidan, ak domaj konsekan.\n\nLakwa Wouj pa garanti sekans, presizyon, otantisite oubyen konpletid nan API a, Transmisyon Done yo, Avètisman Evènman ak \/ oubyen mesaj Prepare, Reponn, epi Rekipere epi yo pa dwe responsab nan okenn fason pou ou menm oubyen itilizatè ou oubyen nenpòt twazyèm pati, tankou pou nenpòt ki reta, erè oswa omisyon, ki gen rapò ak API a, Transmisyon Done yo, Evènman Alèt ak \/ oubyen mesaj Prepare, reponn, epi rekipere ki bay.", + "disclaimer": "API ak Transmisyon Done yo founi inikman pou enfòmasyon ak edikasyon, epi sou yon baz de \" tankou \" epi \"disponib tou\". Lakwa Wouj pa fè okenn reprezantasyon oswa garanti nenpòt kalite, ekspresyon oswa enplisit. Lakwa Wouj refize tout garanti eksprime ni enplisit, tankou garanti enplisit nan komès ak kapasite pou yon rezon patikilye. Lakwa Wouj ak anplwaye li yo, ofisye yo, gouvènè yo ak ajan yo ak lisansye yo p ap responsab pou oken domaj ki rive nan itilizasyon API, Transmisyon Done, Alèt Evènman, ak / oubyen mesaj Prepare, Reponn, ak Rekipere, tankou domaj endirèk, ensidan, ak domaj konsekan.\n\nLakwa Wouj pa garanti sekans, presizyon, otantisite oubyen konpletid nan API a, Transmisyon Done yo, Avètisman Evènman ak / oubyen mesaj Prepare, Reponn, epi Rekipere epi yo pa dwe responsab nan okenn fason pou ou menm oubyen itilizatè ou oubyen nenpòt twazyèm pati, tankou pou nenpòt ki reta, erè oswa omisyon, ki gen rapò ak API a, Transmisyon Done yo, Evènman Alèt ak / oubyen mesaj Prepare, reponn, epi rekipere ki bay.", "entire_agreement": { "body": "Regleman API yo konstitye akò konplè ak eksklizif ant Lakwa Wouj ak ou menm ki gen rapò ak sijè sa a epi ranplase tout konpreyansyon alavans oral oubyen ekri, kominikasyon, oubyen akò ki pa espesyalman enkòpore nan dokiman sa a. Lakwa Wouj rezève dwa pou li modifye oubyen anile akò sa a nenpòt lè.", "heading": "Akò Konplè a:" @@ -865,11 +870,12 @@ "heading": "AKÒ LISANS ITILIZATÈ FINAL API", "intro": "AKÒ: PA ITILIZE SÈVIS LA OUBYEN TCHEKE BWAT YO BAY LA, ITILIZATÈ DAKÒ AK AKÒ SA a.\n\nAPI a se yon zouti ki pèmèt ou (\"Ou\") rekipere epi sèvi ak done ki disponib pa Lakwa Wouj tankou yon rezo nan move tan mondyal ak avètisman evènman dezas epi gade avi (\"Alèt Evènman\") ak yon transmisyon mesaj kontèksyalize aksyonab sou kòman yo prepare danje lokal yo pa kalite danje ak ijans (\"Mesaj Prepare, Reponn, ak Rekipere\", ak kolektivman ak Alèt yo Evènman, \"Transmisyon Done yo\"). Prepare, Reponn, Rejwenn mesaj la pou akonpaye Alèt evènman oswa lòt avètisman epi gade avi ki asosye ak metewo ak katastwòf nan aplikasyon w lan. Se kondisyon API yo ki reglemante itlizasyon w ap fè ak Done yo.", "license_limitations": { - "body": "Ou ka itilize Transmisyon Done yo sèlman ak aplikasyon w lan ki reglemante pa kondisyon API yo, e te bay pou kenbe konpatibilte ak API yo, jan mizajou yo fèt detanzantan. Yo ba w dwa (e se pa ou sèl ki genyen l, li limite e w ka pèdi) pou w telechaje, itilize, repwodui epi distribiye bay itilizatè final yo pwòp aplikasyon w (“End Users”) Alèt evènman e prepare, reponn, ak rejwenn mesaj an kolaborasyon ak paramèt ijans alèt evènman endividyèl ki soti nan Transmisyon Done yo ki anba tèm API yo. Ou ka sèlman itilize API pou fasilite itilizasyon ki pa komèsyal Transmisyon Done yo annakò ak Tèm API yo. Nan okenn ka ou pa ka itilize API a pou fasilte itilizasyon komèsyal Transmisyon Done yo, Evènman alèt yo ak\/oswa Prepare,repon, ak Rejwenn mesaj, sa gen ladan l, san okenn limit, revann yo, fè peye pou gen aksè ak yo, fè peye pou redistribiye yo, oswa fè peye pou kreye pwodui derive ki soti nan yo. Kwa Wouj ak moun ki bay lisans li yo kenbe tout tit, pwopriyete, dwa ak enterè nan API a, Prepare, reponn, ak Rejwenn mesaj, Transmisyon Done yo, Evènman alèt yo ak sous referans yo (jan yo defini sa anba a) nan dokiman sa a. Tout dwa pa eksprèseman akòde yo rezève.", + "body": "Ou ka itilize Transmisyon Done yo sèlman ak aplikasyon w lan ki reglemante pa kondisyon API yo, e te bay pou kenbe konpatibilte ak API yo, jan mizajou yo fèt detanzantan. Yo ba w dwa (e se pa ou sèl ki genyen l, li limite e w ka pèdi) pou w telechaje, itilize, repwodui epi distribiye bay itilizatè final yo pwòp aplikasyon w (“End Users”) Alèt evènman e prepare, reponn, ak rejwenn mesaj an kolaborasyon ak paramèt ijans alèt evènman endividyèl ki soti nan Transmisyon Done yo ki anba tèm API yo. Ou ka sèlman itilize API pou fasilite itilizasyon ki pa komèsyal Transmisyon Done yo annakò ak Tèm API yo. Nan okenn ka ou pa ka itilize API a pou fasilte itilizasyon komèsyal Transmisyon Done yo, Evènman alèt yo ak/oswa Prepare,repon, ak Rejwenn mesaj, sa gen ladan l, san okenn limit, revann yo, fè peye pou gen aksè ak yo, fè peye pou redistribiye yo, oswa fè peye pou kreye pwodui derive ki soti nan yo. Kwa Wouj ak moun ki bay lisans li yo kenbe tout tit, pwopriyete, dwa ak enterè nan API a, Prepare, reponn, ak Rejwenn mesaj, Transmisyon Done yo, Evènman alèt yo ak sous referans yo (jan yo defini sa anba a) nan dokiman sa a. Tout dwa pa eksprèseman akòde yo rezève.", "heading": "Lisans ak Limit:" }, "overview": { - "body": "Entèfas Pwogram Aplikasyon Sèvis Baz Done Mesaj Sekirite Sant Preparasyon Global pou Katastwòf la (“API”) disponib pou ou pa Lakwa Wouj Nasyonal Ameriken an (“Lakwa Wouj”). API a mande yon kle enskripsyon. Pandan pwosesis enskripsyon an, ou dwe dakò ak tèm ak kondisyon sa yo, ansanm ak tèm ak kondisyon nan Akò Tèm Sèvis Sit Wèb Lakwa Wouj ki disponib nan {0} (ansanm, “Tèm API yo”). Tèm API yo pral gouvène itilizasyon API ou a ak materyèl elektwonik telechaje ki disponib atravè API a. {1}", "cta": "Klike la a pou ou enkri." + "body": "Entèfas Pwogram Aplikasyon Sèvis Baz Done Mesaj Sekirite Sant Preparasyon Global pou Katastwòf la (“API”) disponib pou ou pa Lakwa Wouj Nasyonal Ameriken an (“Lakwa Wouj”). API a mande yon kle enskripsyon. Pandan pwosesis enskripsyon an, ou dwe dakò ak tèm ak kondisyon sa yo, ansanm ak tèm ak kondisyon nan Akò Tèm Sèvis Sit Wèb Lakwa Wouj ki disponib nan {0} (ansanm, “Tèm API yo”). Tèm API yo pral gouvène itilizasyon API ou a ak materyèl elektwonik telechaje ki disponib atravè API a. {1}", + "cta": "Klike la a pou ou enkri." }, "privacy_policy": { "body": "Ou konprann, ou rekonèt, e ou dakò ak operasyon kèk pwogram, sèvis, zouti, opsyon acha, oswa enfòmasyon nan API a egzije pou ou soumisyon, itilizasyon piblikasyon divès enfòmasyon a karaktè pèsonèl. Pa konsekan, si ou vle gen aksè epi itilize API a, ou rekonèt e ou dakò itilizasyon API a vle di ou aksepte koleksyon enfòmasyon a karaktè pèsonèl ak itilizasyon pratik ki nan politik konfidansyalite ki pibliye yo: {0}", @@ -883,17 +889,17 @@ "two": "Kontoune oswa modifye nenpòt kle oswa sekirite mekanism travay pa Lakwa Wouj oswa API a, ki gen ladan san limitasyon teknoloji otantifikasyon yo.", "three": "Pou mande, kolekte, solisite oswa jwenn aksè pou konekte non, modpas oswa lòt idantifyan pou Kwa Wouj ki pa sa yo te ba ou yo pou pwòp kont ou.", "four": "Pou deklare oswa fè konnen yon fason endirèk yon afilyasyon, parenaj oswa apui Sosyete Lakwa wouj oswa Kwasan Wouj bay.", - "five": "Pou deklare oswa fè konnen yon fason endirèk ou gen oswa ou te kreye yon API, Transmisyon Done yo, Alèt evènman ak\/oswa Prepare, Reponn oswa rejwenn mesaj yo.", + "five": "Pou deklare oswa fè konnen yon fason endirèk ou gen oswa ou te kreye yon API, Transmisyon Done yo, Alèt evènman ak/oswa Prepare, Reponn oswa rejwenn mesaj yo.", "six": "Transmèt nenpòt viris, viris ki rele Trojan horses la, oswa nenpòt lòt bagay ki ka fè dega enfòmatik." } }, - "reserve_rights": "Kwa Wouj gen dwa pou l modifye ak\/oswa ba bay API ak Transmisyon Done yo annantye oswa an pati, tanporèman oswa definitivman, nenpòt kilè san avètisman alavans. Pou evite dout, anyen nan dokiman sa a pa oblije Kwa Wouj mete API ak Transmisyon Done li yo disponib pou ou, e ou dakò e ou rekonèt nenpòt aksè avèk yo, se tout responsablite Kwa Wouj pou l deside sa.", + "reserve_rights": "Kwa Wouj gen dwa pou l modifye ak/oswa ba bay API ak Transmisyon Done yo annantye oswa an pati, tanporèman oswa definitivman, nenpòt kilè san avètisman alavans. Pou evite dout, anyen nan dokiman sa a pa oblije Kwa Wouj mete API ak Transmisyon Done li yo disponib pou ou, e ou dakò e ou rekonèt nenpòt aksè avèk yo, se tout responsablite Kwa Wouj pou l deside sa.", "severability": { "body": "Nenpòt tèm oswa dispozisyon nan Tèm API yo p ap afekte validite nenpòt lòt dispozisyon.", "heading": "Diviziblite ak renonsyasyon:" }, "suspension": { - "body": "Kwa Wouj gen dwa kanpe oswa mete fen nan aksè ou si Kwa Wouj deside sa, sa nan otorite l, si ou kòmanse itilize API oswa Transmisyon Done yo yon fason ki pa otorize jan sa dekri nan Tèm API yo oswa ou ap itilize API oswa Transmisyon Done yo nan nenpòt aktivite ki menase\/mete an danje sekirite nenpòt moun oswa rezo Kwa wouj yo.", + "body": "Kwa Wouj gen dwa kanpe oswa mete fen nan aksè ou si Kwa Wouj deside sa, sa nan otorite l, si ou kòmanse itilize API oswa Transmisyon Done yo yon fason ki pa otorize jan sa dekri nan Tèm API yo oswa ou ap itilize API oswa Transmisyon Done yo nan nenpòt aktivite ki menase/mete an danje sekirite nenpòt moun oswa rezo Kwa wouj yo.", "heading": "Sispansyon oswa Revokasyon:" } }, diff --git a/resources/lang/id.json b/resources/lang/id.json index 7335ad6..725ffee 100644 --- a/resources/lang/id.json +++ b/resources/lang/id.json @@ -441,9 +441,9 @@ "immediate": "Immediate", "warning": "Warning", "anticipated": "Anticipated", - "assess_and_plan":"Assess and Plan", - "mitigate_risks":"Mitigate Risk", - "prepare_to_respond":"Prepare to Respond", + "assess_and_plan": "Assess and Plan", + "mitigate_risks": "Mitigate Risk", + "prepare_to_respond": "Prepare to Respond", "recover": "Recover" }, "content": { @@ -526,7 +526,7 @@ "seasonalForecast_extra": "Prakiraan iklim musiman merupakan sebuah pernyataan prediksi atas peristiwa berbahaya. Tindakan yang dilakukan adalah menilai potensi risiko dan merencanakan aktivitas untuk mengurangi risiko dan melindungi rumah tangga.", "watch": "Pengawasan", "watch_help": "Bersiap untuk menanggapi", - "watch_extra": "Pengawasan dilakukan ketika risiko suatu peristiwa berbahaya telah meningkat secara signifikan, tetapi kemunculannya, lokasi, dan\/atau waktunya masih belum pasti. Tujuannya yaitu menyediakan waktu yang cukup untuk tindakan perlindungan dan persiapan.", + "watch_extra": "Pengawasan dilakukan ketika risiko suatu peristiwa berbahaya telah meningkat secara signifikan, tetapi kemunculannya, lokasi, dan/atau waktunya masih belum pasti. Tujuannya yaitu menyediakan waktu yang cukup untuk tindakan perlindungan dan persiapan.", "warning": "Peringatan", "warning_help": "Bersiap untuk menanggapi", "warning_extra": "Peringatan dikeluarkan saat peristiwa berbahaya sedang terjadi, akan segera terjadi, atau memiliki kemungkinan yang sangat tinggi untuk terjadi. Ini berarti kondisi yang dapat mengancam nyawa atau harta benda. Orang-orang yang berada di jalur bahaya ini perlu mengambil tindakan perlindungan.", @@ -558,7 +558,8 @@ "content_edit_title": "Content Edit", "content_add_hazard_title": "Add Hazard", "key_message_label": "Key message title", - "supporting_message_label": "Supporting message" + "supporting_message_label": "Supporting message", + "mitigate_risk": "Mitigate Risk" }, "message_editor": { "title": "Editor Atribusi", @@ -618,7 +619,7 @@ "bad_request_error_codes": { "30001": "Judul kolom tidak cocok dengan templat", "30002": "Nama atribusi, pesan atau url hilang", - "30003": "Url atribusi tidak valid - pastikan protokolnya disertakan, yaitu https:\/\/", + "30003": "Url atribusi tidak valid - pastikan protokolnya disertakan, yaitu https://", "40001": "Kode negara yang disediakan tidak valid", "40002": "Perhimpunan yang dipilih tidak sesuai dengan berkas yang dipilih", "40003": "Tanggal ekspor berkas yang dipilih memiliki format yang salah dan impor tidak dapat diselesaikan" @@ -689,7 +690,7 @@ }, "landing": { "strapline": "Layanan Basis Data Pesan Keamanan", - "strapline_part_2": "Pesan Keamanan Utama Palang Merah \/ Bulan Sabit Merah Global", + "strapline_part_2": "Pesan Keamanan Utama Palang Merah / Bulan Sabit Merah Global", "head_1": "Keselamatan IFRC", "head_2": "Basis Data Pesan", "head_text_1": "Pesan keselamatan berdasarkan Kesadaran Publik IFRC dan", @@ -744,7 +745,7 @@ "fake_alert_heading": "Peringatan Cuaca Dingin Ekstrim", "fake_alert_description": "Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est.", "fake_alert_time": "1 JAM YANG LALU", - "fake_alert_time_exact": "05\/02\/18 jam 05:15 CT", + "fake_alert_time_exact": "05/02/18 jam 05:15 CT", "use_cases": { "heading": "Pelajari Lebih Lanjut", "first_heading": "Cara Kerja", @@ -785,7 +786,7 @@ }, "data_preview": { "heading": "Pesan Keselamatan", - "sub_heading": "Daftar dan lihat pesan tindakan utama dari Perhimpunan Nasional Palang Merah \/ Bulan Sabit Merah di seluruh dunia" + "sub_heading": "Daftar dan lihat pesan tindakan utama dari Perhimpunan Nasional Palang Merah / Bulan Sabit Merah di seluruh dunia" }, "footer": { "terms_conditions": "Syarat & Ketentuan", @@ -843,8 +844,8 @@ "emergency": "Manajemen Darurat", "non_profit": "Nirlaba", "humanitarian": "Organisasi Kemanusiaan", - "red_cross": "Palang Merah\/Bulan Sabit Merah", - "education": "Pendidikan\/Akademik", + "red_cross": "Palang Merah/Bulan Sabit Merah", + "education": "Pendidikan/Akademik", "gov": "Badan Pemerintahan", "other": "Lainnya" }, @@ -859,9 +860,9 @@ "body": "Undang-undang Distrik Kolombia akan mengatur semua hak dan kewajiban yang terdapat dalam Perjanjian ini, tanpa memengaruhi prinsip-prinsip konflik hukum.", "heading": "Hukum yang berlaku:" }, - "body": "Anda bertanggung jawab untuk menjaga kerahasiaan dan keamanan kode registrasi yang diberikan oleh Palang Merah kepada Anda. Anda bertanggung jawab untuk menjaga kompatibilitas dengan API, yang diperbarui dari waktu ke waktu, agar terus menerima Umpan Data. Palang Merah dapat merilis versi terbaru dari API dan Umpan Data atas kebijakannya sendiri. Versi baru mungkin tidak kompatibel dengan penerapan sebelumnya, dan Anda setuju untuk menggunakan versi terbaru dari Umpan Data setiap saat.\n\nAnda setuju untuk tidak mengubah, mendistribusikan, mendekompilasi, membongkar, atau merekayasa balik bagian mana pun dari API atau perangkat lunak Palang Merah.\n\nAnda tidak boleh menggunakan API atau Umpan Data dengan cara yang melebihi volume permintaan yang wajar atau penggunaan yang berlebihan atau disalahgunakan, sebagaimana yang telah ditentukan oleh Palang Merah atas kebijakannya sendiri.\n\nAnda tidak boleh menggunakan API atau Umpan Data dengan cara yang melanggar hukum, menyesatkan, melalaikan, yang bermaksud untuk menyebabkan kerugian, atau merugikan Palang Merah, penyedia layanannya, penyedia kontennya, atau pun pihak lain, sebagaimana ditentukan oleh Palang Merah atas kebijakannya sendiri.\n\nPalang Merah dapat memantau penggunaan API dan Umpan Data Anda. Anda tidak boleh menggunakan cara teknis apa pun untuk mengganggu pemantauan tersebut, dan Palang Merah dapat menggunakan cara teknis untuk mengatasi gangguan tersebut.\n\nPenggunaan Pesan Siap, Tanggap dan Pulihkan hanya akan ditampilkan sebagai pengaturan terkini atau terbaru ke pengaturan urgensi terkini dari Peringatan Peristiwa terkait, dan Anda harus memperbarui Pesan Siap, Tanggap dan Pulihkan Perseorangan setelah pemutakhiran Umpan Data dan\/atau terkait Peringatan Peristiwa oleh Palang Merah.\n\nPesan Siap, Tanggap dan Pulihkan perseorangan yang Anda gunakan sebaiknya hanya diasosiasikan dengan letak geografis di mana ia diterbitkan. Apabila Pesan Siap, Tanggap dan Pulihkan menyertakan referensi ke sebuah sumber seperti American Red Cross atau organisasi atau perhimpunan Palang Merah atau Bulan Sabit Merah nasional lainnya (tiap “Referensi Sumber”), Anda harus menyertakan Referensi Sumber yang diasosiasikan dengan tiap Pesan Siap, Tanggap dan Pulihkan dalam formulir yang disediakan di Umpan Data. Anda tidak boleh lagi menggunakan Referensi Sumber lainnya.\n\nAnda tidak boleh menerjemahkan Umpan Data, Peringatan Peristiwa dan\/atau Pesan Siap, Tanggap dan Pulihkan ke dalam bahasa lain, menggunakan, mengedit atau merevisi, apalagi mengubah arti Umpan Data, Peringatan Acara dan\/atau Pesan Siap, Tanggap dan Pulihkan.\n\nAnda harus memastikan Umpan Data, tetap dalam kepemilikan dan\/atau kendali Anda sendiri.\n\nAnda dapat tidak memberikan izin Peringatan Peristiwa dan Pesan Siap, Tanggap dan Pulihkan yang dikirim kepada Pengguna Langsung bersamaan dengan iklan atau sponsor apa pun.\n\nAnda tidak boleh mengarsipkan Umpan Data secara keseluruhan mau pun sebagian.", + "body": "Anda bertanggung jawab untuk menjaga kerahasiaan dan keamanan kode registrasi yang diberikan oleh Palang Merah kepada Anda. Anda bertanggung jawab untuk menjaga kompatibilitas dengan API, yang diperbarui dari waktu ke waktu, agar terus menerima Umpan Data. Palang Merah dapat merilis versi terbaru dari API dan Umpan Data atas kebijakannya sendiri. Versi baru mungkin tidak kompatibel dengan penerapan sebelumnya, dan Anda setuju untuk menggunakan versi terbaru dari Umpan Data setiap saat.\n\nAnda setuju untuk tidak mengubah, mendistribusikan, mendekompilasi, membongkar, atau merekayasa balik bagian mana pun dari API atau perangkat lunak Palang Merah.\n\nAnda tidak boleh menggunakan API atau Umpan Data dengan cara yang melebihi volume permintaan yang wajar atau penggunaan yang berlebihan atau disalahgunakan, sebagaimana yang telah ditentukan oleh Palang Merah atas kebijakannya sendiri.\n\nAnda tidak boleh menggunakan API atau Umpan Data dengan cara yang melanggar hukum, menyesatkan, melalaikan, yang bermaksud untuk menyebabkan kerugian, atau merugikan Palang Merah, penyedia layanannya, penyedia kontennya, atau pun pihak lain, sebagaimana ditentukan oleh Palang Merah atas kebijakannya sendiri.\n\nPalang Merah dapat memantau penggunaan API dan Umpan Data Anda. Anda tidak boleh menggunakan cara teknis apa pun untuk mengganggu pemantauan tersebut, dan Palang Merah dapat menggunakan cara teknis untuk mengatasi gangguan tersebut.\n\nPenggunaan Pesan Siap, Tanggap dan Pulihkan hanya akan ditampilkan sebagai pengaturan terkini atau terbaru ke pengaturan urgensi terkini dari Peringatan Peristiwa terkait, dan Anda harus memperbarui Pesan Siap, Tanggap dan Pulihkan Perseorangan setelah pemutakhiran Umpan Data dan/atau terkait Peringatan Peristiwa oleh Palang Merah.\n\nPesan Siap, Tanggap dan Pulihkan perseorangan yang Anda gunakan sebaiknya hanya diasosiasikan dengan letak geografis di mana ia diterbitkan. Apabila Pesan Siap, Tanggap dan Pulihkan menyertakan referensi ke sebuah sumber seperti American Red Cross atau organisasi atau perhimpunan Palang Merah atau Bulan Sabit Merah nasional lainnya (tiap “Referensi Sumber”), Anda harus menyertakan Referensi Sumber yang diasosiasikan dengan tiap Pesan Siap, Tanggap dan Pulihkan dalam formulir yang disediakan di Umpan Data. Anda tidak boleh lagi menggunakan Referensi Sumber lainnya.\n\nAnda tidak boleh menerjemahkan Umpan Data, Peringatan Peristiwa dan/atau Pesan Siap, Tanggap dan Pulihkan ke dalam bahasa lain, menggunakan, mengedit atau merevisi, apalagi mengubah arti Umpan Data, Peringatan Acara dan/atau Pesan Siap, Tanggap dan Pulihkan.\n\nAnda harus memastikan Umpan Data, tetap dalam kepemilikan dan/atau kendali Anda sendiri.\n\nAnda dapat tidak memberikan izin Peringatan Peristiwa dan Pesan Siap, Tanggap dan Pulihkan yang dikirim kepada Pengguna Langsung bersamaan dengan iklan atau sponsor apa pun.\n\nAnda tidak boleh mengarsipkan Umpan Data secara keseluruhan mau pun sebagian.", "contact": "Silakan hubungi Palang Merah di {0} untuk pertanyaan mengenai API.", - "disclaimer": "API dan Umpan Data disediakan HANYA UNTUK TUJUAN INFORMASI DAN EDUKASI, dan atas dasar 'sebagaimana adanya' dan 'sebagaimana tersedia'. Palang Merah tidak membuat pernyataan atau jaminan apa pun, tersurat mau pun tersirat. Palang Merah menyangkal semua jaminan, tersurat mau pun tersirat, termasuk namun tidak terbatas pada jaminan tersirat mengenai kelayakan untuk diperdagangkan dan kesesuaian untuk tujuan tertentu. Palang Merah dan para karyawan, pejabat, gubernur dan agen serta pemberi lisensinya tidak akan bertanggung jawab atas kerusakan dalam bentuk apa pun yang timbul dari penggunaan API, Umpan Data, Peringatan Peristiwa, dan\/atau Pesan Siap, Tanggap dan Pulihkan termasuk namun tidak terbatas pada kerusakan langsung, tidak langsung, insidental, punitif dan konsekuensial.\n\nPalang Merah tidak menjamin urutan, keakuratan, keaslian atau kelengkapan API, Umpan Data, Peringatan Peristiwa dan\/atau Pesan Siap, Tanggap dan Pulihkan serta tidak akan bertanggung jawab dengan cara apa pun kepada Anda atau pun Pengguna Langsung bahkan pihak ketiga mana pun, termasuk namun tidak terbatas pada, keterlambatan, ketidakakuratan, kesalahan atau kelalaian, sehubungan dengan API, Umpan Data, Peringatan Peristiwa dan\/atau Pesan Siap, Tanggap dan Pulihkan yang disediakan di bawah ini.", + "disclaimer": "API dan Umpan Data disediakan HANYA UNTUK TUJUAN INFORMASI DAN EDUKASI, dan atas dasar 'sebagaimana adanya' dan 'sebagaimana tersedia'. Palang Merah tidak membuat pernyataan atau jaminan apa pun, tersurat mau pun tersirat. Palang Merah menyangkal semua jaminan, tersurat mau pun tersirat, termasuk namun tidak terbatas pada jaminan tersirat mengenai kelayakan untuk diperdagangkan dan kesesuaian untuk tujuan tertentu. Palang Merah dan para karyawan, pejabat, gubernur dan agen serta pemberi lisensinya tidak akan bertanggung jawab atas kerusakan dalam bentuk apa pun yang timbul dari penggunaan API, Umpan Data, Peringatan Peristiwa, dan/atau Pesan Siap, Tanggap dan Pulihkan termasuk namun tidak terbatas pada kerusakan langsung, tidak langsung, insidental, punitif dan konsekuensial.\n\nPalang Merah tidak menjamin urutan, keakuratan, keaslian atau kelengkapan API, Umpan Data, Peringatan Peristiwa dan/atau Pesan Siap, Tanggap dan Pulihkan serta tidak akan bertanggung jawab dengan cara apa pun kepada Anda atau pun Pengguna Langsung bahkan pihak ketiga mana pun, termasuk namun tidak terbatas pada, keterlambatan, ketidakakuratan, kesalahan atau kelalaian, sehubungan dengan API, Umpan Data, Peringatan Peristiwa dan/atau Pesan Siap, Tanggap dan Pulihkan yang disediakan di bawah ini.", "entire_agreement": { "body": "Syarat API merupakan perjanjian lengkap dan eksklusif antara Palang Merah dan Anda sehubungan dengan materi pokok dalam perjanjian ini dan menggantikan semua pemahaman, komunikasi, atau perjanjian lisan mau pun tertulis sebelumnya yang tidak secara khusus dimasukkan dalam perjanjian ini. Palang Merah berhak untuk memodifikasi atau menghentikan perjanjian ini setiap saat.", "heading": "Keseluruhan Perjanjian:" @@ -869,7 +870,7 @@ "heading": "PERJANJIAN LISENSI PENGGUNA LANGSUNG API", "intro": "SETUJU: DENGAN MENGGUNAKAN LAYANAN INI ATAU MENCENTANG KOTAK YANG DISEDIAKAN, PENGGUNA SETUJU UNTUK TERIKAT DALAM PERJANJIAN INI.\n\nAPI merupakan alat yang memungkinkan Anda (“Anda”) untuk mengambil dan menggunakan umpan data yang disediakan oleh Palang Merah termasuk umpan peringatan cuaca dan bencana global dan notifikasi pengawasan (“Peringatan Peristiwa”) serta umpan pesan yang dapat ditindaklanjuti dan kontekstual dengan cara menghadapi bahaya lokal tergantung jenis bahaya dan urgensinya (“Pesan Siap, Tanggap dan Pulihkan”, dan secara kolektif dengan Peringatan Peristiwa, “ Umpan Data”). Pesan Siap, Tanggap dan Pulihkan dimaksudkan untuk menyertakan Peringatan Peristiwa atau peringatan dan notifikasi pengawasan lainnya yang berkaitan dengan peristiwa cuaca dan bencana dalam aplikasi Anda sendiri. Penggunaan Umpan Data diatur oleh Syarat API.", "license_limitations": { - "body": "Anda dapat menggunakan Umpan Data hanya terkait dengan aplikasi Anda sendiri yang tunduk pada Syarat API, dan Anda wajib menjaga kompatibilitas dengan API, yang diperbarui dari waktu ke waktu. Anda diberikan hak non-eksklusif, terbatas dan dapat dibatalkan untuk mengunduh, menggunakan, mereproduksi dan mendistribusikan ke pengguna langsung aplikasi Anda sendiri (“Pengguna Langsung”) Peringatan Peristiwa serta Pesan Siap, Tanggap dan Pulihkan yang relevan dan kontekstual dengan pengaturan urgensi pada masing-masing Peringatan Peristiwa dari Umpan Data, tunduk pada Syarat API. Anda hanya dapat menggunakan API untuk memfasilitasi penggunaan non-komersial dari Umpan Data sesuai dengan Syarat API. Anda tidak diperkenankan dalam hal apa pun menggunakan API untuk memfasilitasi penggunaan komersial dari Umpan Data, Peringatan Peristiwa dan\/atau Pesan Siap, Tanggap dan Pulihkan, termasuk namun tidak terbatas pada, menjual ulang, meminta imbalan untuk mengaksesnya, meminta imbalan untuk meredistribusi, atau meminta imbalan untuk membuat karya turunan berdasarkan karya mereka. Palang Merah dan pemberi lisensinya mempertahankan semua hak milik, kepemilikan, hak dan kepentingan dalam dan untuk API, Pesan Siap, Tanggap dan Pulihkan, Peringatan Peristiwa, Umpan Data dan Referensi Sumber (sebagaimana yang didefinisikan berikut) di dalamnya. Semua hak yang tidak diberikan secara tersurat dilindungi.", + "body": "Anda dapat menggunakan Umpan Data hanya terkait dengan aplikasi Anda sendiri yang tunduk pada Syarat API, dan Anda wajib menjaga kompatibilitas dengan API, yang diperbarui dari waktu ke waktu. Anda diberikan hak non-eksklusif, terbatas dan dapat dibatalkan untuk mengunduh, menggunakan, mereproduksi dan mendistribusikan ke pengguna langsung aplikasi Anda sendiri (“Pengguna Langsung”) Peringatan Peristiwa serta Pesan Siap, Tanggap dan Pulihkan yang relevan dan kontekstual dengan pengaturan urgensi pada masing-masing Peringatan Peristiwa dari Umpan Data, tunduk pada Syarat API. Anda hanya dapat menggunakan API untuk memfasilitasi penggunaan non-komersial dari Umpan Data sesuai dengan Syarat API. Anda tidak diperkenankan dalam hal apa pun menggunakan API untuk memfasilitasi penggunaan komersial dari Umpan Data, Peringatan Peristiwa dan/atau Pesan Siap, Tanggap dan Pulihkan, termasuk namun tidak terbatas pada, menjual ulang, meminta imbalan untuk mengaksesnya, meminta imbalan untuk meredistribusi, atau meminta imbalan untuk membuat karya turunan berdasarkan karya mereka. Palang Merah dan pemberi lisensinya mempertahankan semua hak milik, kepemilikan, hak dan kepentingan dalam dan untuk API, Pesan Siap, Tanggap dan Pulihkan, Peringatan Peristiwa, Umpan Data dan Referensi Sumber (sebagaimana yang didefinisikan berikut) di dalamnya. Semua hak yang tidak diberikan secara tersurat dilindungi.", "heading": "Perizinan dan Pembatasan:" }, "overview": { @@ -888,17 +889,17 @@ "two": "Menghindari atau memodifikasi kode atau mekanisme keamanan yang digunakan oleh Palang Merah atau API, termasuk namun tidak terbatas pada teknologi autentikasi apa pun.", "three": "Meminta, mengumpulkan, memohon atau mendapatkan akses akun, kata sandi atau pun autentikasi rahasia Palang Merah lainnya selain yang diberikan kepada Anda untuk akun pribadi Anda.", "four": "Menyatakan atau menyiratkan afiliasi, sponsor atau dukungan oleh Palang Merah atau organisasi atau perhimpunan nasional Palang Merah atau Bulan Sabit Merah lainnya.", - "five": "Menyatakan atau menyiratkan bahwa Anda yang memiliki dan membuat API, Umpan Data, Peringatan Peristiwa dan\/atau Pesan Siap, Tanggap dan Pulihkan.", + "five": "Menyatakan atau menyiratkan bahwa Anda yang memiliki dan membuat API, Umpan Data, Peringatan Peristiwa dan/atau Pesan Siap, Tanggap dan Pulihkan.", "six": "Menularkan virus, worm, Trojan horse, atau item apa pun yang bersifat destruktif." } }, - "reserve_rights": "Palang Merah berhak untuk mengubah dan\/atau tidak lagi menyediakan API dan Umpan Data secara keseluruhan atau sebagian, baik untuk sementara atau permanen, kapan pun tanpa pemberitahuan sebelumnya. Untuk menghilangkan keraguan, Palang Merah tidak diwajibkan untuk menyediakan API atau Umpan Data untuk Anda, dan Anda setuju serta mengetahui bahwa tiap akses dalam kebijakan tunggal dan mutlak Palang Merah.", + "reserve_rights": "Palang Merah berhak untuk mengubah dan/atau tidak lagi menyediakan API dan Umpan Data secara keseluruhan atau sebagian, baik untuk sementara atau permanen, kapan pun tanpa pemberitahuan sebelumnya. Untuk menghilangkan keraguan, Palang Merah tidak diwajibkan untuk menyediakan API atau Umpan Data untuk Anda, dan Anda setuju serta mengetahui bahwa tiap akses dalam kebijakan tunggal dan mutlak Palang Merah.", "severability": { "body": "Ketidakabsahan atas tiap syarat atau ketentuan dari Syarat API tidak akan memengaruhi keabsahan ketentuan lainnya.", "heading": "Keterpisahan dan Pengabaian:" }, "suspension": { - "body": "Palang Merah berhak untuk menangguhkan atau menghentikan akses Anda jika Palang Merah menetapkan, dengan kebijakannya sendiri, bahwa Anda terlibat dalam penggunaan yang tidak sah dari API atau Umpan Data sebagaimana diuraikan dalam Syarat API atau Anda menggunakan API mau pun Umpan Data dalam tiap aktivitas yang mengancam\/membahayakan keselamatan dan\/atau keamanan seseorang atau jaringan Palang Merah.", + "body": "Palang Merah berhak untuk menangguhkan atau menghentikan akses Anda jika Palang Merah menetapkan, dengan kebijakannya sendiri, bahwa Anda terlibat dalam penggunaan yang tidak sah dari API atau Umpan Data sebagaimana diuraikan dalam Syarat API atau Anda menggunakan API mau pun Umpan Data dalam tiap aktivitas yang mengancam/membahayakan keselamatan dan/atau keamanan seseorang atau jaringan Palang Merah.", "heading": "Penangguhan atau Penghentian:" } }, @@ -1020,4 +1021,4 @@ "draft": "Draft", "bulkUploadDraft": "Draf Unggah File Pesan" } -} +} \ No newline at end of file diff --git a/resources/lang/it.json b/resources/lang/it.json index a93b6f8..9720c5a 100644 --- a/resources/lang/it.json +++ b/resources/lang/it.json @@ -441,9 +441,9 @@ "immediate": "Immediato", "warning": "Avviso", "anticipated": "Previsto", - "assess_and_plan":"Valuta e Pianifica", - "mitigate_risks":"Mitiga il Rischio", - "prepare_to_respond":"Preparati a Rispondere", + "assess_and_plan": "Valuta e Pianifica", + "mitigate_risks": "Mitiga il Rischio", + "prepare_to_respond": "Preparati a Rispondere", "recover": "Recupera" }, "content": { @@ -526,7 +526,7 @@ "seasonalForecast_extra": "Una previsione stagionale è la previsione di un evento pericoloso. Le azioni intraprese servono a valutare i potenziali rischi e pianificare le attività per ridurre i rischi e proteggere la famiglia.", "watch": "Periodo di osservazione", "watch_help": "Preparati a rispondere", - "watch_extra": "Un periodo di osservazione inizia quando il rischio di un evento pericoloso è aumentato in modo significativo, ma il suo avvenimento, l'ubicazione e \/ o la tempistica sono ancora incerti. Si prevede di fornire tempo sufficiente per azioni protettive e la preparazione a rispondere.", + "watch_extra": "Un periodo di osservazione inizia quando il rischio di un evento pericoloso è aumentato in modo significativo, ma il suo avvenimento, l'ubicazione e / o la tempistica sono ancora incerti. Si prevede di fornire tempo sufficiente per azioni protettive e la preparazione a rispondere.", "warning": "Avviso", "warning_help": "Preparati a rispondere", "warning_extra": "Viene emesso un avviso quando un evento pericoloso è in corso, è imminente o la probabilità che si verifichi è elevata. Indica che le condizioni dell'evento rappresentano una minaccia per la vita o la proprietà. Le persone che si trovino nel raggio d'azione di questo pericolo necessitano di azioni protettive.", @@ -558,7 +558,8 @@ "content_edit_title": "Modifica Contenuto", "content_add_hazard_title": "Aggiungi Pericolo", "key_message_label": "Titolo del messaggio chiave", - "supporting_message_label": "Messaggio di supporto" + "supporting_message_label": "Messaggio di supporto", + "mitigate_risk": "Mitiga il Rischio" }, "message_editor": { "title": "Attribuzione dell'editore", @@ -618,7 +619,7 @@ "bad_request_error_codes": { "30001": "I titoli delle colonne non corrispondono al modello", "30002": "Unità, messaggi o URL assenti", - "30003": "URL unità non valido - assicurati che sia presente il protocollo, es. https:\/\/", + "30003": "URL unità non valido - assicurati che sia presente il protocollo, es. https://", "40001": "Codice paese non valido", "40002": "La società selezionata non corrisponde alla società per il file selezionato", "40003": "La data in cui è stato esportato il file selezionato non è valida e l'importazione non può essere completata" @@ -744,7 +745,7 @@ "fake_alert_heading": "Avviso di freddo estremo", "fake_alert_description": "Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est.", "fake_alert_time": "1H FA", - "fake_alert_time_exact": "05\/02\/18 alle 05:15 CT", + "fake_alert_time_exact": "05/02/18 alle 05:15 CT", "use_cases": { "heading": "Scopri di più", "first_heading": "Come funziona", @@ -841,10 +842,10 @@ "industries": { "media": "Contenuto multimediale", "emergency": "Gestione delle Emergenze", - "non_profit": "Non-profit\/Organizzazione Non Governativa", + "non_profit": "Non-profit/Organizzazione Non Governativa", "humanitarian": "Organizzazione umanitaria", - "red_cross": "Croce Rossa\/Mezzaluna Rossa", - "education": "Istruzione \/ Università", + "red_cross": "Croce Rossa/Mezzaluna Rossa", + "education": "Istruzione / Università", "gov": "Agenzia governativa", "other": "Altro" }, @@ -859,9 +860,9 @@ "body": "Le leggi del Distretto della Columbia regolano tutti i diritti e gli obblighi del presente accordo, senza dare effetto a nessun principio di conflitto legislativo.", "heading": "Legge vigente:" }, - "body": "L'utente è l'unico responsabile del mantenimento della riservatezza e della sicurezza della chiave di accesso fornita dalla Croce Rossa. L'utente è responsabile del mantenimento della compatibilità con l'API, aggiornandolo di volta in volta, al fine di continuare a ricevere i Feed di Dati. Croce Rossa può rilasciare versioni aggiornate dell'API e dei Feed di Dati a sua esclusiva discrezione. Le nuove versioni potrebbero non essere compatibili con precedenti implementazioni e l'utente accetta di usare la versione più aggiornata dei Feed dei Dati ogni volta.\n\nL'utente accetta di non copiare, distribuire, vendere, modificare, decompilare, decodificare, disassemblare o creare opere derivate da qualsiasi Software.\n\nL'utente non può utilizzare l'API o il Feed di Dati in maniera tale da superare un volume ragionevole di richieste o da costituire un uso eccessivo o abusivo, come determinato da Croce Rossa a sua esclusiva discrezione.\n\nL'utente non può utilizzare l'API o i Feed di Dati in modo illegale, fuorviante, negligente, malevolo, con l'intenzione di causare danni o che danneggi Croce Rossa, i suoi fornitori di servizi, i suoi fornitori di contenuti o qualsiasi altra persona, come stabilito da Croce Rossa a sua esclusiva discrezione.\n\nCroce Rossa potrebbe controllare l'uso da parte dell'utente dell'Api e dei Feed di Dati. L'utente non può utilizzare alcun mezzo tecnico per interferire con tale monitoraggio e Croce Rossa può utilizzare mezzi tecnici per superare tali interferenze.\n\nL'uso dei messaggi Preparazione, Risposta e Recupero sarà presentato solo come attuale o aggiornato all'impostazione di urgenza attuale dell'Avviso di evento correlato e l'utente dovrà aggiornare i singoli messaggi di preparazione, risposta e recupero in seguito a qualsiasi aggiornamento dei Feed di Dati e\/o degli avvisi di evento correlati da parte di Croce Rossa.\n\n I messaggi individuali Preparazione, Risposta e Recupero sono associati solo alla regione geografica per la quale sono stati emessi. Se un Messaggio Preparazione, Risposta e Recupero include un riferimento a una fonte come la Croce Rossa Americana o un'altra società o organizzazione nazionale della Croce Rossa o della Mezzaluna Rossa (ognuno un \"Riferimento alla Fonte\"), l'utente dovrà includere il Riferimento alla Fonte associato a ciascun Messaggio Preparazione, Risposta e Recupero nella forma fornita nei Feed di Dati. L'utente non farà più alcun uso di nessun Riferimento alla Fonte.\n\nL'utente non può tradurre i Feed di Dati, gli Avvisi di eventi e\/o i Messaggi Preparazione, Risposta e Recupero in qualsiasi altra lingua, fare qualsiasi uso, modifica o revisione, o alterare il significato dei Feed di Dati degli Avvisi di eventi e\/o dei Messaggi Preparazione, Risposta e Recupero.\n\nL'utente deve assicurarsi che i Feed di Dati rimangano esclusivamente in proprio possesso e sotto il proprio controllo.\n\nL'utente non può permettere che gli Avvisi di Eventi e i Messaggi Preparazione, Risposta e Recupero inviati all'Utente Finale contengano qualche pubblicità o sponsorizzazione.\n\nL'utente non può archiviare né interamente né parzialmente i Feed di Dati.", + "body": "L'utente è l'unico responsabile del mantenimento della riservatezza e della sicurezza della chiave di accesso fornita dalla Croce Rossa. L'utente è responsabile del mantenimento della compatibilità con l'API, aggiornandolo di volta in volta, al fine di continuare a ricevere i Feed di Dati. Croce Rossa può rilasciare versioni aggiornate dell'API e dei Feed di Dati a sua esclusiva discrezione. Le nuove versioni potrebbero non essere compatibili con precedenti implementazioni e l'utente accetta di usare la versione più aggiornata dei Feed dei Dati ogni volta.\n\nL'utente accetta di non copiare, distribuire, vendere, modificare, decompilare, decodificare, disassemblare o creare opere derivate da qualsiasi Software.\n\nL'utente non può utilizzare l'API o il Feed di Dati in maniera tale da superare un volume ragionevole di richieste o da costituire un uso eccessivo o abusivo, come determinato da Croce Rossa a sua esclusiva discrezione.\n\nL'utente non può utilizzare l'API o i Feed di Dati in modo illegale, fuorviante, negligente, malevolo, con l'intenzione di causare danni o che danneggi Croce Rossa, i suoi fornitori di servizi, i suoi fornitori di contenuti o qualsiasi altra persona, come stabilito da Croce Rossa a sua esclusiva discrezione.\n\nCroce Rossa potrebbe controllare l'uso da parte dell'utente dell'Api e dei Feed di Dati. L'utente non può utilizzare alcun mezzo tecnico per interferire con tale monitoraggio e Croce Rossa può utilizzare mezzi tecnici per superare tali interferenze.\n\nL'uso dei messaggi Preparazione, Risposta e Recupero sarà presentato solo come attuale o aggiornato all'impostazione di urgenza attuale dell'Avviso di evento correlato e l'utente dovrà aggiornare i singoli messaggi di preparazione, risposta e recupero in seguito a qualsiasi aggiornamento dei Feed di Dati e/o degli avvisi di evento correlati da parte di Croce Rossa.\n\n I messaggi individuali Preparazione, Risposta e Recupero sono associati solo alla regione geografica per la quale sono stati emessi. Se un Messaggio Preparazione, Risposta e Recupero include un riferimento a una fonte come la Croce Rossa Americana o un'altra società o organizzazione nazionale della Croce Rossa o della Mezzaluna Rossa (ognuno un \"Riferimento alla Fonte\"), l'utente dovrà includere il Riferimento alla Fonte associato a ciascun Messaggio Preparazione, Risposta e Recupero nella forma fornita nei Feed di Dati. L'utente non farà più alcun uso di nessun Riferimento alla Fonte.\n\nL'utente non può tradurre i Feed di Dati, gli Avvisi di eventi e/o i Messaggi Preparazione, Risposta e Recupero in qualsiasi altra lingua, fare qualsiasi uso, modifica o revisione, o alterare il significato dei Feed di Dati degli Avvisi di eventi e/o dei Messaggi Preparazione, Risposta e Recupero.\n\nL'utente deve assicurarsi che i Feed di Dati rimangano esclusivamente in proprio possesso e sotto il proprio controllo.\n\nL'utente non può permettere che gli Avvisi di Eventi e i Messaggi Preparazione, Risposta e Recupero inviati all'Utente Finale contengano qualche pubblicità o sponsorizzazione.\n\nL'utente non può archiviare né interamente né parzialmente i Feed di Dati.", "contact": "Per favore, contattare Croce Rossa al {0} per qualsiasi domanda riguardo all'API.", - "disclaimer": "L'API e i Feed di Dati sono forniti SOLO PER SCOPI INFORMATIVI ED EDUCATIVI, E su una base \"come è\" e \"come disponibile\". Croce Rossa non rilascia dichiarazioni o garanzie di alcun tipo, esplicite o implicite. Croce Rossa declina ogni altra garanzia, esplicita o implicita, tra cui, a titolo esemplificativo, garanzie implicite di commerciabilità e idoneità per uno scopo particolare. Croce Rossa e i suoi dipendenti, funzionari, governatori, agenti e licenziatari non saranno responsabili per danni di qualsiasi tipo derivanti dall'uso dell'API, dei Feed di Dati, degli Avvisi di Eventi e\/o dei messaggi di Preparazione, Risposta e Recupero, compresi, ma non solo, i danni diretti, indiretti, incidentali, punitivi e consequenziali.\n\nCroce Rossa non garantisce la sequenza, l'accuratezza, l'autenticità o la completezza dell'API, dei Feed di Dati, degli Avvisi degli Eventi e\/o dei messaggi di Preparazione, Risposta e Recupero e non sarà ritenuta responsabile in alcun modo nei confronti dell'utente o dei suoi Utenti Finali o di terzi, inclusi, senza limitazione, eventuali ritardi, imprecisioni, errori o omissioni, relativamente alle API, ai Feed di Dati, agli Avvisi di Eventi e\/o ai messaggi di Preparazione, Risposta e Recupero forniti nel presente documento.", + "disclaimer": "L'API e i Feed di Dati sono forniti SOLO PER SCOPI INFORMATIVI ED EDUCATIVI, E su una base \"come è\" e \"come disponibile\". Croce Rossa non rilascia dichiarazioni o garanzie di alcun tipo, esplicite o implicite. Croce Rossa declina ogni altra garanzia, esplicita o implicita, tra cui, a titolo esemplificativo, garanzie implicite di commerciabilità e idoneità per uno scopo particolare. Croce Rossa e i suoi dipendenti, funzionari, governatori, agenti e licenziatari non saranno responsabili per danni di qualsiasi tipo derivanti dall'uso dell'API, dei Feed di Dati, degli Avvisi di Eventi e/o dei messaggi di Preparazione, Risposta e Recupero, compresi, ma non solo, i danni diretti, indiretti, incidentali, punitivi e consequenziali.\n\nCroce Rossa non garantisce la sequenza, l'accuratezza, l'autenticità o la completezza dell'API, dei Feed di Dati, degli Avvisi degli Eventi e/o dei messaggi di Preparazione, Risposta e Recupero e non sarà ritenuta responsabile in alcun modo nei confronti dell'utente o dei suoi Utenti Finali o di terzi, inclusi, senza limitazione, eventuali ritardi, imprecisioni, errori o omissioni, relativamente alle API, ai Feed di Dati, agli Avvisi di Eventi e/o ai messaggi di Preparazione, Risposta e Recupero forniti nel presente documento.", "entire_agreement": { "body": "I Termini dell'API costituiscono l'accordo completo ed esclusivo tra Croce Rossa e l'utente in relazione all'oggetto del presente documento e sostituiscono tutte le precedenti intese, comunicazioni o accordi orali o scritti non specificamente incorporati nel presente documento. Croce Rossa si riserva il diritto di modificare o revocare tale accordo in qualsiasi momento.", "heading": "Intero accordo:" @@ -869,7 +870,7 @@ "heading": "ACCORDO DI LICENZA PER UTENTE FINALE DELL'API", "intro": "ACCORDO: UTILIZZANDO IL SERVIZIO O SELEZIONANDO LA CASELLA FORNITA, L'UTENTE ACCETTA DI ESSERE VINCOLATO A QUESTO ACCORDO.\n\nL'API è uno strumento che ti permette (\"Tu\") di recuperare e utilizzare i feed di dati messi a disposizione da Croce Rossa, tra cui un feed di avvisi di eventi meteorologici e catastrofici globali (\"Avvisi di Eventi\") e un feed di messaggi attuabili e contestualizzati su come prepararsi ai rischi locali per tipo di pericolo e urgenza (\"Messaggi di Preparazione, Risposta e Recupero\" e collettivamente con gli Avvisi di Eventi, i \"Feed di Dati\"). I messaggi di Preparazione, Risposta e Recupero sono destinati ad accompagnare gli Avvisi di Eventi o altri avvisi di allerta e vigilanza associati a eventi meteorologici e disastri nella tua applicazione. L'uso dei feed di dati da parte dell'utente è regolato dai Termini API.", "license_limitations": { - "body": "L'utente può utilizzare i Feed di Dati solo in associazione con la sua applicazione soggetta ai Termini API, e a condizione che mantenga la compatibilità con l'API, come aggiornato di volta in volta. All'utente viene concesso un diritto non esclusivo, limitato e revocabile di scaricare, utilizzare, riprodurre e distribuire agli utenti finali della propria applicazione (\"End Users\") gli avvisi di eventi e i relativi messaggi contestualizzati di Preparazione, Risposta e Recupero in associazione all'impostazione di urgenza dei singoli avvisi di eventi dai Feed di Dati, in base ai Termini API. L'utente può utilizzare l'API solo per facilitare gli usi non commerciali dei Feed di Dati in conformità con i Termini API. L'utente non può in nessun caso utilizzare l'API per facilitare gli usi commerciali dei Feed di Dati, degli Avvisi di eventi e\/o dei Messaggi di Preparazione, Risposta e Recupero, compresi, senza limitazione, la rivendita, l'addebito per accedervi, l'addebito per ridistribuirli o l'addebito per creare opere derivate basate su di essi. La Croce Rossa e i suoi concessori di licenza mantengono tutti i titoli, la proprietà, i diritti e gli interessi in e verso l'API, i messaggi di Preparazione, Risposta e Recupero, gli avvisi di eventi, i Feed di Dati e i riferimenti alla fonte (come definiti di seguito) in essi contenuti. Tutti i diritti non espressamente concessi sono riservati.", + "body": "L'utente può utilizzare i Feed di Dati solo in associazione con la sua applicazione soggetta ai Termini API, e a condizione che mantenga la compatibilità con l'API, come aggiornato di volta in volta. All'utente viene concesso un diritto non esclusivo, limitato e revocabile di scaricare, utilizzare, riprodurre e distribuire agli utenti finali della propria applicazione (\"End Users\") gli avvisi di eventi e i relativi messaggi contestualizzati di Preparazione, Risposta e Recupero in associazione all'impostazione di urgenza dei singoli avvisi di eventi dai Feed di Dati, in base ai Termini API. L'utente può utilizzare l'API solo per facilitare gli usi non commerciali dei Feed di Dati in conformità con i Termini API. L'utente non può in nessun caso utilizzare l'API per facilitare gli usi commerciali dei Feed di Dati, degli Avvisi di eventi e/o dei Messaggi di Preparazione, Risposta e Recupero, compresi, senza limitazione, la rivendita, l'addebito per accedervi, l'addebito per ridistribuirli o l'addebito per creare opere derivate basate su di essi. La Croce Rossa e i suoi concessori di licenza mantengono tutti i titoli, la proprietà, i diritti e gli interessi in e verso l'API, i messaggi di Preparazione, Risposta e Recupero, gli avvisi di eventi, i Feed di Dati e i riferimenti alla fonte (come definiti di seguito) in essi contenuti. Tutti i diritti non espressamente concessi sono riservati.", "heading": "Licenza e Limitazioni:" }, "overview": { @@ -888,17 +889,17 @@ "two": "Eludere o modificare qualsiasi chiave o meccanismo di sicurezza impiegato dalla Croce Rossa o dall'API, compresa, senza limitazione, qualsiasi tecnologia di autenticazione.", "three": "Richiedere, raccogliere, sollecitare o ottenere in altro modo l'accesso a utenti, password o altre credenziali di autenticazione per accedere alla Croce Rossa diverse da quelle fornite all'utente per il proprio account.", "four": "Affermare o implicare l'affiliazione, il patrocinio o l'approvazione da parte della Croce Rossa o di qualsiasi altra società o organizzazione nazionale della Croce Rossa o della Mezzaluna Rossa.", - "five": "Affermare o sottintendere che l'utente possiede o ha creato l'API, i Feed di Dati, gli avvisi di eventi e\/o i messaggi di preparazione, risposta e recupero.", + "five": "Affermare o sottintendere che l'utente possiede o ha creato l'API, i Feed di Dati, gli avvisi di eventi e/o i messaggi di preparazione, risposta e recupero.", "six": "Trasmettere qualsiasi virus, worms, cavalli di Troia, o qualsiasi elemento progettato per danneggiare." } }, - "reserve_rights": "La Croce Rossa si riserva il diritto di modificare e\/o non fornire più l'API e i feed di dati in tutto o in parte, temporaneamente o permanentemente, in qualsiasi momento e senza preavviso. A scanso di equivoci, nulla nel presente documento obbliga la Croce Rossa a rendere disponibili all'utente le sue API o i suoi feed di dati e l'utente accetta e riconosce che qualsiasi accesso è a sola e assoluta discrezione della Croce Rossa.", + "reserve_rights": "La Croce Rossa si riserva il diritto di modificare e/o non fornire più l'API e i feed di dati in tutto o in parte, temporaneamente o permanentemente, in qualsiasi momento e senza preavviso. A scanso di equivoci, nulla nel presente documento obbliga la Croce Rossa a rendere disponibili all'utente le sue API o i suoi feed di dati e l'utente accetta e riconosce che qualsiasi accesso è a sola e assoluta discrezione della Croce Rossa.", "severability": { "body": "L'invalidità di una qualsiasi disposizione dei Termini Api non influirà sulla validità di qualsiasi altra disposizione.", "heading": "Divisibilità e Rinuncia:" }, "suspension": { - "body": "La Croce Rossa si riserva il diritto di sospendere o terminare l'accesso dell'utente se stabilisce, a sua esclusiva discrezione, che l'utente è impegnato in un uso non autorizzato dell'API o del Feed di Dati come indicato nei Termini API o che l'utente sta usando l'API o il Feed di Dati in attività che minacciano\/compromettono la sicurezza di qualsiasi persona o della rete della Croce Rossa.", + "body": "La Croce Rossa si riserva il diritto di sospendere o terminare l'accesso dell'utente se stabilisce, a sua esclusiva discrezione, che l'utente è impegnato in un uso non autorizzato dell'API o del Feed di Dati come indicato nei Termini API o che l'utente sta usando l'API o il Feed di Dati in attività che minacciano/compromettono la sicurezza di qualsiasi persona o della rete della Croce Rossa.", "heading": "Sospensione o Risoluzione:" } }, diff --git a/resources/lang/ja.json b/resources/lang/ja.json index 58d5b1d..ae5a8e6 100644 --- a/resources/lang/ja.json +++ b/resources/lang/ja.json @@ -441,9 +441,9 @@ "immediate": "即時", "warning": "警告", "anticipated": "予測", - "assess_and_plan":"評価と計画", - "mitigate_risks":"リスク軽減", - "prepare_to_respond":"対応準備", + "assess_and_plan": "評価と計画", + "mitigate_risks": "リスク軽減", + "prepare_to_respond": "対応準備", "recover": "復旧" }, "content": { @@ -558,7 +558,8 @@ "content_edit_title": "コンテンツ編集", "content_add_hazard_title": "危険を追加", "key_message_label": "主要メッセージのタイトル", - "supporting_message_label": "サポートメッセージ" + "supporting_message_label": "サポートメッセージ", + "mitigate_risk": "リスク軽減" }, "message_editor": { "title": "アトリビューション・エディター", @@ -618,7 +619,7 @@ "bad_request_error_codes": { "30001": "列見出しがテンプレートと一致しません", "30002": "組織名、メッセージ、またはURLがありません", - "30003": "組織名のURLが無効です。https:\/\/などのプロトコルが存在することを確認してください", + "30003": "組織名のURLが無効です。https://などのプロトコルが存在することを確認してください", "40001": "不正な国コードが入力されました", "40002": "選択した組織は、選択したファイルの組織と一致しません", "40003": "選択したファイルがエクスポートされた日付は不正に作成され、インポートが完了していません" diff --git a/resources/lang/my.json b/resources/lang/my.json index 74a40c7..05fc638 100644 --- a/resources/lang/my.json +++ b/resources/lang/my.json @@ -197,13 +197,15 @@ "steps": { "one": { "heading": "အဆင့် ၁ - စာရင်းသွင်းပါ", - "body": "လုံခြုံရေးသတင်းစကား ဒေတာဘေ့စ် API မှ ဒေတာကို အသုံးပြုခြင်းစတင်ရန်၊ ဦးစွာ လုံခြုံရေးသတင်းစကား ဒေတာဘေ့စ် ပေါ်တယ်သို့ {0} ဝင်ရောက်ပါ။\n\nသင်သည် သင်၏ Facebook နှင့် Google အကောင့်များ သို့မဟုတ် အီးမေးလ်လိပ်စာကို အသုံးပြု၍ အကောင့်တစ်ခု ဖန်တီးနိုင်သည်။", "create_account_alt": "အကောင့်တစ်ခုဖန်တီးခြင်း", + "body": "လုံခြုံရေးသတင်းစကား ဒေတာဘေ့စ် API မှ ဒေတာကို အသုံးပြုခြင်းစတင်ရန်၊ ဦးစွာ လုံခြုံရေးသတင်းစကား ဒေတာဘေ့စ် ပေါ်တယ်သို့ {0} ဝင်ရောက်ပါ။\n\nသင်သည် သင်၏ Facebook နှင့် Google အကောင့်များ သို့မဟုတ် အီးမေးလ်လိပ်စာကို အသုံးပြု၍ အကောင့်တစ်ခု ဖန်တီးနိုင်သည်။", + "create_account_alt": "အကောင့်တစ်ခုဖန်တီးခြင်း", "existing_account": "သင့်တွင်အကောင့်တစ်ခုရှိပြီးဖြစ်ပါကက ကျေးဇူးပြု၍ {0}။", "login_cta": "လော့ဂ်အင်ဝင်ရန်", "sign_up_cta": "စာရင်းသွင်းရန်" }, "two": { - "body": "API ကို အသုံးပြုရန်၊ သင်သည် လုံခြုံရေးသတင်းစကား ဒေတာဘေ့စ် ပေါ်တယ်တွင် အပလီကေးရှင်းတစ်ခု ဖန်တီးရပါမည်။ သင်ဘာတည်ဆောက်နေသည်ကို အနည်းငယ်ပြောပြပါ။", "create_app_alt": "အက်ပ် ဖန်တီးပါ", + "body": "API ကို အသုံးပြုရန်၊ သင်သည် လုံခြုံရေးသတင်းစကား ဒေတာဘေ့စ် ပေါ်တယ်တွင် အပလီကေးရှင်းတစ်ခု ဖန်တီးရပါမည်။ သင်ဘာတည်ဆောက်နေသည်ကို အနည်းငယ်ပြောပြပါ။", + "create_app_alt": "အက်ပ် ဖန်တီးပါ", "heading": "အဆင့် ၂ - အက်ပ်တစ်ခုဖန်တီးပါ" }, "three": { @@ -214,7 +216,8 @@ }, "four": { "api_docs_cta": "API စာရွက်စာတမ်း", - "body": "API ကို အသုံးပြုရန်၊ သင်သည် လုံခြုံရေးသတင်းစကား ဒေတာဘေ့စ် ပေါ်တယ်တွင် အပလီကေးရှင်းတစ်ခု ဖန်တီးရပါမည်။ သင်ဘာတည်ဆောက်နေသည်ကို အနည်းငယ်ပြောပြပါ။", "example_title": "တောင်းခံလွှာနမူနာ", + "body": "API ကို အသုံးပြုရန်၊ သင်သည် လုံခြုံရေးသတင်းစကား ဒေတာဘေ့စ် ပေါ်တယ်တွင် အပလီကေးရှင်းတစ်ခု ဖန်တီးရပါမည်။ သင်ဘာတည်ဆောက်နေသည်ကို အနည်းငယ်ပြောပြပါ။", + "example_title": "တောင်းခံလွှာနမူနာ", "heading": "အဆင့် ၄ - တောင်းဆိုမှုတစ်ခု ပြုပါ", "moreInfo": "API အဆုံးသတ်အမှတ်များအားလုံးနှင့် ပတ်သက်သည့်အချက်အလက်များ ပိုမိုသိရှိလိုပါက {0} ကိုကြည့်ပါ။" } @@ -438,9 +441,9 @@ "immediate": "ချက်ချင်း", "warning": "သတိပေးချက်", "anticipated": "မျှော်မှန်းထားသည်", - "assess_and_plan":"အကဲဖြတ်ပြီး စီစဉ်ပါ", - "mitigate_risks":"အန္တရာယ်ကို လျှော့ချပါ", - "prepare_to_respond":"တုံ့ပြန်ရန် ပြင်ဆင်ပါ", + "assess_and_plan": "အကဲဖြတ်ပြီး စီစဉ်ပါ", + "mitigate_risks": "အန္တရာယ်ကို လျှော့ချပါ", + "prepare_to_respond": "တုံ့ပြန်ရန် ပြင်ဆင်ပါ", "recover": "ပြန်လည်နာလန်ထူပါ" }, "content": { @@ -523,7 +526,7 @@ "seasonalForecast_extra": "ရာသီအလိုက်ခန့်မှန်းချက်တစ်ခုဆိုသည်မှာ အန္တရာယ်ရှိသောဖြစ်စဉ်တစ်ခုကို ကြိုတင်ခန့်မှန်းသည့် ဖော်ပြချက်တစ်ခုဖြစ်ပါသည်။ လုပ်ဆောင်သည့်အရာများမှာ အိမ်ထောင်စုကို ကာကွယ်ရန်နှင့် ဘေးအန္တရာယ်လျှော့ချရန် ဖြစ်နိုင်ချေရှိသော ဘေးအန္တရာယ်များကို အကဲဖြတ်ခြင်းနှင့် လုပ်ဆောင်ချက်များကို ကြိုတင်စီမံခြင်းဖြစ်သည်။", "watch": "စောင့်ကြည့်ပါ", "watch_help": "တုံ့ပြန်ရန် ကြိုတင်ပြင်ဆင်ပါ", - "watch_extra": "အန္တရာယ်ရှိသောအဖြစ်အပျက်တစ်ခု၏အန္တရာယ် သိသိသာသာ မြှင့်တက်လာသောအခါ စောင့်ကြည့်မှုပြုရန် ကြေညာချက်ထုတ်သော်လည်း ၎င်း၏ဖြစ်ပျက်မှု၊ တည်နေရာ နှင့်\/သို့မဟုတ် အချိန်ကိုက်မှုများသည် မသေချာသေးပါ။ ဤသည်က ကြိုတင်ကာကွယ်သည့် လုပ်ဆောင်ချက်များနှင့် တုံ့ပြန်ရန်ပြင်ဆင်မှုများအတွက် လုံလောက်သောအချိန်ပေးရန် ရည်ရွယ်သည်။", + "watch_extra": "အန္တရာယ်ရှိသောအဖြစ်အပျက်တစ်ခု၏အန္တရာယ် သိသိသာသာ မြှင့်တက်လာသောအခါ စောင့်ကြည့်မှုပြုရန် ကြေညာချက်ထုတ်သော်လည်း ၎င်း၏ဖြစ်ပျက်မှု၊ တည်နေရာ နှင့်/သို့မဟုတ် အချိန်ကိုက်မှုများသည် မသေချာသေးပါ။ ဤသည်က ကြိုတင်ကာကွယ်သည့် လုပ်ဆောင်ချက်များနှင့် တုံ့ပြန်ရန်ပြင်ဆင်မှုများအတွက် လုံလောက်သောအချိန်ပေးရန် ရည်ရွယ်သည်။", "warning": "သတိပေးချက်", "warning_help": "တုံ့ပြန်ရန် ကြိုတင်ပြင်ဆင်ပါ", "warning_extra": "ဘေးအန္တရာယ်ရှိသောဖြစ်စဉ်တစ်ခု ဖြစ်ပေါ်နေစဉ်၊ ဖြစ်အံ့ဆဲဆဲ သို့မဟုတ် ဖြစ်ပေါ်နိုင်ချေ အလွန်မြင့်မားသည့်အခါ သတိပေးချက်ကို ထုတ်ပြန်သည်။ ဆိုလိုသည်မှာ အသက် သို့မဟုတ် ပိုင်ဆိုင်မှုကို ခြိမ်းခြောက်သည့် အခြေအနေများ ဖြစ်ပေါ်စေခြင်းဖြစ်သည်။ ဤဘေးအန္တရာယ် လမ်းကြောင်းရှိလူများသည် ကြိုတင်ကာကွယ်သည့် လုပ်ဆောင်ချက်များ လုပ်ဆောင်ရန် လိုအပ်သည်။", @@ -555,7 +558,8 @@ "content_edit_title": "အကြောင်းအရာ တည်းဖြတ်ခြင်း", "content_add_hazard_title": "အန္တရာယ် ထည့်ပါ", "key_message_label": "အဓိက သတင်းစကား ခေါင်းစဉ်", - "supporting_message_label": "အထောက်အပံ့ သတင်းစကား" + "supporting_message_label": "အထောက်အပံ့ သတင်းစကား", + "mitigate_risk": "အန္တရာယ်ကို လျှော့ချပါ" }, "message_editor": { "title": "ဂုဏ်ပြုခြင်း တည်းဖြတ်သူ", @@ -615,7 +619,7 @@ "bad_request_error_codes": { "30001": "ကော်လံ ခေါင်းစဉ်ကြီးများသည် ပုံစံနှင့်မကိုက်ညီပါ", "30002": "မူလလက်ရာရှင်အမည်၊ မက်ဆေ့ခ်ျ သို့မဟုတ် url များ ပျောက်နေသည်", - "30003": "မူလလက်ရာရှင် url မမှန်ပါ - ကျေးဇူးပြု၍ လုပ်ထုံး ဥပမာ - https:\/\/ ရှိကြောင်း သေချာပါစေ", + "30003": "မူလလက်ရာရှင် url မမှန်ပါ - ကျေးဇူးပြု၍ လုပ်ထုံး ဥပမာ - https:// ရှိကြောင်း သေချာပါစေ", "40001": "ပေးထားသော နိုင်ငံကုဒ် မမှန်ပါ", "40002": "ရွေးချယ်ထားသောလူ့အဖွဲ့အစည်းသည် ရွေးချယ်ထားသောဖိုင်အတွက် လူ့အဖွဲ့အစည်းနှင့် မကိုက်ညီပါ", "40003": "ရွေးချယ်ထားသောဖိုင် တင်ပို့ခဲ့သည့်ရက်စွဲသည် မပြည့်စုံသဖြင့် တင်သွင်းမှု မပြီးမြောက်ပါ" @@ -686,7 +690,7 @@ }, "landing": { "strapline": "လုံခြုံရေးသတင်းစကား ဒေတာဘေ့စ် ဝန်ဆောင်မှု", - "strapline_part_2": "ကမ္ဘာလုံးဆိုင်ရာ ကြက်ခြေနီ\/ လခြမ်းနီ ၏အဓိက ဘေးအန္တရာယ်ကင်းရှင်းရေး သတင်းစကားများ", + "strapline_part_2": "ကမ္ဘာလုံးဆိုင်ရာ ကြက်ခြေနီ/ လခြမ်းနီ ၏အဓိက ဘေးအန္တရာယ်ကင်းရှင်းရေး သတင်းစကားများ", "head_1": "IFRC လုံခြုံရေး", "head_2": "သတင်းစကား ဒေတာဘေ့စ်", "head_text_1": "IFRC ပြည်သူ့အသိပညာပေးမှုနှင့် အခြေခံထားသော လုံခြုံရေးသတင်းစကားများ", @@ -741,7 +745,7 @@ "fake_alert_heading": "အအေးဓာတ်လွန်ကဲနိုင်ကြောင်း သတိပေးချက်", "fake_alert_description": "Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est.", "fake_alert_time": "၁ နာရီအကြာက", - "fake_alert_time_exact": "၀၅\/၀၂\/၁၈ ရက်နေ့ ၀၅:၁၅ CT အချိန်တွင်", + "fake_alert_time_exact": "၀၅/၀၂/၁၈ ရက်နေ့ ၀၅:၁၅ CT အချိန်တွင်", "use_cases": { "heading": "ပိုမိုသိရှိရန်", "first_heading": "အလုပ်လုပ်ပုံ", @@ -782,7 +786,7 @@ }, "data_preview": { "heading": "လုံခြုံရေး သတင်းစကားများ", - "sub_heading": "ကမ္ဘာတစ်ဝှမ်းရှိ ကြက်ခြေနီ \/ လခြမ်းနီ အမျိုးသားလူ့အဖွဲ့အစည်းများထံမှ သော့ချက်စာတမ်းများကို ဆိုင်းအပ် လုပ်၍ ကြည့်ပါ" + "sub_heading": "ကမ္ဘာတစ်ဝှမ်းရှိ ကြက်ခြေနီ / လခြမ်းနီ အမျိုးသားလူ့အဖွဲ့အစည်းများထံမှ သော့ချက်စာတမ်းများကို ဆိုင်းအပ် လုပ်၍ ကြည့်ပါ" }, "footer": { "terms_conditions": "စည်းမျဉ်းများနှင့် အခြေအနေများ", @@ -840,8 +844,8 @@ "emergency": "အရေးပေါ် စီမံခန့်ခွဲမှု", "non_profit": "အကျိုးအမြတ်အတွက်မဟုတ်သော NGO များ", "humanitarian": "လူသားချင်းစာနာမှုအဖွဲ့အစည်း", - "red_cross": "ကြက်ခြေနီ \/လခြမ်းနီ", - "education": "ပညာရေး \/ပညာရပ်", + "red_cross": "ကြက်ခြေနီ /လခြမ်းနီ", + "education": "ပညာရေး /ပညာရပ်", "gov": "အစိုးရအေဂျင်စီ", "other": "အခြား" }, @@ -856,7 +860,7 @@ "body": "ဤပဋိညာဉ်ပါ အခွင့်အရေးများနှင့် တာဝန်ဝတ္တရားများအား ဥပဒေချင်း ပဋိပက္ခဖြစ်မှု တစ်စုံတစ်ရာ မရှိစေရဘဲ ကိုလံဘီယာခရိုင်၏ ဥပဒေများမှ အုပ်ချုပ်ထားသည်။", "heading": "သက်ဆိုင်သောဥပဒေ -" }, - "body": "ကြက်ခြေနီမှ သင့်အား ပေးအပ်သည့် မှတ်ပုံတင်သော့၏ လျှို့ဝှက်ချက်နှင့် လုံခြုံမှုကို ထိန်းသိမ်းရန် သင့်တွင်တာဝန်ရှိသည်။ API သည် အချိန်နှင့်အမျှ ပြင်ဆင်ပြောင်းလဲနေပါသဖြင့် Data Feeds ကို ဆက်လက်ရရှိရန်အတွက် သင့်အနေဖြင့် ယင်းနှင့်လိုက်ဖက်အောင် ထိန်းသိမ်းရန် တာ၀န်ရှိသည်။ ကြက်ခြေနီသည် API နှင့် Data Feeds ၏ နောက်ဆုံးပေါ်မူကွဲများကို ၎င်း၏ ကိုယ်ပိုင်ဆုံးဖြတ်ချက်ဖြင့် ထုတ်ပြန်နိုင်သည်။ မူကွဲအသစ်များသည် ယခင်အကောင်အထည်ဖော်မှုများနှင့် မကိုက်ညီနိုင်ပါ။ သင်နောက်ဆုံးပေါ် မွမ်းမံထားသောအချက်အလက်ထည့်သွင်းမှု မူကွဲဗားရှင်းကို အချိန်တိုင်းအသုံးပြုရန် သင်သဘောတူသည်။\n\nAPI ၏ မည်သည့်အစိတ်အပိုင်းကိုမဆို (သို့မဟုတ်) ကြက်ခြေနီ၏ မည်သည့်ဆော့ဝဲလ်ကိုမဆို ပြုပြင်ခြင်း၊ ဖြန့်ဝေခြင်း၊ ဖြိုခွဲခြင်း၊ ဖြိုဖျက်ခြင်း၊ ပြောင်းပြန်ပြောင်းလဲအသုံးပြုခြင်း မပြုလုပ်ရန် သင်သဘောတူသည်။\n\nကြက်ခြေနီ တစ်ခုတည်း၏ ကိုယ်ပိုင်ဆုံးဖြတ်ခွင့်ဖြင့် ဆုံးဖြတ်ထားသည့်အတိုင်း သင့်လျော်သော တောင်းဆိုမှုပမာဏထက် ကျော်လွန်၍ သို့မဟုတ် အလွန်အကျွံ သို့မဟုတ် အလွဲသုံးစားမှုအသုံးပြုခြင်းဖြင့် အသုံးပြုသည့် API သို့မဟုတ် Data Feeds ကို သင်အသုံးမပြုနိုင်ပါ။\n\nသင်သည် API သို့မဟုတ် Data Feeds ကို တရားမဝင်သော၊ လွဲမှားယူဆစေနိုင်သော၊ ပေါ့ဆသော၊ အဆိုးသဘောဆောင်သာ၊ ထိခိုက်စေလိုသော ရည်ရွယ်ချက်ပါဝင်သည့် အပြုအမူများ သို့မဟုတ် ကြက်ခြေနီ၊ ယင်းအား ဝန်ဆောင်မှုပေးသူများ၊ ယင်းအား ပါဝင်အကြောင်းအရာပေးသူများ သို့မဟုတ် အခြားသော မည်သူ့ကိုဖြစ်စေ ထိခိုက်စေလိုသော အပြုအမူများဟု ကြက်ခြေနီတစ်ခုတည်းမှ အဆုံးအဖြတ်ပေးထားသော အပြုအမူများဖြင့် အသုံးမပြုရ။\n\nကြက်ခြေနီသည် သင်၏ API နှင့် Data Feeds အသုံးပြုမှုကိုစောင့်ကြည့်နိုင်သည်။ သင်သည် ထိုကဲ့သို့သော စောင့်ကြည့်စစ်ဆေးမှုကို ဝင်ရောက်စွက်ဖက်ရန်အတွက် မည်သည့် နည်းပညာဆိုင်ရာနည်းလမ်းကိုမှ အသုံးမပြုနိုင်ဘဲ ကြက်ခြေနီသည် ထိုကဲ့သို့သော ဝင်ရောက်စွက်ဖက်မှုများကို ကျော်လွှားရန် နည်းပညာဆိုင်ရာနည်းလမ်းများကို အသုံးပြုမည်ဖြစ်သည်။\n\nပြင်ဆင်ခြင်း၊ တုန့်ပြန်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်းဆိုင်ရာ မက်ဆေ့ခ်ျများအား အသုံးပြုခြင်းကို လက်ရှိ (သို့မဟုတ်) နောက်ဆုံးပေါ် ဆက်စပ်မှုအဖြစ်အပျက်အချက်ပေးမှု၏ လက်ရှိအရေးပေါ်အခြေအနေအဖြစ်သာ တင်ပြရမည်။ အချက်အလက်များပေးပို့ခြင်း နှင့်\/သို့မဟုတ် ဆက်နွယ်သော အဖြစ်အပျက်ဆိုင်ရာ သတိပေးချက်များကို ကြက်ခြေနီမှ ပြင်ဆင်မှုများပြုလုပ်ပြီးပါက သင်သည် ပြင်ဆင်ခြင်း၊ တုန့်ပြန်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်းဆိုင်ရာ မက်ဆေ့ခ်ျတစ်ခုချင်းစီအား ပုံစံအသစ်ဖြင့် ပြန်လည်ပြင်ဆင်ရမည်။\n\nသင်အသုံးပြုသော ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ရယူခြင်း မက်ဆေ့တစ်ခုချင်းစီသည် ၎င်းထုတ်ပေးသည့် ပထဝီဒေသနှင့်သာ သက်ဆိုင်ရမည်။ အကယ်၍ ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်းဆိုင်ရာမက်ဆေ့ခ်ျများတွင် အမေရိကန်ကြက်ခြေနီ သို့မဟုတ် အခြားကြက်ခြေနီ သို့မဟုတ် လခြမ်းနီအမျိုးသားလူ့အဖွဲ့အစည်း သို့မဟုတ် အဖွဲ့အစည်း (\"ရင်းမြစ်ကိုးကားချက်\" တစ်ခုချင်းစီ) ကဲ့သို့သော အရင်းအမြစ်တစ်ခုကို ရည်ညွှန်းပါက၊ သင်သည် ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်း နှင့် ပြန်လည်ထူထောင်ခြင်းဆိုင်ရာမက်ဆေ့ချ်များအတွက် ကိုးကားချက်များကို Data Feeds တွင်း ပေးအပ်ထားသောဖောင်ပုံစံအတွင်း ဖြည့်သွင်းရမည်။ သင်သည် မည်သည့် ရင်းမြစ်ရည်ညွှန်းချက်ကိုမှ ထပ်မံ၍ အသုံးမပြုရ။\n\nသင်သည် သတင်းအချက်အလက်များကို ထည့်သွင်းခြင်း (Data Feeds)၊ ဖြစ်ရပ်များသတိပေးခြင်းများ နှင့်\/သို့မဟုတ် ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ရယူခြင်းမက်ဆေ့များကို အခြားဘာသာစကားများသို့ ဘာသာပြန်ဆိုခြင်း၊ မည်သည့်နည်းနှင့်မဆို အသုံးချခြင်း၊ ပြုပြင်ခြင်း၊ ပြန်လည်ပြင်ဆင်ခြင်း မပြုလုပ်ရပါ။ သတင်းအချက်အလက်များကို ထည့်သွင်းခြင်း၊ ဖြစ်ရပ်များသတိပေးခြင်းများ နှင့်\/သို့မဟုတ် ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ရယူခြင်းမက်ဆေ့များ၏ အဓိပ္ပာယ်ကို ပြောင်းလဲခြင်း (များ) မပြုလုပ်ရပါ။\n\nData Feeds သည် သင့်တစ်ဦးတည်း၏ ပိုင်ဆိုင်မှု နှင့်\/သို့မဟုတ် ထိန်းချုပ်မှုအောက်တွင် ရှိကြောင်း သေချာအောင် ပြုလုပ်ရမည်။\n\nသင်သည် နောက်ဆုံးပေါ်အသုံးပြုသူများထံသို့ ပေးပို့သော အဖြစ်အပျက်သတိပေးချက်များ၊ ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ရယူခြင်းမက်ဆေ့များထဲတွင် မည်သည့်ကြော်ငြာများနှင့် စပွန်ဆာမဆို ထည့်သွင်းခွင့်မပြုစေရ။\n\nသင်သည် Data Feeds တစ်ခုလုံးကိုဖြစ်စေ၊ တစ်စိတ်တစ်ပိုင်းအနေဖြင့်ဖြစ်စေ မည်သည့် သိမ်းဆည်းမှုကိုမှ မလုပ်ရပါ။", + "body": "ကြက်ခြေနီမှ သင့်အား ပေးအပ်သည့် မှတ်ပုံတင်သော့၏ လျှို့ဝှက်ချက်နှင့် လုံခြုံမှုကို ထိန်းသိမ်းရန် သင့်တွင်တာဝန်ရှိသည်။ API သည် အချိန်နှင့်အမျှ ပြင်ဆင်ပြောင်းလဲနေပါသဖြင့် Data Feeds ကို ဆက်လက်ရရှိရန်အတွက် သင့်အနေဖြင့် ယင်းနှင့်လိုက်ဖက်အောင် ထိန်းသိမ်းရန် တာ၀န်ရှိသည်။ ကြက်ခြေနီသည် API နှင့် Data Feeds ၏ နောက်ဆုံးပေါ်မူကွဲများကို ၎င်း၏ ကိုယ်ပိုင်ဆုံးဖြတ်ချက်ဖြင့် ထုတ်ပြန်နိုင်သည်။ မူကွဲအသစ်များသည် ယခင်အကောင်အထည်ဖော်မှုများနှင့် မကိုက်ညီနိုင်ပါ။ သင်နောက်ဆုံးပေါ် မွမ်းမံထားသောအချက်အလက်ထည့်သွင်းမှု မူကွဲဗားရှင်းကို အချိန်တိုင်းအသုံးပြုရန် သင်သဘောတူသည်။\n\nAPI ၏ မည်သည့်အစိတ်အပိုင်းကိုမဆို (သို့မဟုတ်) ကြက်ခြေနီ၏ မည်သည့်ဆော့ဝဲလ်ကိုမဆို ပြုပြင်ခြင်း၊ ဖြန့်ဝေခြင်း၊ ဖြိုခွဲခြင်း၊ ဖြိုဖျက်ခြင်း၊ ပြောင်းပြန်ပြောင်းလဲအသုံးပြုခြင်း မပြုလုပ်ရန် သင်သဘောတူသည်။\n\nကြက်ခြေနီ တစ်ခုတည်း၏ ကိုယ်ပိုင်ဆုံးဖြတ်ခွင့်ဖြင့် ဆုံးဖြတ်ထားသည့်အတိုင်း သင့်လျော်သော တောင်းဆိုမှုပမာဏထက် ကျော်လွန်၍ သို့မဟုတ် အလွန်အကျွံ သို့မဟုတ် အလွဲသုံးစားမှုအသုံးပြုခြင်းဖြင့် အသုံးပြုသည့် API သို့မဟုတ် Data Feeds ကို သင်အသုံးမပြုနိုင်ပါ။\n\nသင်သည် API သို့မဟုတ် Data Feeds ကို တရားမဝင်သော၊ လွဲမှားယူဆစေနိုင်သော၊ ပေါ့ဆသော၊ အဆိုးသဘောဆောင်သာ၊ ထိခိုက်စေလိုသော ရည်ရွယ်ချက်ပါဝင်သည့် အပြုအမူများ သို့မဟုတ် ကြက်ခြေနီ၊ ယင်းအား ဝန်ဆောင်မှုပေးသူများ၊ ယင်းအား ပါဝင်အကြောင်းအရာပေးသူများ သို့မဟုတ် အခြားသော မည်သူ့ကိုဖြစ်စေ ထိခိုက်စေလိုသော အပြုအမူများဟု ကြက်ခြေနီတစ်ခုတည်းမှ အဆုံးအဖြတ်ပေးထားသော အပြုအမူများဖြင့် အသုံးမပြုရ။\n\nကြက်ခြေနီသည် သင်၏ API နှင့် Data Feeds အသုံးပြုမှုကိုစောင့်ကြည့်နိုင်သည်။ သင်သည် ထိုကဲ့သို့သော စောင့်ကြည့်စစ်ဆေးမှုကို ဝင်ရောက်စွက်ဖက်ရန်အတွက် မည်သည့် နည်းပညာဆိုင်ရာနည်းလမ်းကိုမှ အသုံးမပြုနိုင်ဘဲ ကြက်ခြေနီသည် ထိုကဲ့သို့သော ဝင်ရောက်စွက်ဖက်မှုများကို ကျော်လွှားရန် နည်းပညာဆိုင်ရာနည်းလမ်းများကို အသုံးပြုမည်ဖြစ်သည်။\n\nပြင်ဆင်ခြင်း၊ တုန့်ပြန်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်းဆိုင်ရာ မက်ဆေ့ခ်ျများအား အသုံးပြုခြင်းကို လက်ရှိ (သို့မဟုတ်) နောက်ဆုံးပေါ် ဆက်စပ်မှုအဖြစ်အပျက်အချက်ပေးမှု၏ လက်ရှိအရေးပေါ်အခြေအနေအဖြစ်သာ တင်ပြရမည်။ အချက်အလက်များပေးပို့ခြင်း နှင့်/သို့မဟုတ် ဆက်နွယ်သော အဖြစ်အပျက်ဆိုင်ရာ သတိပေးချက်များကို ကြက်ခြေနီမှ ပြင်ဆင်မှုများပြုလုပ်ပြီးပါက သင်သည် ပြင်ဆင်ခြင်း၊ တုန့်ပြန်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်းဆိုင်ရာ မက်ဆေ့ခ်ျတစ်ခုချင်းစီအား ပုံစံအသစ်ဖြင့် ပြန်လည်ပြင်ဆင်ရမည်။\n\nသင်အသုံးပြုသော ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ရယူခြင်း မက်ဆေ့တစ်ခုချင်းစီသည် ၎င်းထုတ်ပေးသည့် ပထဝီဒေသနှင့်သာ သက်ဆိုင်ရမည်။ အကယ်၍ ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်းဆိုင်ရာမက်ဆေ့ခ်ျများတွင် အမေရိကန်ကြက်ခြေနီ သို့မဟုတ် အခြားကြက်ခြေနီ သို့မဟုတ် လခြမ်းနီအမျိုးသားလူ့အဖွဲ့အစည်း သို့မဟုတ် အဖွဲ့အစည်း (\"ရင်းမြစ်ကိုးကားချက်\" တစ်ခုချင်းစီ) ကဲ့သို့သော အရင်းအမြစ်တစ်ခုကို ရည်ညွှန်းပါက၊ သင်သည် ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်း နှင့် ပြန်လည်ထူထောင်ခြင်းဆိုင်ရာမက်ဆေ့ချ်များအတွက် ကိုးကားချက်များကို Data Feeds တွင်း ပေးအပ်ထားသောဖောင်ပုံစံအတွင်း ဖြည့်သွင်းရမည်။ သင်သည် မည်သည့် ရင်းမြစ်ရည်ညွှန်းချက်ကိုမှ ထပ်မံ၍ အသုံးမပြုရ။\n\nသင်သည် သတင်းအချက်အလက်များကို ထည့်သွင်းခြင်း (Data Feeds)၊ ဖြစ်ရပ်များသတိပေးခြင်းများ နှင့်/သို့မဟုတ် ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ရယူခြင်းမက်ဆေ့များကို အခြားဘာသာစကားများသို့ ဘာသာပြန်ဆိုခြင်း၊ မည်သည့်နည်းနှင့်မဆို အသုံးချခြင်း၊ ပြုပြင်ခြင်း၊ ပြန်လည်ပြင်ဆင်ခြင်း မပြုလုပ်ရပါ။ သတင်းအချက်အလက်များကို ထည့်သွင်းခြင်း၊ ဖြစ်ရပ်များသတိပေးခြင်းများ နှင့်/သို့မဟုတ် ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ရယူခြင်းမက်ဆေ့များ၏ အဓိပ္ပာယ်ကို ပြောင်းလဲခြင်း (များ) မပြုလုပ်ရပါ။\n\nData Feeds သည် သင့်တစ်ဦးတည်း၏ ပိုင်ဆိုင်မှု နှင့်/သို့မဟုတ် ထိန်းချုပ်မှုအောက်တွင် ရှိကြောင်း သေချာအောင် ပြုလုပ်ရမည်။\n\nသင်သည် နောက်ဆုံးပေါ်အသုံးပြုသူများထံသို့ ပေးပို့သော အဖြစ်အပျက်သတိပေးချက်များ၊ ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ရယူခြင်းမက်ဆေ့များထဲတွင် မည်သည့်ကြော်ငြာများနှင့် စပွန်ဆာမဆို ထည့်သွင်းခွင့်မပြုစေရ။\n\nသင်သည် Data Feeds တစ်ခုလုံးကိုဖြစ်စေ၊ တစ်စိတ်တစ်ပိုင်းအနေဖြင့်ဖြစ်စေ မည်သည့် သိမ်းဆည်းမှုကိုမှ မလုပ်ရပါ။", "contact": "API နှင့်ပတ်သက်သော မည်သည့်မေးခွန်းများကိုမဆို {0} တွင်ကြက်ခြေနီကို ဆက်သွယ်မေးမြန်းပါ။", "disclaimer": "API နှင့် Data Feeds ကို သတင်းအချက်အလက်ပေးရန်နှင့် ပညာပေးရန် ရည်ရွယ်ချက်များအတွက်သာ ပေးစွမ်းထားပြီး \"ရှိသည့်အတိုင်း\" နှင့် \"ရရှိနိုင်သည့်အတိုင်း\" သာ ပေးထားသည်။ ကြက်ခြေနီသည် မည်သို့သော ကိုယ်စားပြုမှု (သို့) အာမခံမှုများကိုမှ ပြုလုပ်ခြင်း၊ ဖော်ပြခြင်း သို့မဟုတ် ရည်ရွယ်ခြင်းမရှိပါ။ ကြက်ခြေနီအနေဖြင့် ကုန်သွယ်နိုင်မှုနှင့် သီးသန့်ရည်ရွယ်ချက်ပါဝင်သော ကြံ့ခိုင်မှုဆိုင်ရာ ရည်ညွှန်းအာမခံချက်များပါဝင်ပြီး ယင်းတို့သာဟု သတ်မှတ်မထားသည့် တိကျစွာဖော်ပြထားသော (သို့မဟုတ်) အဓိပ္ပာယ်သက်ရောက်သော အာမခံများအားလုံးကို ငြင်းဆိုထားသည်။ API အသုံးပြုခြင်း၊ ဒေတာထည့်သွင်းခြင်း (Data Feeds)၊ ဖြစ်ရပ်သတိပေးခြင်းများ၊ ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်း နှင့် ပြန်လည်ထူထောင်ခြင်းမက်ဆေ့ခ်ျများအပါအဝင်နှင့် အခြားသောဝန်ဆောင်မှုများအား အသုံးပြုခြင်းကြောင့် တိုက်ရိုက်၊ သွယ်ဝိုက်၍၊ မတော်တဆ၊ ဒဏ်ပေးခြင်းအဖြစ်၊ အကျိုးဆက်အနေဖြင့် ဖြစ်လာသော ပျက်စီးဆုံးရှုံးမှုများသည် ကြက်ခြေနီနှင့် ၎င်း၏ ဝန်ထမ်းများ၊ အရာရှိများ၊ အုပ်ချုပ်ရေးမှူးများနှင့် အေးဂျင့်များ နှင့် လိုင်စင်ရသူများထံတွင် တာဝန်မရှိပါ။\n\nကြက်ခြေနီသည် API၊ အချက်အလက်ပေးပို့မှု (Data Feeds)၊ ဖြစ်ရပ်သတိပေးမှု၊ ကြိုတင်ပြင်ဆင်ခြင်း၊ ပြန်လည်ထူထောင်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်းမက်ဆေ့ချ်များ၏ အစီအစဉ်များ၊ တိကျမှန်ကန်မှု၊ စစ်မှန်မှု သို့မဟုတ် ပြည့်စုံမှုကို အာမမခံသလို သင် (သို့) အခြားသော နောက်ပိတ်အသုံးပြုသူများ (သို့) အခြားသူများအတွက် ဤနေရာတွင် ပေးပို့ထားသော API၊ အချက်အလက်ပေးပို့မှု၊ ဖြစ်ရပ်သတိပေးမှု၊ ကြိုတင်ပြင်ဆင်ခြင်း၊ ပြန်လည်ထူထောင်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်းမက်ဆေ့များ၏ နောက်ကျမှု၊ မတိကျမှု၊ အမှားများ (သို့) လိုအပ်ချက်များအပါအဝင် အခြားသောကိစ္စများအား တာဝန်ယူမည်မဟုတ်ပါ။", "entire_agreement": { @@ -866,7 +870,7 @@ "heading": "အသုံးပြုသူလိုင်စင်သဘောတူညီချက်ကို API အဆုံးသတ်ထားသည်", "intro": "သဘောတူသည် - ဤဝန်ဆောင်မှုကို အသုံးပြုခြင်း (သို့မဟုတ်) ဤလေးထောင့်ကွက်အား အမှန်ခြစ်ခြင်းအားဖြင့် အသုံးပြုသူသည် ဤသဘောတူညီမှုဖြင့် တွဲနှောင်ခြင်းကို လက်ခံသည်။\n\nAPI သည် သင်ကြက်ခြေနီမှရရှိသော အချက်အလက်ထည့်သွင်းမှုများကို ပြန်လည်ရယူရန်နှင့် အသုံးပြုရန် ကမ္ဘာလုံးဆိုင်ရာ ရာသီဥတုနှင့်သဘာဝဘေးအန္တရာယ်ဆိုင်ရာ ဖြစ်ရပ်သတိပေးချက်များနှင့် စောင့်ကြည့်သတိပေးချက်များ (\"ဖြစ်ရပ်သတိပေးချက်များ) နှင့် ဒေသန္တရဘေးအန္တရာယ်များအတွက် ပြင်ဆင်နိုင်ရန် အန္တရာယ်အမျိုးအစားနှင့် အလျင်လိုမှုတို့အား ပေးထားပြီး (\"သတင်းများကိုပြင်ဆင်ခြင်း၊ တုန့်ပြန်ခြင်း နှင့် ပြန်လည်ထူထောင်ခြင်း” ဖြစ်ရပ်သတိပေးချက်များ (Event Alerts) နှင့်အတူ၊ “ဒေတာထည့်သွင်းခြင်းများ (Data Feeds\") လုပ်ဆောင်နိုင်ပြီး ကျိုးကြောင်းညီညွတ်မှုရှိသော မက်ဆေ့များကို ခွင့်ပြုသည့် ကိရိယာတစ်ခုဖြစ်သည်။ ကြိုတင်ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်းဆိုင်ရာ မက်ဆေ့ခ်ျများကို ဖြစ်စဉ်သတိပေးချက်များ သို့မဟုတ် အခြားသတိပေးချက်များနှင့်အတူ တွဲဖက်ထည့်သွင်းရန် နှင့် သင်၏ကိုယ်ပိုင် အက်ပလီကေးရှင်းရှိ ရာသီဥတု နှင့် သဘာဝဘေးအန္တရာယ်များ နှင့်ဆက်စပ်သော သတိပေးချက်များကို စောင့်ကြည့်ရန် ရည်ရွယ်သည်။ သင်၏အချက်အလက်ထည့်သွင်းမှုကို အသုံးပြုခြင်းကို API သတ်မှတ်ချက်များဖြင့် စီမံသည်။", "license_limitations": { - "body": "သင်သည် ဒေတာထည့်သွင်းမှု (Data Feeds) များကို API သတ်မှတ်ချက်များနှင့်အညီ သင့်ကိုယ်ပိုင် အက်ပလီကေးရှင်းနှင့် ဆက်စပ်၍သာ သုံးနိုင်ပြီး၊ အခါအားလျော်စွာ မွမ်းမံသည့်အတိုင်း API နှင့်သဟဇာတဖြစ်စေရန် ထိန်းသိမ်းပံ့ပိုးရမည်။ API သတ်မှတ်ချက်များအရ သင့်ကိုယ်ပိုင်အက်ပလီကေးရှင်း အသုံးပြုသူများ (\"အသုံးပြုသူများ\") အတွက် အဖြစ်အပျက် သတိပေးချက်များနှင့် အချက်အလက်ထည့်သွင်းမှုများမှ သီးခြားအဖြစ်အပျက် သတိပေးချက်များ၏ အရေးပေါ်ဆက်တင်နှင့်ဆက်စပ်သည့် သက်ဆိုင်ရာ အခြေအနေအလိုက် ကြိုတင်ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်းဆိုင်ရာ မက်ဆေ့ချ်များ ဒေါင်းလုဒ်လုပ်ရန်၊ အသုံးပြုရန်၊ ပြန်လည်ထုတ်လုပ်ရန်နှင့် ဖြန့်ဝေရန်အတွက် သီးသန့်မဟုတ်သော၊ ကန့်သတ်ထားပြီး ပြန်လည်ရုပ်သိမ်းနိုင်သော အခွင့်အရေးကို သင့်အားပေးအပ်သည်။ API သတ်မှတ်ချက်များနှင့်အညီ ထည့်သွင်းထားသော Data Feeds များကို စီးပွားဖြစ်မဟုတ်သော အသုံးပြုခြင်းများ ဖြစ်မြောက်စေရန်အတွက်သာ API ကို သင် အသုံးပြုနိုင်သည်။ ၎င်းတို့ကို ပြန်လည်ရောင်းချခြင်း၊ ၎င်းတို့ကို သုံးစွဲရန်အတွက် အခကြေးငွေယူခြင်း၊ ၎င်းတို့ကို ပြန်လည်ဖြန့်ဝေရန်အတွက် အခကြေးငွေယူခြင်း သို့မဟုတ် ၎င်းတို့အပေါ် အခြေခံပြီး ဆင့်ပွားကူယူဖန်တီးခြင်းအပါအဝင်ဖြစ်ပြီး ၎င်းတို့ချည်းသာဟု ကန့်သတ်မထားသည့် Data Feeds များ၊ အဖြစ်အပျက် သတိပေးချက်များ နှင့်\/သို့မဟုတ် ကြိုတင်ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်း မက်ဆေ့ချ်များကို စီးပွားဖြစ် အသုံးပြုခြင်းများ ဖြစ်မြောက်စေရန်အတွက် API ကို သုံးစွဲသည့် မည်သည့်ဖြစ်စဉ်တွင်မျှ မပါဝင်ရပါ။ အောက်တွင် သတ်မှတ်ထားသည့်အတိုင်း API တွင်ရှိသော၊ API အတွက်ဖြစ်သော အားလုံးသော ရပိုင်ခွင့်၊ ပိုင်ဆိုင်မှု၊ အခွင့်အရေးများနှင့် အကျိုးအမြတ်များ၊ ကြိုတင်ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်းမက်ဆေ့ချ်များ၊ အဖြစ်အပျက် သတိပေးချက်များ၊ အချက်အလက် ထည့်သွင်းမှု (Data Feeds) များ၊ ရင်းမြစ်ကိုးကားချက်များနှင့် ဆက်စပ်သမျှကို ကြက်ခြေနီနှင့် ၎င်းအားလိုင်စင်ချပေးသူများက ထိန်းသိမ်းရမည်။ ရှင်းရှင်းလင်းလင်း ပေးအပ်ထားခြင်းမရှိသော မူပိုင်ခွင့်များအားလုံးကို ရယူပြီးဖြစ်သည်။", + "body": "သင်သည် ဒေတာထည့်သွင်းမှု (Data Feeds) များကို API သတ်မှတ်ချက်များနှင့်အညီ သင့်ကိုယ်ပိုင် အက်ပလီကေးရှင်းနှင့် ဆက်စပ်၍သာ သုံးနိုင်ပြီး၊ အခါအားလျော်စွာ မွမ်းမံသည့်အတိုင်း API နှင့်သဟဇာတဖြစ်စေရန် ထိန်းသိမ်းပံ့ပိုးရမည်။ API သတ်မှတ်ချက်များအရ သင့်ကိုယ်ပိုင်အက်ပလီကေးရှင်း အသုံးပြုသူများ (\"အသုံးပြုသူများ\") အတွက် အဖြစ်အပျက် သတိပေးချက်များနှင့် အချက်အလက်ထည့်သွင်းမှုများမှ သီးခြားအဖြစ်အပျက် သတိပေးချက်များ၏ အရေးပေါ်ဆက်တင်နှင့်ဆက်စပ်သည့် သက်ဆိုင်ရာ အခြေအနေအလိုက် ကြိုတင်ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်းဆိုင်ရာ မက်ဆေ့ချ်များ ဒေါင်းလုဒ်လုပ်ရန်၊ အသုံးပြုရန်၊ ပြန်လည်ထုတ်လုပ်ရန်နှင့် ဖြန့်ဝေရန်အတွက် သီးသန့်မဟုတ်သော၊ ကန့်သတ်ထားပြီး ပြန်လည်ရုပ်သိမ်းနိုင်သော အခွင့်အရေးကို သင့်အားပေးအပ်သည်။ API သတ်မှတ်ချက်များနှင့်အညီ ထည့်သွင်းထားသော Data Feeds များကို စီးပွားဖြစ်မဟုတ်သော အသုံးပြုခြင်းများ ဖြစ်မြောက်စေရန်အတွက်သာ API ကို သင် အသုံးပြုနိုင်သည်။ ၎င်းတို့ကို ပြန်လည်ရောင်းချခြင်း၊ ၎င်းတို့ကို သုံးစွဲရန်အတွက် အခကြေးငွေယူခြင်း၊ ၎င်းတို့ကို ပြန်လည်ဖြန့်ဝေရန်အတွက် အခကြေးငွေယူခြင်း သို့မဟုတ် ၎င်းတို့အပေါ် အခြေခံပြီး ဆင့်ပွားကူယူဖန်တီးခြင်းအပါအဝင်ဖြစ်ပြီး ၎င်းတို့ချည်းသာဟု ကန့်သတ်မထားသည့် Data Feeds များ၊ အဖြစ်အပျက် သတိပေးချက်များ နှင့်/သို့မဟုတ် ကြိုတင်ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်း မက်ဆေ့ချ်များကို စီးပွားဖြစ် အသုံးပြုခြင်းများ ဖြစ်မြောက်စေရန်အတွက် API ကို သုံးစွဲသည့် မည်သည့်ဖြစ်စဉ်တွင်မျှ မပါဝင်ရပါ။ အောက်တွင် သတ်မှတ်ထားသည့်အတိုင်း API တွင်ရှိသော၊ API အတွက်ဖြစ်သော အားလုံးသော ရပိုင်ခွင့်၊ ပိုင်ဆိုင်မှု၊ အခွင့်အရေးများနှင့် အကျိုးအမြတ်များ၊ ကြိုတင်ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်းမက်ဆေ့ချ်များ၊ အဖြစ်အပျက် သတိပေးချက်များ၊ အချက်အလက် ထည့်သွင်းမှု (Data Feeds) များ၊ ရင်းမြစ်ကိုးကားချက်များနှင့် ဆက်စပ်သမျှကို ကြက်ခြေနီနှင့် ၎င်းအားလိုင်စင်ချပေးသူများက ထိန်းသိမ်းရမည်။ ရှင်းရှင်းလင်းလင်း ပေးအပ်ထားခြင်းမရှိသော မူပိုင်ခွင့်များအားလုံးကို ရယူပြီးဖြစ်သည်။", "heading": "လိုင်စင်နှင့် ကန့်သတ်ချက်များ -" }, "overview": { @@ -885,17 +889,17 @@ "two": "စစ်မှန်ကြောင်းအတည်ပြုသည့် နည်းပညာများ အပါအဝင် ကြက်ခြေနီ သို့မဟုတ် API က အသုံးပြုသည့် ကီးများ သို့မဟုတ် လုံခြုံရေးယန္တရားများကို ကျော်လွှားရန် သို့မဟုတ် ပြုပြင်မွမ်းမံရန်။", "three": "သင့်ကိုယ်ပိုင်အကောင့်အတွက် ပေးအပ်ထားသည့်အရာမှအပ ကြက်ခြေနီအတွက် စာရင်းသွင်း (sign-in) အမည်များ၊ စကားဝှက်များ သို့မဟုတ် အခြား စစ်မှန်ကြောင်းအတည်ပြု အထောက်အထားများကို တောင်းခံရန်၊ စုဆောင်းရန်၊ တောင်းဆိုရန် သို့မဟုတ် တနည်းအားဖြင့် ဝင်ရောက်သုံးစွဲခွင့် ရရှိရန်။", "four": "ကြက်ခြေနီ သို့မဟုတ် အခြား ကြက်ခြေနီ သို့မဟုတ် လခြမ်းနီ နိုင်ငံလုံးဆိုင်ရာ အသိုင်းအဝိုင်း သို့မဟုတ် အဖွဲ့အစည်းများ၏ ဆက်နွှယ်မှု၊ ကမကထပြုမှု၊ ထောက်ခံမှုကို ဖော်ပြရန် သို့မဟုတ် ညွှန်းဆိုရန်။", - "five": "API၊ အချက်အလက်ထည့်သွင်းမှု (Data Feeds) များ၊ အဖြစ်အပျက် သတိပေးချက်များ နှင့်\/သို့မဟုတ် ကြိုတင်ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်းဆိုင်ရာ မက်ဆေ့ချ်များကို သင်ပိုင်ဆိုင်သည် သို့မဟုတ် ဖန်တီးသည်ဟု ဖော်ပြရန် သို့မဟုတ် ညွှန်းဆိုရန်။", + "five": "API၊ အချက်အလက်ထည့်သွင်းမှု (Data Feeds) များ၊ အဖြစ်အပျက် သတိပေးချက်များ နှင့်/သို့မဟုတ် ကြိုတင်ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်းဆိုင်ရာ မက်ဆေ့ချ်များကို သင်ပိုင်ဆိုင်သည် သို့မဟုတ် ဖန်တီးသည်ဟု ဖော်ပြရန် သို့မဟုတ် ညွှန်းဆိုရန်။", "six": "ဗိုင်းရပ်စ်များ (viruses)၊ ပိုးကူးစက် ချို့ယွင်းချက်များ (worms defects)၊ ထရိုဂျန်မြင်းများ (Trojan horses) သို့မဟုတ် အဖျက်သဘာဝရှိသည့် မည်သည့် ပစ္စည်းများမဆိုကို ထုတ်လွှတ်ရန်။" } }, - "reserve_rights": "API နှင့် အချက်အလက်ထည့်သွင်းမှုများကို တစ်ခုလုံး သို့မဟုတ် တစ်စိတ်တစ်ပိုင်းကို ယာယီသော်လည်းကောင်း အမြဲတမ်းသော်လည်းကောင်း မည်သည့်အချိန်တွင်မဆို ကြိုတင်အသိပေးခြင်းမရှိဘဲ ပြောင်းလဲရန် နှင့်\/သို့မဟုတ် ဆက်လက်ပံ့ပိုးခြင်း မပြုတော့ရန် ကြက်ခြေနီတွင် လုပ်ပိုင်ခွင့်ရှိသည်။ သံသယမဖြစ်စေရန်အလို့ငှာ API သို့မဟုတ် အချက်အလက်ထည့်သွင်းမှုများကို သင် ရရှိနိုင်စေရန် ကြက်ခြေနီကို ဤနေရာတွင် မည်သည်ကမျှ တာဝန်ပေးအပ် မထားပါ၊ ထို့အပြင် ယင်းအား ရယူမှုသည် ကြက်ခြေနီ၏ တစ်ဦးတည်းနှင့် လုံးလုံးလျားလျား ဆုံးဖြတ်ချက်အတွင်းဖြစ်ကြောင်း သင်သဘောတူ အသိအမှတ်ပြုပါသည်။", + "reserve_rights": "API နှင့် အချက်အလက်ထည့်သွင်းမှုများကို တစ်ခုလုံး သို့မဟုတ် တစ်စိတ်တစ်ပိုင်းကို ယာယီသော်လည်းကောင်း အမြဲတမ်းသော်လည်းကောင်း မည်သည့်အချိန်တွင်မဆို ကြိုတင်အသိပေးခြင်းမရှိဘဲ ပြောင်းလဲရန် နှင့်/သို့မဟုတ် ဆက်လက်ပံ့ပိုးခြင်း မပြုတော့ရန် ကြက်ခြေနီတွင် လုပ်ပိုင်ခွင့်ရှိသည်။ သံသယမဖြစ်စေရန်အလို့ငှာ API သို့မဟုတ် အချက်အလက်ထည့်သွင်းမှုများကို သင် ရရှိနိုင်စေရန် ကြက်ခြေနီကို ဤနေရာတွင် မည်သည်ကမျှ တာဝန်ပေးအပ် မထားပါ၊ ထို့အပြင် ယင်းအား ရယူမှုသည် ကြက်ခြေနီ၏ တစ်ဦးတည်းနှင့် လုံးလုံးလျားလျား ဆုံးဖြတ်ချက်အတွင်းဖြစ်ကြောင်း သင်သဘောတူ အသိအမှတ်ပြုပါသည်။", "severability": { "body": "API သတ်မှတ်ချက်များ၏ မည်သည့်အချက် သို့မဟုတ် ပြဋ္ဌာန်းချက်မဆို၏ တရားမဝင်မှုသည် အခြားမည်သည့် ပြဋ္ဌာန်းချက်မဆို၏ တရားဝင်မှုကိုမျှ ထိခိုက်လိမ့်မည် မဟုတ်ပါ။", "heading": "ခွဲခြမ်းစိတ်ဖြာနိုင်ခြင်းနှင့် ပယ်ချခြင်း -" }, "suspension": { - "body": "API စည်းကမ်းချက်များတွင် ဖော်ပြထားသည့်အတိုင်း သင်သည် API သို့မဟုတ် အချက်အလက်ထည့်သွင်းမှုကို တရားမဝင်သုံးစွဲရာတွင် ပါဝင်ပတ်သက်နေသည် သို့မဟုတ် သင်သည် မည်သည့်ပုဂ္ဂိုလ် သို့မဟုတ် ကြက်ခြေနီကွန်ရက်မဆို၏ ဘေးကင်းရေး နှင့်\/သို့မဟုတ် လုံခြုံရေးကို ခြိမ်းခြောက်သည့်\/ အပေးအယူလုပ်သည့် လုပ်ဆောင်ချက်များတွင် API သို့မဟုတ် အချက်အလက်ထည့်သွင်းမှုကို အသုံးပြုနေသည်ဟုကြက်ခြေနီက ၎င်း၏တစ်ဦးတည်း ဆုံးဖြတ်ခွင့်ဖြင့် ဆုံးဖြတ်ပါက ကြက်ခြေနီတွင် သင့် ဝင်ရောက်သုံးစွဲမှုကို ဆိုင်းငံ့ခွင့် သို့မဟုတ် ရပ်စဲခွင့်ရှိသည်။", + "body": "API စည်းကမ်းချက်များတွင် ဖော်ပြထားသည့်အတိုင်း သင်သည် API သို့မဟုတ် အချက်အလက်ထည့်သွင်းမှုကို တရားမဝင်သုံးစွဲရာတွင် ပါဝင်ပတ်သက်နေသည် သို့မဟုတ် သင်သည် မည်သည့်ပုဂ္ဂိုလ် သို့မဟုတ် ကြက်ခြေနီကွန်ရက်မဆို၏ ဘေးကင်းရေး နှင့်/သို့မဟုတ် လုံခြုံရေးကို ခြိမ်းခြောက်သည့်/ အပေးအယူလုပ်သည့် လုပ်ဆောင်ချက်များတွင် API သို့မဟုတ် အချက်အလက်ထည့်သွင်းမှုကို အသုံးပြုနေသည်ဟုကြက်ခြေနီက ၎င်း၏တစ်ဦးတည်း ဆုံးဖြတ်ခွင့်ဖြင့် ဆုံးဖြတ်ပါက ကြက်ခြေနီတွင် သင့် ဝင်ရောက်သုံးစွဲမှုကို ဆိုင်းငံ့ခွင့် သို့မဟုတ် ရပ်စဲခွင့်ရှိသည်။", "heading": "ဆိုင်းငံ့ခြင်း သို့မဟုတ် ရပ်စဲခြင်း -" } }, diff --git a/resources/lang/ne.json b/resources/lang/ne.json index dff7f76..eeb991f 100644 --- a/resources/lang/ne.json +++ b/resources/lang/ne.json @@ -92,7 +92,7 @@ "response_codes": "जवाफ कोडहरु", "emergency_alert_feed": "आपतकालिन सतर्क फीड", "cap_alert_document": "CAP सतर्क कागजात", - "what_now": "WhatNow\/ह्वाटनाउ" + "what_now": "WhatNow/ह्वाटनाउ" }, "steps": { "one": { @@ -163,12 +163,12 @@ "body": "निम्न अन्त्य बिन्दुहरूले रेड क्रस सोसाइटीहरू द्वारा प्रकाशित संरचित डाटा प्रदान गर्दछ जुनले विभिन्न घटना प्रकारका बेला मद्दत गर्दछ |\n\nप्रत्येक प्रविष्टि प्रकोप व्यवस्थापन को छ चरणहरुको बारेमा जानकारी प्रदान गर्दछ", "endpoint": "अन्तिमबिन्दु:", "example_response": "उदाहरण प्रतिक्रिया:", - "heading": "WhatNow\/ह्वाटनाउ", + "heading": "WhatNow/ह्वाटनाउ", "note": "पुनश्च:", "noteDetails": "{0} सबै प्रतिक्रियाहरु {1} ठुलो अभिभावक चिजको भित्र हुन्छन", "query_params": "कुएरी पारामितेर्स", "response_properties": "प्रतिक्रिया गुणहरू", - "structure": "Whatnow\/ह्वाटनाउ वस्तुहरुको संरचना", + "structure": "Whatnow/ह्वाटनाउ वस्तुहरुको संरचना", "stucture_attribution": "{0} वस्तुको संरचना", "stucture_attribute_translation": "एट्रिब्युसन {0} वस्तुको संरचना", "stucture_translation": " {0} वस्तुको संरचना", @@ -197,13 +197,15 @@ "steps": { "one": { "heading": "पहिलो चरण - साइन अप", - "body": "सुरक्षा सन्देश डेटाबेस API बाट डाटा प्रयोग गर्न सुरु गर्न, सर्वप्रथम सुरक्षा सन्देश डेटाबेस पोर्टलमा {0} गर्नुहोस्।\n\nतपाईंले आफ्नो फेसबुक र गुगल खाताहरू, वा इमेल ठेगाना प्रयोग गरेर खाता बनाउन सक्नुहुन्छ।", "create_account_alt": "खाता खोल्नुहोस्", + "body": "सुरक्षा सन्देश डेटाबेस API बाट डाटा प्रयोग गर्न सुरु गर्न, सर्वप्रथम सुरक्षा सन्देश डेटाबेस पोर्टलमा {0} गर्नुहोस्।\n\nतपाईंले आफ्नो फेसबुक र गुगल खाताहरू, वा इमेल ठेगाना प्रयोग गरेर खाता बनाउन सक्नुहुन्छ।", + "create_account_alt": "खाता खोल्नुहोस्", "existing_account": "पहिले नै खाता छ भने कृपया {0}", "login_cta": "लग इन", "sign_up_cta": "साइन अप" }, "two": { - "body": "API प्रयोग गर्न, तपाईंले सुरक्षा सन्देश डेटाबेस पोर्टलमा एउटा अनुप्रयोग बनाउनुपर्छ। तपाईंले के बनाउँदै हुनुहुन्छ भन्ने बारेमा हामीलाई थोरै बताउनुहोस्।", "create_app_alt": "आप्प बनाउनुहोस्", + "body": "API प्रयोग गर्न, तपाईंले सुरक्षा सन्देश डेटाबेस पोर्टलमा एउटा अनुप्रयोग बनाउनुपर्छ। तपाईंले के बनाउँदै हुनुहुन्छ भन्ने बारेमा हामीलाई थोरै बताउनुहोस्।", + "create_app_alt": "आप्प बनाउनुहोस्", "heading": "दोस्रो चरण -आप्प बनाउनुहोस्" }, "three": { @@ -214,7 +216,8 @@ }, "four": { "api_docs_cta": "ए.पी.आई कागजात", - "body": "सुरक्षा सन्देश डेटाबेस API ले HTTP(S) प्रयोग गर्दछ र प्रकाशित डाटा प्राप्त गर्न RESTful अन्त्यबिन्दुहरू प्रदान गर्दछ।\n\nप्रत्येक अनुरोध अघिल्लो चरणमा बनाइएको API कुञ्जी प्रयोग गरेर प्रमाणित हुनुपर्छ।", "example_title": "अनुरोधको उदाहरण", + "body": "सुरक्षा सन्देश डेटाबेस API ले HTTP(S) प्रयोग गर्दछ र प्रकाशित डाटा प्राप्त गर्न RESTful अन्त्यबिन्दुहरू प्रदान गर्दछ।\n\nप्रत्येक अनुरोध अघिल्लो चरणमा बनाइएको API कुञ्जी प्रयोग गरेर प्रमाणित हुनुपर्छ।", + "example_title": "अनुरोधको उदाहरण", "heading": "चरण ४ - अनुरोध गर्नुहोस", "moreInfo": "सबै ए.पी.आई अन्त्य बिन्दुहरुको थप जानकारीका लागि {0} हेर्नु होस्" } @@ -438,9 +441,9 @@ "immediate": "तत्काल", "warning": "चेतावनी", "anticipated": "अपेक्षित", - "assess_and_plan":"मूल्याङ्कन र योजना", - "mitigate_risks":"जोखिम कम गर्नुहोस्", - "prepare_to_respond":"प्रतिक्रिया दिन तयार हुनुहोस्", + "assess_and_plan": "मूल्याङ्कन र योजना", + "mitigate_risks": "जोखिम कम गर्नुहोस्", + "prepare_to_respond": "प्रतिक्रिया दिन तयार हुनुहोस्", "recover": "पुनर्प्राप्त गर्नुहोस्" }, "content": { @@ -521,9 +524,9 @@ "seasonalForecast": "मौसमी पूर्वानुमान", "seasonalForecast_help": "जोखिम घटाउने छोटो अवधिका कार्यहरु", "seasonalForecast_extra": "मौसमी पूर्वानुमान भनेको जोखिमयुक्त घटनाको अनुमानको तथ्य हो । संभाव्य जोखिमहरुको लेखाजोखा र कार्य योजनाहरु जोखिम न्यूनिकरण गर्न र घरपरिवारलाई सुरक्षित राख्न अपनाईएका कार्यहरु हुन्", - "watch": "घडी\/पहरा", + "watch": "घडी/पहरा", "watch_help": "जवाफ दिन तयार हुनुहोस्", - "watch_extra": "जब खतरनाक घटनाको जोखिम अर्थपुर्ण रुपमा बढ्छ घडि\/पहरा जारी गरिन्छ तर यस्को पटक, स्थान र\/वा समय अझै अनिश्चित हुन्छ । सुरक्षाको लागि कार्यहरु गर्न र प्रतिकार्य गर्न तयारी गर्ने हेतुले पर्याप्त समय दिइएको हुन्छ", + "watch_extra": "जब खतरनाक घटनाको जोखिम अर्थपुर्ण रुपमा बढ्छ घडि/पहरा जारी गरिन्छ तर यस्को पटक, स्थान र/वा समय अझै अनिश्चित हुन्छ । सुरक्षाको लागि कार्यहरु गर्न र प्रतिकार्य गर्न तयारी गर्ने हेतुले पर्याप्त समय दिइएको हुन्छ", "warning": "चेतावनि", "warning_help": "जवाफ दिन तयार हुनुहोस्", "warning_extra": "जब खतरनाक घटना हुन लागिरहेको हुन्छ, हुनेवाला छ वा हुने धेरै संभावना हुन्छ तब चेतावनी जारी गरिएको हुन्छ यस्को मतलब त्यस्तो अवस्थाले कुनै पनि जीवन वा सम्पत्तिमा हानि पुर्याउने भएमा यो जोखिमको बाटोमा रहेका मानिसहरुले सुरक्षित कार्यहरु अपनाउनु आवश्यक हुन्छ", @@ -538,7 +541,7 @@ "mitigate_risks": "जोखिम कम गर्नुहोस्", "prepare_to_respond": "प्रतिक्रिया दिन तयार हुनुहोस्", "updated": "अध्यावधिक गरिएको", - "download_icon": "आईकन\/संकेत डाउनलोड गर्नुहोस", + "download_icon": "आईकन/संकेत डाउनलोड गर्नुहोस", "download_image": "ईमेजको रुपमा डाउनलोड गर्नुहोस", "download_image_error": "ईमेज डाउनलोड गर्दा खराबी, कृपया पक्का गर्नुहोस् कि परिवर्तित कुराहरु प्रकासित भई सकेका छन् र फेरि कोशिस गर्नुहोस", "download_instructions": " सेभ गर्न दाँया बटन थिच्नुहोस र छनौट गर्नुहोस 'Save image as....'", @@ -555,7 +558,8 @@ "content_edit_title": "सामग्री सम्पादन", "content_add_hazard_title": "खतरा थप्नुहोस्", "key_message_label": "मुख्य सन्देश शीर्षक", - "supporting_message_label": "समर्थन सन्देश" + "supporting_message_label": "समर्थन सन्देश", + "mitigate_risk": "जोखिम कम गर्नुहोस्" }, "message_editor": { "title": "एट्रिब्युशन सम्पादक", @@ -587,7 +591,7 @@ "updated": "अध्यावधिक गरिएको", "failed": "सफल भएन", "invalid": " अस्विकार्य", - "row": "लाईन\/हरफ" + "row": "लाईन/हरफ" }, "upload_csv": "कागजात CVS ढाँचामा अपलोड गर्नुहोस", "language_instructions": "यहाँ तपाईँले आयात गर्नुभएको कागजातको अनुवाद गरिएको भाषा चयन गर्नुहोस् ।", @@ -596,12 +600,13 @@ "submit": "बिषयवस्तु आयात गर्नुहोस", "reset": "अर्को अपलोड गर्नुहोस", "export_template_guide": "टेम्प्लेट निर्देशिका निर्यात गर्नुहोस", - "export_template_instructions": "यस g फाइल अपलोड टेम्प्लेट प्रभावकारी रूपमा कसरी प्रयोग गर्ने भन्ने बारे निर्देशनहरूको लागि, कृपया यो गाइड हेर्नुहोस्।", "refer": "लाई सन्दर्भ गर्नुहोस्", + "export_template_instructions": "यस g फाइल अपलोड टेम्प्लेट प्रभावकारी रूपमा कसरी प्रयोग गर्ने भन्ने बारे निर्देशनहरूको लागि, कृपया यो गाइड हेर्नुहोस्।", + "refer": "लाई सन्दर्भ गर्नुहोस्", "detail": "विस्तृत निर्देशनहरूको लागि", "warnings": { "title": "यदि कुनै विषयवस्तु को सबैभन्दा नँया संस्करण मा अधिलेखन गरिएको छ भने आयात अस्विकार गर्नुहोला", - "on": "हुन्छ\/हो", - "off": "हुदैन\/होईन" + "on": "हुन्छ/हो", + "off": "हुदैन/होईन" }, "overwriting": { "title": "अधिलेखन व्यबस्था (सेटिङ्ग)", @@ -614,8 +619,8 @@ "bad_request_error_codes": { "30001": "स्तम्भ शिर्षक टेम्प्लेट संग मेल खादैन", "30002": "विशेषताको नाम, सन्देश र URL हराईरहेका छन्", - "30003": "अस्विकार्य विशेषता url - कृपया मुलपत्र प्रस्तुत छ भन्ने सुनिश्चित गर्नुहोस, उदाहरण https:\/\/", - "40001": "अस्विकार्य कन्ट्रि कोड राखिएको छ \/कन्ट्रि कोड मिलेन", + "30003": "अस्विकार्य विशेषता url - कृपया मुलपत्र प्रस्तुत छ भन्ने सुनिश्चित गर्नुहोस, उदाहरण https://", + "40001": "अस्विकार्य कन्ट्रि कोड राखिएको छ /कन्ट्रि कोड मिलेन", "40002": "छनौट गरिएको सोसाइटीछनौट गरिएको फाईलको समाजसंग मेल खादैन", "40003": "छनौट गरेर निर्यात गरिएको फाईलको मिति बिग्रिएको छ र आयात पुरा हुन सकेन" } @@ -685,7 +690,7 @@ }, "landing": { "strapline": "सुरक्षा सन्देश डेटाबेस सेवा", - "strapline_part_2": "ग्लोबल रेड क्रस\/रेड क्रेसेन्टका मुख्य सुरक्षा सन्देशहरु", + "strapline_part_2": "ग्लोबल रेड क्रस/रेड क्रेसेन्टका मुख्य सुरक्षा सन्देशहरु", "head_1": "IFRC सुरक्षा", "head_2": "सन्देश डेटाबेस", "head_text_1": "IFRC सार्वजनिक जागरूकता र आधारित सुरक्षा सन्देशहरू", @@ -725,27 +730,27 @@ "impact": "प्रभाव", "sign_up_today": "आज साइन अप गर्नुहोस्", "developer": { - "strap_para_one": "हाम्रो स्थानीयकृत मुख्य कार्य सन्देशहरु द्वारा समुदायलाई जोखिम\/खतरामा तयार हुन, प्रतिकार गर्न र पुनःप्राप्ति गर्न मद्दत गर्दछ", + "strap_para_one": "हाम्रो स्थानीयकृत मुख्य कार्य सन्देशहरु द्वारा समुदायलाई जोखिम/खतरामा तयार हुन, प्रतिकार गर्न र पुनःप्राप्ति गर्न मद्दत गर्दछ", "strap_para_two": "तपाईंको अनुप्रयोगमा सुरक्षा सन्देशहरू एकीकृत गर्न हाम्रो सजिलो चार-चरण गाइड प्रयोग गर्नुहोस्। साइन अप गर्नुहोस् र सबै उपलब्ध सन्देशहरू हेर्नुहोस्।" }, "national_society": { "strap_para_one": "तपाईको आरसिआरसि (RCRC) राष्ट्रिय समाजका मुख्य सुरक्षा संदेशहरु विश्वब्यापी, राष्ट्रिय, र स्थानिय संचारको पहुँच तथा प्रशारको लागि प्रकाशित गर्नुहोस", "strap_para_two": "कसरी संदेशहरु सृजना गर्ने र संचार सझेदारहरु संग सम्बन्ध बढाउने भन्ने बारेमा अझै सिक्न चाहनु हुन्छ भने हामीलाई सम्पर्क गर्नुहोस्।" }, - "strap_para_one": "हाम्रो स्थानीयकृत मुख्य कार्य सन्देशहरु द्वारा समुदायलाई जोखिम\/खतरामा तयार हुन, प्रतिकार गर्न र पुनःप्राप्ति गर्न मद्दत गर्दछ", + "strap_para_one": "हाम्रो स्थानीयकृत मुख्य कार्य सन्देशहरु द्वारा समुदायलाई जोखिम/खतरामा तयार हुन, प्रतिकार गर्न र पुनःप्राप्ति गर्न मद्दत गर्दछ", "strap_para_two": "तपाईंको अनुप्रयोगमा सुरक्षा सन्देशहरू एकीकृत गर्न हाम्रो सजिलो चार-चरण गाइड प्रयोग गर्नुहोस्। साइन अप गर्नुहोस् र सबै उपलब्ध सन्देशहरू हेर्नुहोस्।", - "view_data": "विवरणहरू\/तथ्याङ्कहरु हेर्नुहोस्", + "view_data": "विवरणहरू/तथ्याङ्कहरु हेर्नुहोस्", "view_message_library": "सुरक्षा सन्देशहरू हेर्नुहोस्", "what_now": " ह्वाट्नाउ (WhatNow)?", "fake_alert_heading": "अत्यन्त चिसो चेतावनी", "fake_alert_description": "Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est.", "fake_alert_time": "एक घण्टा अगाडि", - "fake_alert_time_exact": "०५\/०२\/१८ मा ०५ः१५ CT", + "fake_alert_time_exact": "०५/०२/१८ मा ०५ः१५ CT", "use_cases": { "heading": "अझै सिक्नुस", "first_heading": "यसले कसरी काम गर्छ", "first_content": "per ho dolaro frakcistreko, kuo drumo eksterna reprezenti ro hav us singularo propozicio posta", - "second_heading": "प्रसंग\/ कथाहरु प्रयोग गर्नुहोस", + "second_heading": "प्रसंग/ कथाहरु प्रयोग गर्नुहोस", "second_content": "per ho dolaro frakcistreko, kuo drumo eksterna reprezenti ro hav us singularo propozicio posta", "third_heading": "कार्यान्वयन उपकरणहरु", "third_content": "per ho dolaro frakcistreko, kuo drumo eksterna reprezenti ro hav us singularo propozicio posta", @@ -837,10 +842,10 @@ "industries": { "media": "मिडिया", "emergency": "विपद् व्यवस्थापन", - "non_profit": "गैर-नाफामूलक \/ गैसस", + "non_profit": "गैर-नाफामूलक / गैसस", "humanitarian": "मानवतावादी संस्था", - "red_cross": "रेडक्रस\/रेड क्रिसेन्ट", - "education": "शिक्षा\/प्राज्ञ", + "red_cross": "रेडक्रस/रेड क्रिसेन्ट", + "education": "शिक्षा/प्राज्ञ", "gov": "सरकारी निकाय", "other": "अन्य" }, @@ -865,7 +870,7 @@ "heading": "अनुप्रोयग अन्तिम प्रयोगकर्ता अनुज्ञापत्र सम्झौता", "intro": "सहमतः यस सेवाको प्रयोग गरेर वा दिइएको कोष्ठकमा चिह्न लगाएर प्रयोगकर्ता यो सम्झौतासँग अनुब्धित हुने छन्।\n\nयो अनुप्रयोग एउटा औजार हो जसले तपाईं (\"तपाईँ\") लाई रेड क्रसले उपलब्ध गराएको वैश्विक मौसम तथा विपद् घटना चेतावनी र सूचना (\"घटना चेतावनी\") तथा जोखिमको प्रकार र आकस्मिकताका आधारमा स्थानिय जोखिमका लागि कार्यान्वयनयोग्य तथा सान्दर्भिक सन्देशको सङ्गालो (\"तयारी, प्रतिक्रिया र पुनःप्राप्ति सन्देश\") प्राप्ति गर्न दिन्छ। तयारी, प्रतिकृया, र पुनःप्राप्तिका सन्देशहरु तपाईको एप्लिकेशनमा घटनाका सुचना र अन्य मौसम तथा प्रकोपको खतराको संकेतसंगै आउनका लागि हो । तपाईले गर्ने डाटा फिडको प्रयोग एपीआई का सर्तहरु अनुसार हुन्छन् ।", "license_limitations": { - "body": "तपाईं डाटा फिडहरू प्रयोग गर्न सक्नुहुनेछ तपाईंको आफ्नै एप्लिकेसनको साथ एपीआई सर्तहरूको विषयको रूपमा, र तपाईंले समय-समयमा अपडेट गरिए अनुसार एपीआईसँग अनुकूलता कायम राख्नुहुनेछ। तपाईंलाई एपिआईका सर्तहरूमा रहेर प्रत्येक घटनाका सूचनाहरूको हतारो सेटिङ्गसँग सम्बन्धित घटनाका सूचनाहरू तथा परिस्थिति अनुसारको तयारी, प्रतिकृया, र पुनःप्राप्तिका सन्देशहरू डाउनलोड, प्रयोग, पुनःउत्पादन र तपाईंको आफ्नै एप्लिकेशनका प्रयोगकर्ताहरू (\"अन्तिम प्रयोगकर्ता\") मा वितरण गर्न, एकाधिकार नभएको, सिमित र फिर्ता लिन सकिने अधिकार दिइएको छ । एपिआईका सर्तहरू अनुसार डाटा फिडको गैर-व्यवसायिक प्रयोगकको सहजिकरण गर्नका लागि मात्र तपाईंले यो एपिआई प्रयोग गर्न सक्नुहुन्छ । कुनै पनि परिस्थतिमा डाटा फिड, घटनाको सूचना र\/वा तयारी, प्रतिकृया, तथा पुनःप्राप्तिका सन्देशहरूको, सिमितता बिना पुनःबिक्री गर्न, तथा प्रयोग गर्न, पुनः वितरण गर्न वा तिनीहरू जस्तै सामग्री बनाउनका लागि रकम असुली गर्न समेत, व्यवसायिक प्रयोगको सहजिकरण गर्न तपाईंले एपिआईको प्रयोग गर्न पाउनु हुन्न । एपिआई, तयारी, प्रतिकृया र पुनःप्राप्तिका सन्देश, घटनाको सूचना, डाटा फिडहरू तथा सन्दर्भ सामग्रीहरू (तल व्याख्या गरिएअनुसारको) माथिको सम्पूर्ण शीर्षक, स्वमित्व, अधिकार तथा चासो रेड क्रस तथा उनका अनुमतिदातामा निहित छ । स्पष्ट रूपमा प्रदान नगरिएका सबै अधिकारहरू सुरक्षित छन्।", + "body": "तपाईं डाटा फिडहरू प्रयोग गर्न सक्नुहुनेछ तपाईंको आफ्नै एप्लिकेसनको साथ एपीआई सर्तहरूको विषयको रूपमा, र तपाईंले समय-समयमा अपडेट गरिए अनुसार एपीआईसँग अनुकूलता कायम राख्नुहुनेछ। तपाईंलाई एपिआईका सर्तहरूमा रहेर प्रत्येक घटनाका सूचनाहरूको हतारो सेटिङ्गसँग सम्बन्धित घटनाका सूचनाहरू तथा परिस्थिति अनुसारको तयारी, प्रतिकृया, र पुनःप्राप्तिका सन्देशहरू डाउनलोड, प्रयोग, पुनःउत्पादन र तपाईंको आफ्नै एप्लिकेशनका प्रयोगकर्ताहरू (\"अन्तिम प्रयोगकर्ता\") मा वितरण गर्न, एकाधिकार नभएको, सिमित र फिर्ता लिन सकिने अधिकार दिइएको छ । एपिआईका सर्तहरू अनुसार डाटा फिडको गैर-व्यवसायिक प्रयोगकको सहजिकरण गर्नका लागि मात्र तपाईंले यो एपिआई प्रयोग गर्न सक्नुहुन्छ । कुनै पनि परिस्थतिमा डाटा फिड, घटनाको सूचना र/वा तयारी, प्रतिकृया, तथा पुनःप्राप्तिका सन्देशहरूको, सिमितता बिना पुनःबिक्री गर्न, तथा प्रयोग गर्न, पुनः वितरण गर्न वा तिनीहरू जस्तै सामग्री बनाउनका लागि रकम असुली गर्न समेत, व्यवसायिक प्रयोगको सहजिकरण गर्न तपाईंले एपिआईको प्रयोग गर्न पाउनु हुन्न । एपिआई, तयारी, प्रतिकृया र पुनःप्राप्तिका सन्देश, घटनाको सूचना, डाटा फिडहरू तथा सन्दर्भ सामग्रीहरू (तल व्याख्या गरिएअनुसारको) माथिको सम्पूर्ण शीर्षक, स्वमित्व, अधिकार तथा चासो रेड क्रस तथा उनका अनुमतिदातामा निहित छ । स्पष्ट रूपमा प्रदान नगरिएका सबै अधिकारहरू सुरक्षित छन्।", "heading": "इजाजतपत्र र सीमाहरू:" }, "overview": { @@ -884,17 +889,17 @@ "two": "रेड क्रस वा एपीआई द्वारा नियोजित कुनै कुञ्जीहरू वा सुरक्षा संयन्त्रहरूको सर्भेन्ट वा परिमार्जन गर्न, कुनै प्रमाणीकरण टेक्नोलोजी बिना सीमितता सहित।", "three": "अनुरोध गर्न, संकलन गर्न, अनुरोध गर्न वा अन्यथा रेड क्रसको लागि साइन-इन नाम, पासवर्ड वा अन्य प्रमाणीकरण प्रमाणिकरणहरूको पहुँच प्राप्त गर्न तपाईंको आफ्नो खाताको लागि तपाईंलाई प्रदान गरिएको भन्दा बाहेक।", "four": "रेडक्रस वा अन्य कुनै रेड क्रस वा रेड क्रिसेन्ट राष्ट्रिय सोसाइटीवा संगठनद्वारा राज्य वा सम्बद्धता, प्रायोजन वा समर्थन गर्न।", - "five": "बताउन वा संकेत दिनको लागि कि तपाईंले एपीआई, डाटा फिडहरू, घटना चेतावनीहरू र \/ वा तयारी, प्रतिक्रिया, र सन्देशहरू रिकभरीको स्वामित्व वा सृजना गर्नुभयो।", + "five": "बताउन वा संकेत दिनको लागि कि तपाईंले एपीआई, डाटा फिडहरू, घटना चेतावनीहरू र / वा तयारी, प्रतिक्रिया, र सन्देशहरू रिकभरीको स्वामित्व वा सृजना गर्नुभयो।", "six": "कुनै पनि भाइरस, हानिकारक सफ्टवेयर, ट्रोजन हर्स, वा विनाशकारी प्रकृति को कुनै सामग्री प्रसारण गर्न।" } }, - "reserve_rights": "रेड क्रसले परिवर्तनको अधिकार आरक्षित गर्दछ र \/ वा अब एपीआई र डाटा फिडहरू पूरै वा आंशिक रूपमा प्रदान गर्दछ, अस्थायी वा स्थायी रूपमा कुनै पनि समयमा पूर्वसूचना बिना। शंकाको रोकथामको लागि, यसमा केही पनि रेड क्रसलाई यसको एपीआई वा डाटा फिडहरू उपलब्ध गराउन बाध्य पार्दैन र तपाईं सहमत हुनुहुन्छ र स्वीकार गर्नुहुन्छ कि कुनै पनि पहुँच रेड क्रसको मात्रै र पूर्ण विवेकभित्र छ।", + "reserve_rights": "रेड क्रसले परिवर्तनको अधिकार आरक्षित गर्दछ र / वा अब एपीआई र डाटा फिडहरू पूरै वा आंशिक रूपमा प्रदान गर्दछ, अस्थायी वा स्थायी रूपमा कुनै पनि समयमा पूर्वसूचना बिना। शंकाको रोकथामको लागि, यसमा केही पनि रेड क्रसलाई यसको एपीआई वा डाटा फिडहरू उपलब्ध गराउन बाध्य पार्दैन र तपाईं सहमत हुनुहुन्छ र स्वीकार गर्नुहुन्छ कि कुनै पनि पहुँच रेड क्रसको मात्रै र पूर्ण विवेकभित्र छ।", "severability": { "body": "कुनै पनि सर्त वा एपीआई सर्तहरूको प्रावधानको अमान्यताले अन्य कुनै प्रावधानको वैधतालाई असर गर्दैन ।", "heading": "बाध्यकारिता र छुट:" }, "suspension": { - "body": "यदि यसले आफ्नो विवेक अनुसार तपाईं एपीआई सर्तमा उल्लेख गरिएको वा एपीआई वा डेटा फिड प्रयोग गरिरहनु भएको रूपमा एपीआई वा डाटा फिडको अनधिकृत प्रयोगमा,वा कुनै पनि त्यस्तो गतिविधिमा संलग्न हुनुहुन्छ जसले कुनै व्यक्ति वा रेड क्रस नेटवर्कको सुरक्षा र \/ वा सुरक्षालाई खतरामा \/ सम्झौता गर्दछ भन्ने ठान्छ भने रेड क्रसले तपाई‌को पहुँचलाई निलम्बन गर्ने वा समाप्त गर्ने अधिकार सुरक्षित राख्दछ ।", + "body": "यदि यसले आफ्नो विवेक अनुसार तपाईं एपीआई सर्तमा उल्लेख गरिएको वा एपीआई वा डेटा फिड प्रयोग गरिरहनु भएको रूपमा एपीआई वा डाटा फिडको अनधिकृत प्रयोगमा,वा कुनै पनि त्यस्तो गतिविधिमा संलग्न हुनुहुन्छ जसले कुनै व्यक्ति वा रेड क्रस नेटवर्कको सुरक्षा र / वा सुरक्षालाई खतरामा / सम्झौता गर्दछ भन्ने ठान्छ भने रेड क्रसले तपाई‌को पहुँचलाई निलम्बन गर्ने वा समाप्त गर्ने अधिकार सुरक्षित राख्दछ ।", "heading": "निलम्बन वा समाप्ति:" } }, diff --git a/resources/lang/pt.json b/resources/lang/pt.json index 792961c..49a1858 100644 --- a/resources/lang/pt.json +++ b/resources/lang/pt.json @@ -441,9 +441,9 @@ "immediate": "Imediata", "warning": "Aviso", "anticipated": "Antecipado", - "assess_and_plan":"Avaliar e Planejar", - "mitigate_risks":"Mitigar Risco", - "prepare_to_respond":"Preparar para responder", + "assess_and_plan": "Avaliar e Planejar", + "mitigate_risks": "Mitigar Risco", + "prepare_to_respond": "Preparar para responder", "recover": "Recuperar" }, "content": { @@ -526,7 +526,7 @@ "seasonalForecast_extra": "Uma previsão sazonal é uma declaração de previsão de um incidente desastroso. As ações são tomadas para avaliar potenciais riscos e planificar atividades para reduzir o risco e para proteger as habitações.", "watch": "Vigilância", "watch_help": "Preparar para responder", - "watch_extra": "É emitida a vigilância quando o risco de um incidente desastroso aumenta significativamente, mas a sua ocorrência, localização e\/ou momento ainda são incertos. É suposto dar tempo suficiente para ações de proteção e preparação para reagir.", + "watch_extra": "É emitida a vigilância quando o risco de um incidente desastroso aumenta significativamente, mas a sua ocorrência, localização e/ou momento ainda são incertos. É suposto dar tempo suficiente para ações de proteção e preparação para reagir.", "warning": "Aviso", "warning_help": "Preparar para responder", "warning_extra": "Um aviso é emitido quando um incidente desastroso está a ocorrer, está iminente ou tem uma grande probabilidade de ocorrer. Isso significa condições que são uma ameaça à vida ou propriedade. As pessoas na trajetória deste perigo precisam de tomar precauções.", @@ -558,7 +558,8 @@ "content_edit_title": "Edição de Conteúdo", "content_add_hazard_title": "Adicionar Desastre", "key_message_label": "Título da mensagem principal", - "supporting_message_label": "Mensagem de apoio" + "supporting_message_label": "Mensagem de apoio", + "mitigate_risk": "Mitigar Risco" }, "message_editor": { "title": "Editor de Atribuição", @@ -618,7 +619,7 @@ "bad_request_error_codes": { "30001": "Os cabeçalhos das colunas não correspondem ao modelo", "30002": "Falta o nome da atribuição, mensagem ou url", - "30003": "URL de atribuição inválido - por favor assegure-se de que o protocolo está presente, e.g. https: \/\/", + "30003": "URL de atribuição inválido - por favor assegure-se de que o protocolo está presente, e.g. https: //", "40001": "Código de país fornecido inválido", "40002": "A sociedade selecionada não corresponde à sociedade do ficheiro selecionado", "40003": "A data em que o ficheiro selecionado foi exportado foi deformada e a importação não pode ser concluída" @@ -689,7 +690,7 @@ }, "landing": { "strapline": "Serviço de base de dados de mensagens de segurança", - "strapline_part_2": "Mensagens Principais de Segurança da Cruz Vermelha Internacional \/ Crescente Vermelho", + "strapline_part_2": "Mensagens Principais de Segurança da Cruz Vermelha Internacional / Crescente Vermelho", "head_1": "Segurança da FICV", "head_2": "Base de dados de mensagens", "head_text_1": "Mensagens de segurança baseadas na sensibilização do público e na", @@ -841,10 +842,10 @@ "industries": { "media": "Meios de Comunicação", "emergency": "Gestão de Emergências", - "non_profit": "Sem fins lucrativos\/ONG", + "non_profit": "Sem fins lucrativos/ONG", "humanitarian": "Organização Humanitária", - "red_cross": "Cruz Vermelha\/Crescente Vermelho", - "education": "Educação\/Académica", + "red_cross": "Cruz Vermelha/Crescente Vermelho", + "education": "Educação/Académica", "gov": "Agência Governamental", "other": "Outros" }, @@ -859,9 +860,9 @@ "body": "As leis do Distrito de Colúmbia regerão todos os direitos e obrigações ao abrigo deste Acordo, sem dar efeito a quaisquer princípios de conflitos de leis.", "heading": "Lei Aplicável:" }, - "body": "O Utilizador é responsável por manter o segredo e a segurança da chave de registo que lhe foi fornecida pela Cruz Vermelha. É responsável por manter a compatibilidade com a API, tal como atualizado de tempos a tempos, a fim de continuar a receber os Data Feeds. A Cruz Vermelha pode lançar versões atualizadas da API e dos Data Feeds a seu exclusivo critério. As novas versões podem não ser compatíveis com implementações anteriores, e O Utilizador concorda em utilizar a versão atualizada mais recente dos Data Feeds em qualquer altura.\n\nO Utilizador concorda em não modificar, distribuir, descompilar, desmontar, ou fazer engenharia inversa de qualquer parte da API ou de qualquer software da Cruz Vermelha.\n\nO Utilizador não poderá utilizar a API ou Data Feeds de uma forma que exceda o volume razoável do pedido ou que constitua uma utilização excessiva ou abusiva, conforme determinado pela Cruz Vermelha ao seu exclusivo critério.\n\nO Utilizador não poderá utilizar a API ou Data Feeds de forma ilegal, enganosa, negligente, maliciosa, com intenção de causar danos, ou que prejudique a Cruz Vermelha, os seus fornecedores de serviços, os seus fornecedores de conteúdos, ou qualquer outra pessoa, conforme determinado pela Cruz Vermelha ao seu exclusivo critério.\n\nA Cruz Vermelha pode monitorizar a sua utilização da API e dos Data Feeds. O Utilizador não pode utilizar quaisquer meios técnicos para interferir com tal monitorização, e a Cruz Vermelha pode utilizar meios técnicos para ultrapassar qualquer interferência deste tipo.\n\nA utilização de Mensagens de Preparação, Resposta e Recuperação será apresentada apenas como atual ou atualizada à configuração de urgência então vigente do Alerta de Evento correlacionado, e o Utilizador deverá atualizar Mensagens individuais de Preparação, Resposta e Recuperação após qualquer atualização dos Data Feeds e\/ou Alertas de Evento correlacionados pela Cruz Vermelha.\n\nAs Mensagens de Preparação, Resposta e Recuperação Individuais que utiliza devem ser associadas apenas à região geográfica para a qual são emitidas. Se uma Mensagem de Preparação, Resposta e Recuperação incluir uma referência a uma fonte como a Cruz Vermelha Americana ou outra sociedade ou organização nacional da Cruz Vermelha ou do Crescente Vermelho (cada uma delas uma \"Referência de Fonte\"), o Utilizador deve incluir a Referência de Fonte associada a cada Mensagem de Preparação, Resposta e Recuperação no formulário fornecido nos Data Feeds. O Utilizador não deverá fazer mais uso de qualquer Referência de Fonte.\n\nO Utilizador não pode traduzir os Data Feeds, Alertas de Eventos e\/ou Mensagens de Preparação, Resposta e Recuperação para qualquer outra língua, fazer qualquer uso, edição ou revisão, ou alterar o significado dos Data Feeds, Alertas de Eventos e\/ou Mensagens de Preparação, Resposta e Recuperação.\n\nO Utilizador deve assegurar-se de que os Data Feeds permanecem na sua posse e\/ou controlo exclusivo.\n\nO Utilizador não pode permitir que Alertas de Eventos e Mensagens de Preparação, Resposta e Recuperação entregues a Utilizadores Finais incorporem qualquer publicidade ou patrocínio.\n\nO Utilizador não pode ficar com qualquer arquivo ou Data Feeds no todo ou em parte.", + "body": "O Utilizador é responsável por manter o segredo e a segurança da chave de registo que lhe foi fornecida pela Cruz Vermelha. É responsável por manter a compatibilidade com a API, tal como atualizado de tempos a tempos, a fim de continuar a receber os Data Feeds. A Cruz Vermelha pode lançar versões atualizadas da API e dos Data Feeds a seu exclusivo critério. As novas versões podem não ser compatíveis com implementações anteriores, e O Utilizador concorda em utilizar a versão atualizada mais recente dos Data Feeds em qualquer altura.\n\nO Utilizador concorda em não modificar, distribuir, descompilar, desmontar, ou fazer engenharia inversa de qualquer parte da API ou de qualquer software da Cruz Vermelha.\n\nO Utilizador não poderá utilizar a API ou Data Feeds de uma forma que exceda o volume razoável do pedido ou que constitua uma utilização excessiva ou abusiva, conforme determinado pela Cruz Vermelha ao seu exclusivo critério.\n\nO Utilizador não poderá utilizar a API ou Data Feeds de forma ilegal, enganosa, negligente, maliciosa, com intenção de causar danos, ou que prejudique a Cruz Vermelha, os seus fornecedores de serviços, os seus fornecedores de conteúdos, ou qualquer outra pessoa, conforme determinado pela Cruz Vermelha ao seu exclusivo critério.\n\nA Cruz Vermelha pode monitorizar a sua utilização da API e dos Data Feeds. O Utilizador não pode utilizar quaisquer meios técnicos para interferir com tal monitorização, e a Cruz Vermelha pode utilizar meios técnicos para ultrapassar qualquer interferência deste tipo.\n\nA utilização de Mensagens de Preparação, Resposta e Recuperação será apresentada apenas como atual ou atualizada à configuração de urgência então vigente do Alerta de Evento correlacionado, e o Utilizador deverá atualizar Mensagens individuais de Preparação, Resposta e Recuperação após qualquer atualização dos Data Feeds e/ou Alertas de Evento correlacionados pela Cruz Vermelha.\n\nAs Mensagens de Preparação, Resposta e Recuperação Individuais que utiliza devem ser associadas apenas à região geográfica para a qual são emitidas. Se uma Mensagem de Preparação, Resposta e Recuperação incluir uma referência a uma fonte como a Cruz Vermelha Americana ou outra sociedade ou organização nacional da Cruz Vermelha ou do Crescente Vermelho (cada uma delas uma \"Referência de Fonte\"), o Utilizador deve incluir a Referência de Fonte associada a cada Mensagem de Preparação, Resposta e Recuperação no formulário fornecido nos Data Feeds. O Utilizador não deverá fazer mais uso de qualquer Referência de Fonte.\n\nO Utilizador não pode traduzir os Data Feeds, Alertas de Eventos e/ou Mensagens de Preparação, Resposta e Recuperação para qualquer outra língua, fazer qualquer uso, edição ou revisão, ou alterar o significado dos Data Feeds, Alertas de Eventos e/ou Mensagens de Preparação, Resposta e Recuperação.\n\nO Utilizador deve assegurar-se de que os Data Feeds permanecem na sua posse e/ou controlo exclusivo.\n\nO Utilizador não pode permitir que Alertas de Eventos e Mensagens de Preparação, Resposta e Recuperação entregues a Utilizadores Finais incorporem qualquer publicidade ou patrocínio.\n\nO Utilizador não pode ficar com qualquer arquivo ou Data Feeds no todo ou em parte.", "contact": "Por favor contacte a Cruz Vermelha em {0} com quaisquer questões sobre a API.", - "disclaimer": "A API e os Data Feeds são fornecidos APENAS PARA FINS INFORMATIVOS E EDUCACIONAIS E numa base de \"no estado em que se encontram\" ou \"conforme disponíveis\". A Cruz Vermelha não faz representações ou garantias expressas ou implícitas de nenhum género. A Cruz Vermelha nega todas as garantias, expressas ou implícitas, incluindo mas não limitando-se a garantias de comercialização e de adequação para nenhum fim em particular. A Cruz Vermelha e os seus colaboradores, oficiais, governadores e agentes e licenciadores não serão responsáveis por nenhuma forma de dano resultante do uso da API, Data Feeds, Alertas de Eventos e\/ou Mensagens de Preparação, Resposta e Recuperação, incluindo mas não limitando-se a danos diretos, indiretos, incidentais, punitivos e consequentes.\n\nA Cruz Vermelha não garante a ordem, precisão, autenticidade ou a integralidade da API, Data Feeds, Alertas de Eventos e\/ou Mensagens de Preparação, Resposta e Recuperação e não será considerada responsável de nenhuma forma quanto ao Utilizador ou os seus Utilizadores Finais ou a terceiros, incluindo mas não limitando-se a quaisquer atrasos, imprecisões, erros ou omissões quanto à API, Data Feeds, Alertas de Eventos e\/ou Mensagens de Preparação, Resposta e Recuperação fornecidas a seguir.", + "disclaimer": "A API e os Data Feeds são fornecidos APENAS PARA FINS INFORMATIVOS E EDUCACIONAIS E numa base de \"no estado em que se encontram\" ou \"conforme disponíveis\". A Cruz Vermelha não faz representações ou garantias expressas ou implícitas de nenhum género. A Cruz Vermelha nega todas as garantias, expressas ou implícitas, incluindo mas não limitando-se a garantias de comercialização e de adequação para nenhum fim em particular. A Cruz Vermelha e os seus colaboradores, oficiais, governadores e agentes e licenciadores não serão responsáveis por nenhuma forma de dano resultante do uso da API, Data Feeds, Alertas de Eventos e/ou Mensagens de Preparação, Resposta e Recuperação, incluindo mas não limitando-se a danos diretos, indiretos, incidentais, punitivos e consequentes.\n\nA Cruz Vermelha não garante a ordem, precisão, autenticidade ou a integralidade da API, Data Feeds, Alertas de Eventos e/ou Mensagens de Preparação, Resposta e Recuperação e não será considerada responsável de nenhuma forma quanto ao Utilizador ou os seus Utilizadores Finais ou a terceiros, incluindo mas não limitando-se a quaisquer atrasos, imprecisões, erros ou omissões quanto à API, Data Feeds, Alertas de Eventos e/ou Mensagens de Preparação, Resposta e Recuperação fornecidas a seguir.", "entire_agreement": { "body": "Os Termos da API constituem o acordo completo e exclusivo entre a Cruz Vermelha e o Utilizador com respeito ao presente assunto e substitui todos os acordos orais ou escritos, comunicações ou contratos precedentes não incorporados aqui especificamente. A Cruz Vermelha reserva o direito de modificar ou revogar este acordo a qualquer momento.", "heading": "Contrato Integral:" @@ -869,7 +870,7 @@ "heading": "CONTRATO DE LICENCIAMENTO DE USUÁRIO FINAL DA API", "intro": "ACEITAR: ATRAVÉS DO USO DO SERVIÇO OU DA MARCAÇÃO DA CAIXA APRESENTADA, O USUÁRIO ESTÁ A CONCORDAR COM O QUE É ESTABELECIDO NESTE CONTRATO.\n\nA API é uma ferramenta que te permite (\"O Usuário\") recolher e usar data feeds disponibilizados pela Cruz Vermelha, incluindo um feed meteorológico de notificações de aviso e vigilância de eventos de desastre global (\"Alertas de Eventos\") e um feed de mensagens úteis e contextuais sobre como se preparar para desastres locais de acordo com o tipo e urgência do desastre (\"Mensagens de Preparação, Resposta e Recuperação\", juntamente aos Alertas de Eventos e os \"Data Feeds\"). As Mensagens de Preparação, Resposta e Recuperação têm como objetivo acompanhar os Alertas de Eventos e outras notificações de aviso e vigilância associadas a eventos de desastre na sua própria aplicação. O uso dos Data Feeds pelo Usuário é regulado pelos Termos da API.", "license_limitations": { - "body": "O Utilizador pode usar os Data Feeds apenas em associação com a sua aplicação sujeita aos Termos da API e desde que O Usuário mantenha a compatibilidade com a API, de acordo com as atualizações periódicas. É garantido ao Usuário um direito não-exclusivo, limitado e revogável para descarregar, usar, reproduzir e distribuir para usuários finais da sua própria aplicação (\"Usuários Finais\") Alertas de Eventos e Mensagens de Preparação, Resposta e Recuperação relevantes e contextuais em associação com a configuração de urgência de Alertas de Evento individuais dos Data Feeds, sujeito aos Termos da API. O Usuário pode apenas utilizar a API para usos não comerciais dos Data Feeds de acordo com os Termos da API. O Usuário não pode, a nenhum momento, utilizar a API para meios comerciais dos Data Feeds, Alertas de Eventos e\/ou Mensagens de Preparação, Resposta e Recuperação, incluindo mas não limitando-se a revenda, cobrar o seu acesso, cobrar para os redistribuir ou cobrar para criar trabalhos derivados com base neles. A Cruz Vermelha e os seus licenciadores preservam todos os títulos, propriedade, direitos e garantias e interesses da API, Mensagens de Preparação, Resposta e Recuperação, Alertas de Eventos, Data Feeds e Fontes de Referência (como definidas abaixo). Todos os direitos não concedidos expressamente estão reservados.", + "body": "O Utilizador pode usar os Data Feeds apenas em associação com a sua aplicação sujeita aos Termos da API e desde que O Usuário mantenha a compatibilidade com a API, de acordo com as atualizações periódicas. É garantido ao Usuário um direito não-exclusivo, limitado e revogável para descarregar, usar, reproduzir e distribuir para usuários finais da sua própria aplicação (\"Usuários Finais\") Alertas de Eventos e Mensagens de Preparação, Resposta e Recuperação relevantes e contextuais em associação com a configuração de urgência de Alertas de Evento individuais dos Data Feeds, sujeito aos Termos da API. O Usuário pode apenas utilizar a API para usos não comerciais dos Data Feeds de acordo com os Termos da API. O Usuário não pode, a nenhum momento, utilizar a API para meios comerciais dos Data Feeds, Alertas de Eventos e/ou Mensagens de Preparação, Resposta e Recuperação, incluindo mas não limitando-se a revenda, cobrar o seu acesso, cobrar para os redistribuir ou cobrar para criar trabalhos derivados com base neles. A Cruz Vermelha e os seus licenciadores preservam todos os títulos, propriedade, direitos e garantias e interesses da API, Mensagens de Preparação, Resposta e Recuperação, Alertas de Eventos, Data Feeds e Fontes de Referência (como definidas abaixo). Todos os direitos não concedidos expressamente estão reservados.", "heading": "Licença e Limitações:" }, "overview": { @@ -892,13 +893,13 @@ "six": "Transmitir quaisquer vírus, vermes, cavalos de Troia ou quaisquer itens de natureza destrutiva." } }, - "reserve_rights": "A Cruz Vermelha reserva o direito de alterar e\/ou parar de fornecer a API e os Data Feeds na sua totalidade ou em parte, provisoriamente ou permanentemente, a qualquer momento e sem aviso prévio. A fim de evitar incertezas, nada aqui presente obriga a Cruz Vermelha a tornar a API e Data Feeds disponíveis para O Usuário e O Usuário concorda e reconhece que qualquer acesso está ao critério exclusivo e absoluto da Cruz Vermelha.", + "reserve_rights": "A Cruz Vermelha reserva o direito de alterar e/ou parar de fornecer a API e os Data Feeds na sua totalidade ou em parte, provisoriamente ou permanentemente, a qualquer momento e sem aviso prévio. A fim de evitar incertezas, nada aqui presente obriga a Cruz Vermelha a tornar a API e Data Feeds disponíveis para O Usuário e O Usuário concorda e reconhece que qualquer acesso está ao critério exclusivo e absoluto da Cruz Vermelha.", "severability": { "body": "A invalidade ou ilegalidade de qualquer disposição deste documento não deverá afetar a validade de qualquer outra disposição.", "heading": "Disjunção e Renúncia:" }, "suspension": { - "body": "A Cruz Vermelha reserva o direito de suspender ou cancelar o acesso do Usuário se a Cruz Vermelha determinar, a seu exclusivo critério, que O Usuário está envolvido na utilização não autorizada da API ou do Data Feed como descrito nos Termos da API ou que O Usuário está a utilizar a API ou o Data Feed em qualquer atividade que ameaça\/põe em risco a segurança e\/ou proteção de qualquer pessoa ou das redes da Cruz Vermelha.", + "body": "A Cruz Vermelha reserva o direito de suspender ou cancelar o acesso do Usuário se a Cruz Vermelha determinar, a seu exclusivo critério, que O Usuário está envolvido na utilização não autorizada da API ou do Data Feed como descrito nos Termos da API ou que O Usuário está a utilizar a API ou o Data Feed em qualquer atividade que ameaça/põe em risco a segurança e/ou proteção de qualquer pessoa ou das redes da Cruz Vermelha.", "heading": "Suspensão e Cancelamento:" } }, @@ -958,7 +959,7 @@ "email_subject": "Requerer um novo tipo de desastre", "hazard_name": "Nome do desastre", "hazard_name_placeholder": "Introduza o nome do desastre", - "upload_icon": "Carregar\/Adicionar imagem", + "upload_icon": "Carregar/Adicionar imagem", "icon_requirements": "Imagens devem estar em formato .png e terem um tamanho abaixo de 30kb", "requestLink": "Contactar o CGPD para requerer um novo tipo de desastre", "success": "Tipo de desastre criado", diff --git a/resources/lang/ru.json b/resources/lang/ru.json index 7866f9e..2bdad49 100644 --- a/resources/lang/ru.json +++ b/resources/lang/ru.json @@ -441,9 +441,9 @@ "immediate": "Немедленно", "warning": "Предупреждение", "anticipated": "Ожидаемый", - "assess_and_plan":"Оценить и спланировать", - "mitigate_risks":"Смягчить риск", - "prepare_to_respond":"Подготовиться к реагированию", + "assess_and_plan": "Оценить и спланировать", + "mitigate_risks": "Смягчить риск", + "prepare_to_respond": "Подготовиться к реагированию", "recover": "Восстановиться" }, "content": { @@ -526,7 +526,7 @@ "seasonalForecast_extra": "Сезонный прогноз является утвердительным предсказанием опасного события. Принимаемые меры состоят из оценки потенциальных рисков и планировании действий по снижению рисков и защите семьи.", "watch": "Сигнал «Внимание!»", "watch_help": "Подготовьтесь к мерам реагирования", - "watch_extra": "Сигнал «Внимание!» передается когда риск опасного события значительно возрос, но его возникновение, место и \/ или время все еще не определены. Это дает достаточно времени для действий по защите и подготовке к реагированию.", + "watch_extra": "Сигнал «Внимание!» передается когда риск опасного события значительно возрос, но его возникновение, место и / или время все еще не определены. Это дает достаточно времени для действий по защите и подготовке к реагированию.", "warning": "Сигнал «Опасность!»", "warning_help": "Подготовьтесь к мерам реагирования", "warning_extra": "Сигнал «Опасность!» передается когда опасное событие происходит, является неизбежным, или имеет очень высокую вероятность возникновения. Это означает, что условия угрожают жизни или имуществу. Людям, находящимся в зоне действия данной опасности необходимо принимать защитные меры.", @@ -558,7 +558,8 @@ "content_edit_title": "Редактирование контента", "content_add_hazard_title": "Добавить опасность", "key_message_label": "Заголовок ключевого сообщения", - "supporting_message_label": "Вспомогательное сообщение" + "supporting_message_label": "Вспомогательное сообщение", + "mitigate_risk": "Смягчить риск" }, "message_editor": { "title": "Редактор атрибуции", @@ -618,7 +619,7 @@ "bad_request_error_codes": { "30001": "Заголовки столбцов не соответствуют шаблону", "30002": "Название атрибуции, сообщение или url отсутствуют", - "30003": "Недействительный url-адрес атрибуции - убедитесь, что прописан протокол, например https: \/\/", + "30003": "Недействительный url-адрес атрибуции - убедитесь, что прописан протокол, например https: //", "40001": "Недействительный код страны", "40002": "Выбранное общество не соответствует обществу для выбранного файла", "40003": "Дата экспорта выбранного файла неверна, и импорт не может быть завершен" @@ -689,7 +690,7 @@ }, "landing": { "strapline": "Служба базы данных сообщений по безопасности", - "strapline_part_2": "Основные сообщения Международного Красного Креста \/ Красного Полумесяца по безопасности", + "strapline_part_2": "Основные сообщения Международного Красного Креста / Красного Полумесяца по безопасности", "head_1": "Безопасность МФОККиКП", "head_2": "База данных сообщений", "head_text_1": "Сообщения о безопасности, основанные на принципах информирования общественности МФОККиКП и", @@ -785,7 +786,7 @@ }, "data_preview": { "heading": "Сообщения о безопасности", - "sub_heading": "Зарегистрируйтесь и просмотрите основные сообщения о действиях национальных обществ Красного Креста \/ Красного Полумесяца по всему миру" + "sub_heading": "Зарегистрируйтесь и просмотрите основные сообщения о действиях национальных обществ Красного Креста / Красного Полумесяца по всему миру" }, "footer": { "terms_conditions": "Положения и условия", @@ -841,10 +842,10 @@ "industries": { "media": "СМИ", "emergency": "Управление в чрезвычайных ситуациях", - "non_profit": "Некоммерческая \/ НГО", + "non_profit": "Некоммерческая / НГО", "humanitarian": "Гуманитарная организация", - "red_cross": "Красный крест\/ красный полумесяц", - "education": "Образование \/ Академия", + "red_cross": "Красный крест/ красный полумесяц", + "education": "Образование / Академия", "gov": "Федеральное агентство", "other": "Другие" }, @@ -859,9 +860,9 @@ "body": "Законы Округа Колумбия будут регулировать все положения и условия по настоящему Соглашению без применения каких-либо принципов коллизионного права.", "heading": "Применимое право:" }, - "body": "Вы несете ответственность за сохранность своего пароля и регистрационного ключа, предоставленного Красным Крестом. Вы несете ответственность за поддержание совместимости с API, который время от времени обновляется для дальнейшего принятия потоков данных. Красный Крест может выпускать обновленные версии API и потоков данных по своему усмотрению. Новые версии могут быть несовместимы с предыдущими, и вы соглашаетесь всегда использовать самую последнюю обновленную версию потоков данных.\n\nВы обязуетесь не модифицировать, не распространять, не декомпилировать, не демонтировать или не подвергать обратному проектированию любую часть API или иное программное обеспечение Красного Креста.\n\nВы не имеете права использовать API или каналы данных способом, который превышает разумный объем запросов или представляет собой чрезмерное или неправомерное использование по усмотрению Красного Креста.\n\nВы не имеете права использовать API или потоки данных незаконным, вводящим в заблуждение, небрежным, злонамеренным образом, с целью причинения вреда или ущерба Красному Кресту, его подрядчикам, поставщикам контента или любому другому лицу по усмотрению Красного Креста.\n\nКрасный Крест имеет право контролировать использование вами API и потоков данных. Вы не имеете права применять какие-либо технические средства, чтобы помешать такому мониторингу, и Красный Крест может использовать технические средства для преодоления любого такого вмешательства.\n\nСообщения в рамках подготовки, реагирования и восстановления должны быть актуальными или обновленными с учетом текущей настройки срочности оповещения о событии, и вы должны обновлять отдельные сообщения в рамках подготовки, реагирования и восстановления после каждого обновления потоков данных и\/или связанных оповещений о событиях Красного Креста.\n\nОтдельные сообщения в рамках подготовки, реагирования и восстановления должны быть привязаны к географическому региону, для которого они были созданы. Если сообщения в рамках подготовки, реагирования и восстановления содержат ссылку на источник, такой как Американский Красный Крест или другое национальное общество или организацию Красного Креста или Красного Полумесяца (далее по отдельности именуются «Ссылка на источник»), вы обязаны включать ссылку на источник, связанный с каждым сообщением в рамках подготовки, реагирования и восстановления в форме, указанной в потоках данных. Вы не имеете права иным образом использовать ссылки на источники.\n\nВы не имеете права переводить потоки данных, оповещения о событиях и\/или сообщения в рамках подготовки, реагирования и восстановления на любой другой язык, использовать, редактировать или исправлять, или изменять значение потока данных, оповещений о событиях и\/или сообщений в рамках подготовки, реагирования и восстановления.\n\nВы должны убедиться, что потоки данных остаются в вашем личном доступе и\/или под вашим контролем.\n\nВы не имеете права давать разрешение на включение рекламы и спонсорской информации в оповещения о событиях и сообщения в рамках подготовки, реагирования и восстановления, отправляемые конечным пользователям.\n\nВы не имеете права создавать архивы потоков данных, а также их части.", + "body": "Вы несете ответственность за сохранность своего пароля и регистрационного ключа, предоставленного Красным Крестом. Вы несете ответственность за поддержание совместимости с API, который время от времени обновляется для дальнейшего принятия потоков данных. Красный Крест может выпускать обновленные версии API и потоков данных по своему усмотрению. Новые версии могут быть несовместимы с предыдущими, и вы соглашаетесь всегда использовать самую последнюю обновленную версию потоков данных.\n\nВы обязуетесь не модифицировать, не распространять, не декомпилировать, не демонтировать или не подвергать обратному проектированию любую часть API или иное программное обеспечение Красного Креста.\n\nВы не имеете права использовать API или каналы данных способом, который превышает разумный объем запросов или представляет собой чрезмерное или неправомерное использование по усмотрению Красного Креста.\n\nВы не имеете права использовать API или потоки данных незаконным, вводящим в заблуждение, небрежным, злонамеренным образом, с целью причинения вреда или ущерба Красному Кресту, его подрядчикам, поставщикам контента или любому другому лицу по усмотрению Красного Креста.\n\nКрасный Крест имеет право контролировать использование вами API и потоков данных. Вы не имеете права применять какие-либо технические средства, чтобы помешать такому мониторингу, и Красный Крест может использовать технические средства для преодоления любого такого вмешательства.\n\nСообщения в рамках подготовки, реагирования и восстановления должны быть актуальными или обновленными с учетом текущей настройки срочности оповещения о событии, и вы должны обновлять отдельные сообщения в рамках подготовки, реагирования и восстановления после каждого обновления потоков данных и/или связанных оповещений о событиях Красного Креста.\n\nОтдельные сообщения в рамках подготовки, реагирования и восстановления должны быть привязаны к географическому региону, для которого они были созданы. Если сообщения в рамках подготовки, реагирования и восстановления содержат ссылку на источник, такой как Американский Красный Крест или другое национальное общество или организацию Красного Креста или Красного Полумесяца (далее по отдельности именуются «Ссылка на источник»), вы обязаны включать ссылку на источник, связанный с каждым сообщением в рамках подготовки, реагирования и восстановления в форме, указанной в потоках данных. Вы не имеете права иным образом использовать ссылки на источники.\n\nВы не имеете права переводить потоки данных, оповещения о событиях и/или сообщения в рамках подготовки, реагирования и восстановления на любой другой язык, использовать, редактировать или исправлять, или изменять значение потока данных, оповещений о событиях и/или сообщений в рамках подготовки, реагирования и восстановления.\n\nВы должны убедиться, что потоки данных остаются в вашем личном доступе и/или под вашим контролем.\n\nВы не имеете права давать разрешение на включение рекламы и спонсорской информации в оповещения о событиях и сообщения в рамках подготовки, реагирования и восстановления, отправляемые конечным пользователям.\n\nВы не имеете права создавать архивы потоков данных, а также их части.", "contact": "По всем вопросам, касающимся API, просим обращаться в Красный Крест: {0}.", - "disclaimer": "API и потоки данных предоставляются ТОЛЬКО ДЛЯ ИНФОРМАЦИОННЫХ И ОБРАЗОВАТЕЛЬНЫХ ЦЕЛЕЙ И на условиях «как есть» и «по факту». Красный Крест не делает никаких заявлений или гарантий любого рода, явных или подразумеваемых. Красный Крест отказывается от всех гарантий, явных или подразумеваемых, включая подразумеваемые гарантии товарной пригодности и соответствия определенной цели. Красный Крест и его сотрудники, должностные лица, управляющие, агенты и лицензиары не несут ответственности за ущерб любого рода, возникший в результате использования API, потоков данных, оповещений о событиях и\/или сообщений в рамках подготовки, реагирования и восстановления, включая прямые, косвенные, случайные, штрафные и косвенные убытки.\n\nКрасный Крест не гарантирует последовательность, точность, подлинность или полноту API, потока данных, оповещений о событиях и\/или сообщений о подготовке, реагировании и восстановления и не несет ответственности перед вами, вашими конечными пользователями или третьими лицами, включая любые задержки, неточности, ошибки или упущения в отношении API, потоков данных, оповещений о событиях и\/или сообщений в рамках подготовки, реагирования и восстановления, указанных в настоящем документе.", + "disclaimer": "API и потоки данных предоставляются ТОЛЬКО ДЛЯ ИНФОРМАЦИОННЫХ И ОБРАЗОВАТЕЛЬНЫХ ЦЕЛЕЙ И на условиях «как есть» и «по факту». Красный Крест не делает никаких заявлений или гарантий любого рода, явных или подразумеваемых. Красный Крест отказывается от всех гарантий, явных или подразумеваемых, включая подразумеваемые гарантии товарной пригодности и соответствия определенной цели. Красный Крест и его сотрудники, должностные лица, управляющие, агенты и лицензиары не несут ответственности за ущерб любого рода, возникший в результате использования API, потоков данных, оповещений о событиях и/или сообщений в рамках подготовки, реагирования и восстановления, включая прямые, косвенные, случайные, штрафные и косвенные убытки.\n\nКрасный Крест не гарантирует последовательность, точность, подлинность или полноту API, потока данных, оповещений о событиях и/или сообщений о подготовке, реагировании и восстановления и не несет ответственности перед вами, вашими конечными пользователями или третьими лицами, включая любые задержки, неточности, ошибки или упущения в отношении API, потоков данных, оповещений о событиях и/или сообщений в рамках подготовки, реагирования и восстановления, указанных в настоящем документе.", "entire_agreement": { "body": "Условия использования API представляют собой полное и исключительное соглашение между Красным Крестом и вами в отношении предмета настоящего Соглашения и заменяют собой все предыдущие устные или письменные договоренности, сообщения или соглашения, не включенные в настоящий документ. Красный Крест оставляет за собой право изменить или отозвать это соглашение в любое время.", "heading": "Исчерпывающий характер Соглашения:" @@ -869,7 +870,7 @@ "heading": "ЛИЦЕНЗИОННОЕ СОГЛАШЕНИЕ С КОНЕЧНЫМ ПОЛЬЗОВАТЕЛЕМ API", "intro": "СОГЛАСИЕ: ИСПОЛЬЗУЯ УСЛУГУ ИЛИ ПРОВЕРЯЯ ПРЕДОСТАВЛЕННЫЙ ЯЩИК, ПОЛЬЗОВАТЕЛЬ ОБЯЗУЕТСЯ СОБЛЮДАТЬ УСЛОВИЯ НАСТОЯЩЕГО СОГЛАШЕНИЯ.\n\nAPI - это инструмент, который позволяет вам (далее - «вы») получать и использовать потоки данных, предоставленные Красным Крестом, включая поток глобальных предупреждений о погоде и стихийных бедствиях, а также уведомления о наблюдениях (далее - «Оповещения о событиях») и поток действенных и контекстных сообщений о порядке подготовки к локальным угрозам с учетом вида опасности и срочности (далее - «Сообщения в рамках подготовки, реагирования и восстановления»; в совокупности с оповещениями о событиях - «Потоки данных»). Сообщения в рамках подготовки, реагирования и восстановления предназначены для дополнения Оповещений о событиях или других предупреждений и отслеживания уведомлений, связанных с погодой и стихийными бедствиями, в вашем собственном приложении. Использование Потоков данных регулируется Условиями использования API.", "license_limitations": { - "body": "Вы можете использовать Поток данных только в своем собственном приложении, руководствуясь Условиями использования API, а также при соблюдении своевременного обновления, чтобы обеспечить совместимость с API. Вам гарантируется неисключительное, ограниченное и подлежащее отзыву право загружать, использовать, воспроизводить и распространять среди конечных пользователей вашего собственного приложения (далее - «Конечные пользователи») Оповещения о событиях и соответствующие контексту Сообщения подготовки, реагирования и восстановления в сочетании с настройками срочности каждого Оповещения о событии в Потоке данных, согласно Условиям использования API. Вы можете использовать API только для содействия некоммерческому использованию Потоку данных в соответствии с Условиями использования API. Вы ни в коем случае не можете применять API для содействия коммерческому использованию Потоку данных, Оповещений о событиях и\/или Сообщений в рамках подготовки, реагирования и восстановления, включая, без ограничений, перепродажу, взимание платы за доступ к ним, взимание платы за повторное распространение или взимание платы за создание производных разработок на их основе. Организация Красный Крест и ее лицензиары сохраняют за собой права наименования и собственности, а также все права и интересы, связанные с API, а также с Сообщениями в рамках подготовки, реагирования и восстановления, Оповещениями о событиях, Потоками данных и Ссылками на источники (как определяется ниже) в рамках приложения. Все права, не предоставленные пользователям на основании настоящего документа, защищены.", + "body": "Вы можете использовать Поток данных только в своем собственном приложении, руководствуясь Условиями использования API, а также при соблюдении своевременного обновления, чтобы обеспечить совместимость с API. Вам гарантируется неисключительное, ограниченное и подлежащее отзыву право загружать, использовать, воспроизводить и распространять среди конечных пользователей вашего собственного приложения (далее - «Конечные пользователи») Оповещения о событиях и соответствующие контексту Сообщения подготовки, реагирования и восстановления в сочетании с настройками срочности каждого Оповещения о событии в Потоке данных, согласно Условиям использования API. Вы можете использовать API только для содействия некоммерческому использованию Потоку данных в соответствии с Условиями использования API. Вы ни в коем случае не можете применять API для содействия коммерческому использованию Потоку данных, Оповещений о событиях и/или Сообщений в рамках подготовки, реагирования и восстановления, включая, без ограничений, перепродажу, взимание платы за доступ к ним, взимание платы за повторное распространение или взимание платы за создание производных разработок на их основе. Организация Красный Крест и ее лицензиары сохраняют за собой права наименования и собственности, а также все права и интересы, связанные с API, а также с Сообщениями в рамках подготовки, реагирования и восстановления, Оповещениями о событиях, Потоками данных и Ссылками на источники (как определяется ниже) в рамках приложения. Все права, не предоставленные пользователям на основании настоящего документа, защищены.", "heading": "Лицензия и ограничения:" }, "overview": { @@ -888,11 +889,11 @@ "two": "Обход или изменение любых ключей или механизмов безопасности, используемых Красным Крестом или API, в том числе, без ограничений, любых технологий аутентификации.", "three": "Запрос, сбор, вымогание или получение любым другим способом доступа к зарегистрированным именам, паролям или другим учетным данным для входа в систему Красного Креста, кроме тех, что предоставляются вам для вашего собственного аккаунта.", "four": "Заявлять или подразумевать принадлежность, спонсорство или одобрение со стороны Красного Креста или любого другого национального общества или организации Красного Креста либо Красного Полумесяца.", - "five": "Заявлять или подразумевать, что вы являетесь владельцем или создателем API, Потока данных, Оповещений о событиях и\/или Сообщений в рамках подготовки, реагирования и восстановления.", + "five": "Заявлять или подразумевать, что вы являетесь владельцем или создателем API, Потока данных, Оповещений о событиях и/или Сообщений в рамках подготовки, реагирования и восстановления.", "six": "Передача любых вирусов, сетевых червей, троянских программ и любых других вредоносных элементов." } }, - "reserve_rights": "Красный Крест оставляет за собой право изменить и\/или перестать предоставлять доступ к API и Потоку данных полностью или частично, в любое время без уведомления. Во избежание сомнений, ничто, указанное здесь, не обязывает Красный Крест предоставлять вам доступ к API или Потоку данных, и вы согласны и осознаете, что любой доступ к данным услугам находится на единоличном и абсолютном усмотрении Красного Креста.", + "reserve_rights": "Красный Крест оставляет за собой право изменить и/или перестать предоставлять доступ к API и Потоку данных полностью или частично, в любое время без уведомления. Во избежание сомнений, ничто, указанное здесь, не обязывает Красный Крест предоставлять вам доступ к API или Потоку данных, и вы согласны и осознаете, что любой доступ к данным услугам находится на единоличном и абсолютном усмотрении Красного Креста.", "severability": { "body": "Недействительность любого из условий или положений в настоящем списке Условий использования API не нарушает действительности остальных положений.", "heading": "Автономность положений и отказ от прав:" diff --git a/resources/lang/rw.json b/resources/lang/rw.json index 00c81ac..c23a144 100644 --- a/resources/lang/rw.json +++ b/resources/lang/rw.json @@ -441,9 +441,9 @@ "immediate": "Ako kanya", "warning": "Iburira", "anticipated": "Byitezwe", - "assess_and_plan":"Gusesengura no Gushyira mu bikorwa gahunda", - "mitigate_risks":"Gukumira Ingaruka mbi", - "prepare_to_respond":"Itegure guhangana n'ibiza", + "assess_and_plan": "Gusesengura no Gushyira mu bikorwa gahunda", + "mitigate_risks": "Gukumira Ingaruka mbi", + "prepare_to_respond": "Itegure guhangana n'ibiza", "recover": "Gukira" }, "content": { @@ -558,7 +558,8 @@ "content_edit_title": "Guhindura Ibirimo", "content_add_hazard_title": "Ongeraho Ikiza", "key_message_label": "Ubutumwa bw'ingenzi", - "supporting_message_label": "Ubutumwa bushyigikira" + "supporting_message_label": "Ubutumwa bushyigikira", + "mitigate_risk": "Gabanya ibyago" }, "message_editor": { "title": "Umuhinduzi w'Ibitekerezo", @@ -618,7 +619,7 @@ "bad_request_error_codes": { "30001": "Imitwengaruka y'inkingi ntabwo ihura n'inyandikorugero", "30002": "Amazina bijyanye, ubutumwa cyangwa url ntibihari", - "30003": "Url bijyanye si yo; reba neza niba porotokore ihari, urug.: https:\/\/", + "30003": "Url bijyanye si yo; reba neza niba porotokore ihari, urug.: https://", "40001": "Hatanzwe kode y'igihugu itari yo", "40002": "Ishyirahamwe ryatoranyijwe ntabwo rihura n'ishyirahamwe rya dosiye yatoranyijwe", "40003": "Itariki dosiye yatoranyijwe yasohoreweho yanditse nabi kandi kuyizana ntibishobora kurangira" @@ -689,7 +690,7 @@ }, "landing": { "strapline": "Serivisi y'Ububiko bw'Ubutumwa bwo Kwirinda", - "strapline_part_2": "Ubutumwa bw'umutekano wa Global Red Cross \/ Red Crescent", + "strapline_part_2": "Ubutumwa bw'umutekano wa Global Red Cross / Red Crescent", "head_1": "IFRC Kwirinda", "head_2": "Ububiko bw'amakuru y'ubutumwa", "head_text_1": "Ubutumwa bwo kwirinda bushingiye ku IFRC Kumenyesha Abaturage no", @@ -744,7 +745,7 @@ "fake_alert_heading": "Imbuzi y'ubukonje bukabije", "fake_alert_description": "Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est.", "fake_alert_time": "HASHIZE ISAHA 1", - "fake_alert_time_exact": "05\/02\/18 saa 05:15 CT", + "fake_alert_time_exact": "05/02/18 saa 05:15 CT", "use_cases": { "heading": "Menya ibindi", "first_heading": "Uburyo bikora", @@ -785,7 +786,7 @@ }, "data_preview": { "heading": "Ubutumwa bwo Kwirinda", - "sub_heading": "Iyandikishe unarebe ubutumwa bw'amasosiyete ya Kuruwa Ruje\/Kuruwasa Ruje ku isi hose" + "sub_heading": "Iyandikishe unarebe ubutumwa bw'amasosiyete ya Kuruwa Ruje/Kuruwasa Ruje ku isi hose" }, "footer": { "terms_conditions": "Amategeko n'amabwiriza", @@ -841,10 +842,10 @@ "industries": { "media": "Itangazamakuru", "emergency": "Igenzurwa ry'ibiza", - "non_profit": "Umuryango udaharanira inyungu\/utegamiye kuri leta", + "non_profit": "Umuryango udaharanira inyungu/utegamiye kuri leta", "humanitarian": "Umuryango wita ku kiremwamuntu", - "red_cross": "Kuruwa Ruje\/Kuruwasa Ruje", - "education": "Uburezi\/Amashuli", + "red_cross": "Kuruwa Ruje/Kuruwasa Ruje", + "education": "Uburezi/Amashuli", "gov": "Ikigo cya Leta", "other": "Ibindi" }, @@ -869,7 +870,7 @@ "heading": "ISOZWA RY'AMASEZERANO K'URUHUSA RWO GUKORESHA API", "intro": "EMERA: MUGKORESHA IYI SERIVISE CYANGWA KUREBA MUGASANDUGU BAGUHAYE, UMUKORESHA YEMERA KUBA AFATANYE NAYA MASEZERANO.\n\nAPI ni igikoresho kigufasha ( Wowe) mukubona no gukoresha amakuru mashya ahari ya Kuruwa Ruje harimo namakuru y'ikirere n'ibiza bimenyeshwa no gukurikira amabwiriza (Amamenyesha y’Ibikorwa) amakuru y'ibikorwa by'ubutumwa bwanditse kuburyo bwo gutegura kubishobora gutera impanuka, ibyihutirwa ( Itegurwa, Isubizwa n’Igarurabutumwa, byose hamwe n'Amamenyesha y’Ibikorwa,n'Ikigega cy’amakuru). Itegurwa, Isubizwa n'Igarurabutumwa biteganyijwe guherekeza Amamenyesha y'Ibikorwa cyangwa indi mburira ndetse n'ibyitonderwa bigaragara bifitanye isano n'ibyerekeye ikirere n'ibiza muri porogaramu yawe y'ubusabe. Ikoreshwa ry'ikigega cy'amakuru yawe rigengwa n'amahame ya API.", "license_limitations": { - "body": "Ushobora gukoresha ikigega cy'amakuru gusa mu gihe bihuye n'impamvu y'ubusabe bwawe ku mahame ya API, bikanaguha guhama mu bijyanye na API nk'uko byakomeje kugenda bivugururwa. Wizejwe uburenganzira bwo gukura ibyo ushaka ku rubuga, nta guhezwa, kubuzwa cyangwa guhagarikwa, ukabikoresha, ukabibyaza umusaruro ndetse ukabisakaza ku bakoresha porogaramu yawe y'ubusabe (\"Abakoresha porogaramu ba nyuma\") ku Bikorwa by'Imenyesha bifitanye isano n'inyandiko zanditswe zitegura, zigasubiza zikanagarura ubutumwa, bigahura n'igenamiterere ryihuta y'ibikorwa bya muntu biburira bituruka mu makuru, bijyanye n'amahame ya API. Ushobora gukoresha API mu gufasha ku mpamvu zitari iz'ubucuruzi, bijyanye n'amahame ya API. Ntabwo wemerewe gukoresha API mu gufasha mu ikoreshwa ry'ikigega cy'amakuru mu buryo bwo gucuruza, Amamenyesha y'ibikorwa ndetse\/cyangwa Itegurwa, Isubizwa n'Igarurabutumwa, harimo nta rutangira, kongera kugurisha amakuru, gusaba ikiguzi abayakoresha n'abayakwirakwiza cyangwa guca ikiguzi kuri gahunda yo kuyabyaza umusaruro. Kuruwa Ruje n'abatanga uburenganzira babungabunga umutwe wose, ubu nyirubwite, uburenganzira n'inyungu muri no kuri API, Itegurwa, Isubizwa n'Igarurabutumwa, Amamenyesha y'ibikorwa, Ikigega cy'amakuru n'inkomoko y'amakuru (nkuko byasobanuwe hasi). Uburenganzira bwose butagaragajwe burashinganye.", + "body": "Ushobora gukoresha ikigega cy'amakuru gusa mu gihe bihuye n'impamvu y'ubusabe bwawe ku mahame ya API, bikanaguha guhama mu bijyanye na API nk'uko byakomeje kugenda bivugururwa. Wizejwe uburenganzira bwo gukura ibyo ushaka ku rubuga, nta guhezwa, kubuzwa cyangwa guhagarikwa, ukabikoresha, ukabibyaza umusaruro ndetse ukabisakaza ku bakoresha porogaramu yawe y'ubusabe (\"Abakoresha porogaramu ba nyuma\") ku Bikorwa by'Imenyesha bifitanye isano n'inyandiko zanditswe zitegura, zigasubiza zikanagarura ubutumwa, bigahura n'igenamiterere ryihuta y'ibikorwa bya muntu biburira bituruka mu makuru, bijyanye n'amahame ya API. Ushobora gukoresha API mu gufasha ku mpamvu zitari iz'ubucuruzi, bijyanye n'amahame ya API. Ntabwo wemerewe gukoresha API mu gufasha mu ikoreshwa ry'ikigega cy'amakuru mu buryo bwo gucuruza, Amamenyesha y'ibikorwa ndetse/cyangwa Itegurwa, Isubizwa n'Igarurabutumwa, harimo nta rutangira, kongera kugurisha amakuru, gusaba ikiguzi abayakoresha n'abayakwirakwiza cyangwa guca ikiguzi kuri gahunda yo kuyabyaza umusaruro. Kuruwa Ruje n'abatanga uburenganzira babungabunga umutwe wose, ubu nyirubwite, uburenganzira n'inyungu muri no kuri API, Itegurwa, Isubizwa n'Igarurabutumwa, Amamenyesha y'ibikorwa, Ikigega cy'amakuru n'inkomoko y'amakuru (nkuko byasobanuwe hasi). Uburenganzira bwose butagaragajwe burashinganye.", "heading": "Uruhushya n'imbibi:" }, "overview": { diff --git a/resources/lang/sw.json b/resources/lang/sw.json index c010d28..c6c1b63 100644 --- a/resources/lang/sw.json +++ b/resources/lang/sw.json @@ -441,9 +441,9 @@ "immediate": "Mara moja", "warning": "Onyo", "anticipated": "Inatarajiwa", - "assess_and_plan":"Tathmini na Panga", - "mitigate_risks":"Punguza Hatari", - "prepare_to_respond":"Jitayarishe Kujibu", + "assess_and_plan": "Tathmini na Panga", + "mitigate_risks": "Punguza Hatari", + "prepare_to_respond": "Jitayarishe Kujibu", "recover": "Pona" }, "content": { @@ -526,7 +526,7 @@ "seasonalForecast_extra": "Utabiri wa msimu ni taarifa ya utabiri wa tukio lenye hatari. Hatua zilizochukuliwa ni kutathmini uwezekano wa hatari na kupanga shughuli za kupunguza hatari na kulinda kaya.", "watch": "Tazama", "watch_help": "Jitayarishe kujibu", - "watch_extra": "Saa hutolewa wakati hatari ya tukio hatari imeongezeka sana, lakini kutokea kwake, eneo lake, na\/au muda bado haujajulikana. Imekusudiwa kutoa wakati wa kutosha kwa vitendo vya kinga na maandalizi ya kujibu.", + "watch_extra": "Saa hutolewa wakati hatari ya tukio hatari imeongezeka sana, lakini kutokea kwake, eneo lake, na/au muda bado haujajulikana. Imekusudiwa kutoa wakati wa kutosha kwa vitendo vya kinga na maandalizi ya kujibu.", "warning": "Onyo", "warning_help": "Jitayarishe kujibu", "warning_extra": "Onyo linatolewa wakati tukio hatari linatokea, linakaribia, au lina uwezekano mkubwa sana wa kutokea. Inamaanisha hali zinaleta tishio kwa maisha au mali. Watu walio katika njia ya hatari hii wanahitaji kuchukua hatua za kinga.", @@ -558,7 +558,8 @@ "content_edit_title": "Hariri Maudhui", "content_add_hazard_title": "Ongeza Hatari", "key_message_label": "Kichwa cha ujumbe muhimu", - "supporting_message_label": "Ujumbe wa usaidizi" + "supporting_message_label": "Ujumbe wa usaidizi", + "mitigate_risk": "Punguza Hatari" }, "message_editor": { "title": "Mhariri wa Sifa", @@ -618,7 +619,7 @@ "bad_request_error_codes": { "30001": "Vichwa vya safu wima havilingani na kiolezo", "30002": "Jina la sifa, ujumbe au url hazipo", - "30003": "Url isiyo halali - tafadhali hakikisha itifaki iko, kwa mfano https: \/\/", + "30003": "Url isiyo halali - tafadhali hakikisha itifaki iko, kwa mfano https: //", "40001": "Nambari batili ya nchi imetolewa", "40002": "Jamii iliyochaguliwa hailingani na jamii kwa faili iliyochaguliwa", "40003": "Tarehe ambayo faili iliyochaguliwa ilitolewa imekuwa na hitilafu na uingizaji hauwezi kukamilika" @@ -689,7 +690,7 @@ }, "landing": { "strapline": "Huduma ya Hifadhidata ya Ujumbe wa Usalama", - "strapline_part_2": "Ujumbe muhimu wa Usalama wa Msalaba Mwekundu \/ Hilali Nyekundu ya Kimataifa", + "strapline_part_2": "Ujumbe muhimu wa Usalama wa Msalaba Mwekundu / Hilali Nyekundu ya Kimataifa", "head_1": "Usalama wa IFRC", "head_2": "Hifadhidata ya Ujumbe", "head_text_1": "Ujumbe wa usalama unaotegemea Ufahamu wa Umma wa IFRC na", @@ -744,7 +745,7 @@ "fake_alert_heading": "Onyo la Baridi Kali Sana", "fake_alert_description": "Lakini hii inahitaji tofauti rahisi na nyepesi. Kwa wakati wa bure, wakati nguvu zetu.", "fake_alert_time": "SAA 1 ILIYOPITA", - "fake_alert_time_exact": "tarehe 05\/02\/18 saa 05:15 CT", + "fake_alert_time_exact": "tarehe 05/02/18 saa 05:15 CT", "use_cases": { "heading": "Jifunze Zaidi", "first_heading": "Jinsi Inavyofanya Kazi", @@ -785,7 +786,7 @@ }, "data_preview": { "heading": "Ujumbe wa Usalama", - "sub_heading": "Jisajili na uangalie ujumbe muhimu wa hatua kutoka kwa Mashirika ya Kitaiifa ya Msalaba Mwekundu \/ Hilali Nyekundu kote ulimwenguni" + "sub_heading": "Jisajili na uangalie ujumbe muhimu wa hatua kutoka kwa Mashirika ya Kitaiifa ya Msalaba Mwekundu / Hilali Nyekundu kote ulimwenguni" }, "footer": { "terms_conditions": "Sheria na Masharti", @@ -841,10 +842,10 @@ "industries": { "media": "Vyombo vya habari", "emergency": "Usimamizi wa Dharura", - "non_profit": "Lisilo la Faida \/ Shirika Lisilo la Kiserikali", + "non_profit": "Lisilo la Faida / Shirika Lisilo la Kiserikali", "humanitarian": "Shirika Kibinadamu", - "red_cross": "Msalaba Mwekundu \/ Hilali Nyekundu", - "education": "Elimu \/ Taaluma", + "red_cross": "Msalaba Mwekundu / Hilali Nyekundu", + "education": "Elimu / Taaluma", "gov": "Wakala wa Serikali", "other": "Nyingine" }, @@ -859,9 +860,9 @@ "body": "Sheria za Wilaya ya Columbia zitasimamia haki zote na majukumu chini ya Mkataba huu, bila kutekeleza kanuni zozote za mgongano wa sheria.", "heading": "Sheria Inayotumika:" }, - "body": "Una jukumu la kudumisha usiri na usalama wa ufunguo wa usajili uliotolewa na Shirika la Msalaba Mwekundu kwako. Unawajibika kudumisha uwiiano na API, kama inavyosasishwa mara kwa mara, ili kuendelea kupokea Milisho ya Data. Shirika la Msalaba Mwekundu linaweza kutoa toleo zilizosasishwa za API na Milisho ya Data kwa hiari yake. Matoleo mapya yanaweza yasioane na utekelezaji uliopita, na Unakubali kutumia toleo la hivi karibuni la Milisho ya Data wakati wote.\n\nUnakubali kutobadilisha, kusambaza, kutenganisha, au kubadilisha kihandisi sehemu yoyote ya API au programu yoyote ya Shirika la Msalaba Mwekundu.\n\nUsitumie API au Milisho ya Data kwa njia ambayo inazidi kiwango cha ombi kinachofaa au inatumiwa kupindukia au matumizi mabaya, kama ilivyoamuliwa na Shirika la Msalaba Mwekundu kwa hiari yake pekee.\n\nUsitumie API au Milisho ya Data kwa njia isiyo halali, inayopotosha, ya kupuuza, yenye nia mbaya, inayokusudia kusababisha madhara, au inayodhuru Msalaba Mwekundu, watoa huduma wake, watoa huduma wake, au mtu mwingine yeyote, kama ilivyoamuliwa na Shirika la Msalaba Mwekundu kwa hiari yake pekee.\n\nShirila la Msalaba Mwekundu linaweza kufuatilia matumizi yako ya API na Milisho ya Data. Unaweza usitumie njia yoyote ya kiufundi kuingiliana na ufuatiliaji kama huo, na Msalaba Mwekundu inaweza kutumia njia za kiufundi kushinda uingiliaji wowote kama huo.\n\nMatumizi ya utayari, Jibu, na Rudisha Ujumbe itawasilishwa tu kama yalivyo sasa au iliyosasishwa kwa mpangilio wa dharura wa wakati huo wa Tahadhari ya Tukio inayohusiana, na utasasisha binafsi Kutayarisha, Kujibu, na jumbe za kurudi juu ya sasisho lolote la Milisho ya Data na\/au Tahadhari zinazohusiana za Tukio la Msalaba Mwekundu.\n\nUtayari binafsi, Jibu na Ujumbe wa Nafuu Unaotumia utahusishwa tu na eneo la kijiografia ambalo limetolewa. Ikiwa Jumbe za Utayari, Jibu, na Nafuu zinajumuisha marejeleo kwa chanzo kama vile Shirika la Msalaba Mwekundu la Marekani au shirika lingine la kitaifa la Msalaba Mwekundu au Hilali Nyekundu (kila moja likiwa na \"Marejeleo ya Chanzo\"), Utajumuisha Marejeleo ya Chanzo yanayohusishwa na kila Jumbe wa Utayari, Jibu, na Nafuu katika fomu iliyotolewa kwenye Milisho ya Data. Hutatumia tena Marejeleo ya Chanzo chochote.\n\nUnaweza usitafsiri Milisho ya Data, Tahadhari za Tukio, na\/au Jumbe za Utayari, Jibu, na Nafuu zilizorudi katika lugha nyingine yoyote, kufanya matumizi yoyote, uhariri au marekebisho, au kubadilisha maana ya Milisho ya Data, Tahadhari za Tukio na\/au Jumbe za Utayari, Jibu, na Nafuu.\n\nLazima uhakikishe kuwa Malisho ya Takwimu, yanabaki katika milki yako pekee na\/au udhibiti.\n\nUnaweza usiruhusu Tahadhari za Tukio na Andaa, Jibu, na jumbe za kurudi uliowasilishwa kwa Watumiaji wa Mwisho kuingiza matangazo yoyote au udhamini.\n\nUnaweza usifanye kumbukumbu yoyote ya Milisho ya Takwimu nzima au kwa sehemu.", + "body": "Una jukumu la kudumisha usiri na usalama wa ufunguo wa usajili uliotolewa na Shirika la Msalaba Mwekundu kwako. Unawajibika kudumisha uwiiano na API, kama inavyosasishwa mara kwa mara, ili kuendelea kupokea Milisho ya Data. Shirika la Msalaba Mwekundu linaweza kutoa toleo zilizosasishwa za API na Milisho ya Data kwa hiari yake. Matoleo mapya yanaweza yasioane na utekelezaji uliopita, na Unakubali kutumia toleo la hivi karibuni la Milisho ya Data wakati wote.\n\nUnakubali kutobadilisha, kusambaza, kutenganisha, au kubadilisha kihandisi sehemu yoyote ya API au programu yoyote ya Shirika la Msalaba Mwekundu.\n\nUsitumie API au Milisho ya Data kwa njia ambayo inazidi kiwango cha ombi kinachofaa au inatumiwa kupindukia au matumizi mabaya, kama ilivyoamuliwa na Shirika la Msalaba Mwekundu kwa hiari yake pekee.\n\nUsitumie API au Milisho ya Data kwa njia isiyo halali, inayopotosha, ya kupuuza, yenye nia mbaya, inayokusudia kusababisha madhara, au inayodhuru Msalaba Mwekundu, watoa huduma wake, watoa huduma wake, au mtu mwingine yeyote, kama ilivyoamuliwa na Shirika la Msalaba Mwekundu kwa hiari yake pekee.\n\nShirila la Msalaba Mwekundu linaweza kufuatilia matumizi yako ya API na Milisho ya Data. Unaweza usitumie njia yoyote ya kiufundi kuingiliana na ufuatiliaji kama huo, na Msalaba Mwekundu inaweza kutumia njia za kiufundi kushinda uingiliaji wowote kama huo.\n\nMatumizi ya utayari, Jibu, na Rudisha Ujumbe itawasilishwa tu kama yalivyo sasa au iliyosasishwa kwa mpangilio wa dharura wa wakati huo wa Tahadhari ya Tukio inayohusiana, na utasasisha binafsi Kutayarisha, Kujibu, na jumbe za kurudi juu ya sasisho lolote la Milisho ya Data na/au Tahadhari zinazohusiana za Tukio la Msalaba Mwekundu.\n\nUtayari binafsi, Jibu na Ujumbe wa Nafuu Unaotumia utahusishwa tu na eneo la kijiografia ambalo limetolewa. Ikiwa Jumbe za Utayari, Jibu, na Nafuu zinajumuisha marejeleo kwa chanzo kama vile Shirika la Msalaba Mwekundu la Marekani au shirika lingine la kitaifa la Msalaba Mwekundu au Hilali Nyekundu (kila moja likiwa na \"Marejeleo ya Chanzo\"), Utajumuisha Marejeleo ya Chanzo yanayohusishwa na kila Jumbe wa Utayari, Jibu, na Nafuu katika fomu iliyotolewa kwenye Milisho ya Data. Hutatumia tena Marejeleo ya Chanzo chochote.\n\nUnaweza usitafsiri Milisho ya Data, Tahadhari za Tukio, na/au Jumbe za Utayari, Jibu, na Nafuu zilizorudi katika lugha nyingine yoyote, kufanya matumizi yoyote, uhariri au marekebisho, au kubadilisha maana ya Milisho ya Data, Tahadhari za Tukio na/au Jumbe za Utayari, Jibu, na Nafuu.\n\nLazima uhakikishe kuwa Malisho ya Takwimu, yanabaki katika milki yako pekee na/au udhibiti.\n\nUnaweza usiruhusu Tahadhari za Tukio na Andaa, Jibu, na jumbe za kurudi uliowasilishwa kwa Watumiaji wa Mwisho kuingiza matangazo yoyote au udhamini.\n\nUnaweza usifanye kumbukumbu yoyote ya Milisho ya Takwimu nzima au kwa sehemu.", "contact": "Tafadhali wasiliana na Shirika la Msalaba Mwekundu kwa {0} kwa maswali yoyote kuhusu API.", - "disclaimer": "API na Malisho ya Data hutolewa KWA MADHUMUNI YA HABARI NA ELIMU PEKEE, NA kwa msingi wa 'kama ilivyo' na 'kama inapatikana'. Shirika la Msalaba Mwekundu halifanyi uwakilishi au dhamana ya aina yoyote, iliyoelezwa au iliyomaanishwa. Shirika la Msalaba Mwekundu linakataa dhamana zote, zilizoelezwa au kumaanishwa, zikiwemo na lakini haziishii kwa dhamana za kumaanishwa za uuzaji na ubora kwa kusudi fulani. Shirika la Msalaba Mwekundu na wafanyakazi wake, maafisa, magavana na mawakala na watoa leseni hawatawajibika kwa uharibifu wa aina yoyote unaotokana na matumizi ya API, Mlisho wa Data, Tahadhari za Tukio, na\/au jumbe za Utayari, Jibu, na Nafuu ukiwemo lakini usioishia kwa madhara ya moja kwa moja, yasiyo ya moja kwa moja, ya bahati mbaya, ya adhabu na ya matokeo.\n\nShirika la Msalaba Mwekundu halihakiki mfuatano, usahihi, ukweli au ukamilifu wa API, Mlisho ya Data, Tahadhari ya Tukio na\/au Kuandaa, Kujibu, na Jumbe za nafuu na hautawajibika kwa njia yoyote kwako au kwa Watumiaji wako wa mwisho au kwa mtu yeyote, ikiwemo bila kikomo, kwa ucheleweshaji wowote, kukosa usahihi, makosa au upungufu, kwa API husika, Mlisho wa Data, Tahadhari ya Tukio na \/ au Andaa, Jibu, na jumbe za nafuu zilizotolewa hapa chini.", + "disclaimer": "API na Malisho ya Data hutolewa KWA MADHUMUNI YA HABARI NA ELIMU PEKEE, NA kwa msingi wa 'kama ilivyo' na 'kama inapatikana'. Shirika la Msalaba Mwekundu halifanyi uwakilishi au dhamana ya aina yoyote, iliyoelezwa au iliyomaanishwa. Shirika la Msalaba Mwekundu linakataa dhamana zote, zilizoelezwa au kumaanishwa, zikiwemo na lakini haziishii kwa dhamana za kumaanishwa za uuzaji na ubora kwa kusudi fulani. Shirika la Msalaba Mwekundu na wafanyakazi wake, maafisa, magavana na mawakala na watoa leseni hawatawajibika kwa uharibifu wa aina yoyote unaotokana na matumizi ya API, Mlisho wa Data, Tahadhari za Tukio, na/au jumbe za Utayari, Jibu, na Nafuu ukiwemo lakini usioishia kwa madhara ya moja kwa moja, yasiyo ya moja kwa moja, ya bahati mbaya, ya adhabu na ya matokeo.\n\nShirika la Msalaba Mwekundu halihakiki mfuatano, usahihi, ukweli au ukamilifu wa API, Mlisho ya Data, Tahadhari ya Tukio na/au Kuandaa, Kujibu, na Jumbe za nafuu na hautawajibika kwa njia yoyote kwako au kwa Watumiaji wako wa mwisho au kwa mtu yeyote, ikiwemo bila kikomo, kwa ucheleweshaji wowote, kukosa usahihi, makosa au upungufu, kwa API husika, Mlisho wa Data, Tahadhari ya Tukio na / au Andaa, Jibu, na jumbe za nafuu zilizotolewa hapa chini.", "entire_agreement": { "body": "Masharti ya API yanajumuisha makubaliano kamili na ya kipekee kati ya Shirika la Msalaba Mwekundu na Wewe kwa kuzingatia mada hii na inachukua nafasi ya uelewa wa awali wa maongezi au maandishi, mawasiliano, au makubaliano ambayo hayajaingizwa hapa. Shirika la Msalaba Mwekundu lina haki ya kurekebisha au kubatilisha mkataba huu wakati wowote.", "heading": "Mkataba Mzima:" @@ -869,7 +870,7 @@ "heading": "MKATABA WA UTOAJI LESENI KWA MTUMIAJI WA MWISHO WA API", "intro": "KUBALI: KWA KUTUMIA HUDUMA AU KUWEKA ALAMA YA TIKI KWENYE KISANDUKU, MTUMIAJI ANAKUBALI KUFUNGWA NA MKATABA HUU.\n\nAPI ni zana inayokuruhusu (\"Wewe\") kupata na kutumia milisho ya data iliyotolewa na Shirika la Msalaba Mwekundu ikiwemo mlisho wa hali ya hewa ya ulimwengu na onyo la tukio la maafa na arifa za kutazama (\"Tahadhari za Tukio\") na mlisho wa hatua zinazoweza kutekelezwa ujumbe juu ya jinsi ya kujiandaa kwa hatari za mitaa kwa aina ya hatari na dharura (\"Jumbe za Utayari, Jibu, na Nafuu\", na kwa pamoja na Tahadhari za Tukio, \"Milisho ya Data\"). Jumbe za Utayari, Jibu, na Nafuu zimekusudiwa kuandamana na Tahadhari za Tukio au onyo lingine na matangazo ya kutazama yanayohusiana na tukio la hali ya hewa na maafa katika programu yako mwenyewe. Matumizi yako ya Milisho ya Data yanasimamiwa na Masharti ya API.", "license_limitations": { - "body": "Unaweza kutumia Milisho ya Data tu kwa kushirikiana na programu yako mwenyewe kulingana na Masharti ya API, na kama Unadumisha utangamano na API, kama inavyosasishwa mara kwa mara. Umepewa haki isiyo ya kipekee, iliyo na kikomo na inayoweza kukataliwa ya kupakua, kutumia, kuzalisha na kusambaza kwa watumiaji wa mwisho wa programu yako mwenyewe (\"Watumiaji wa Mwisho\") Tahadhari za Tukio na yaliyomo kumuktadhisha Jumbe za Utayari, Kujibu, na Nafuu kushirikiana na upangaji wa dharura wa Arifa za Tukio za kibinafsi kutoka kwa Milisho ya Data, kulingana na Masharti ya API. Unaweza tu kutumia API kuwezesha matumizi yasiyo ya kibiashara ya Milisho ya Data kulingana na Masharti ya API. Kwa tukio lolote huenda usitumie API kuwezesha matumizi ya kibiashara ya Milisho ya Data, Tahadhari za Tukio na \/ au Jumbe za Utayari, Jibu, na Nafuu, ikiwemo bila kikomo, kuziuza tena, kutoza kuzifikia, kutoza kuzisambaza tena, au kutoza kuunda kazi zinazotokana na msingi wao. Shirika la msalaba mwekundu na watoa leseni zake wanadumisha jina, umiliki, haki na maslahi yote kwa API, Jumbe za Utayari, Jibu, na Nafuu, Tahadhari za Tukio, Mlisho wa Data na Marejeleo ya Chanzo (kama ilivyoelezwa hapa chini) ndani yake. Haki zote ambazo hazijatolewa kwa kuelezwa zimehifadhiwa.", + "body": "Unaweza kutumia Milisho ya Data tu kwa kushirikiana na programu yako mwenyewe kulingana na Masharti ya API, na kama Unadumisha utangamano na API, kama inavyosasishwa mara kwa mara. Umepewa haki isiyo ya kipekee, iliyo na kikomo na inayoweza kukataliwa ya kupakua, kutumia, kuzalisha na kusambaza kwa watumiaji wa mwisho wa programu yako mwenyewe (\"Watumiaji wa Mwisho\") Tahadhari za Tukio na yaliyomo kumuktadhisha Jumbe za Utayari, Kujibu, na Nafuu kushirikiana na upangaji wa dharura wa Arifa za Tukio za kibinafsi kutoka kwa Milisho ya Data, kulingana na Masharti ya API. Unaweza tu kutumia API kuwezesha matumizi yasiyo ya kibiashara ya Milisho ya Data kulingana na Masharti ya API. Kwa tukio lolote huenda usitumie API kuwezesha matumizi ya kibiashara ya Milisho ya Data, Tahadhari za Tukio na / au Jumbe za Utayari, Jibu, na Nafuu, ikiwemo bila kikomo, kuziuza tena, kutoza kuzifikia, kutoza kuzisambaza tena, au kutoza kuunda kazi zinazotokana na msingi wao. Shirika la msalaba mwekundu na watoa leseni zake wanadumisha jina, umiliki, haki na maslahi yote kwa API, Jumbe za Utayari, Jibu, na Nafuu, Tahadhari za Tukio, Mlisho wa Data na Marejeleo ya Chanzo (kama ilivyoelezwa hapa chini) ndani yake. Haki zote ambazo hazijatolewa kwa kuelezwa zimehifadhiwa.", "heading": "Leseni na Vikwazo:" }, "overview": { @@ -888,17 +889,17 @@ "two": "Kukwepa au kurekebisha funguo zozote au njia za usalama zilizotumiwa na Shirika la Msalaba Mwekundu au API, ikiwemo bila kikomo teknolojia zozote za uthibitishaji.", "three": "Kuomba, kukusanya, kutafuta au vinginevyo kupata ufikiaji wa majina ya kuingia, nywila au hati zingine za uthibitishaji wa Msalaba Mwekundu isipokuwa ile uliyopewa kwa akaunti yako mwenyewe.", "four": "Kusema au kumaanisha ushirika, udhamini au kuidhinishwa na Shirika la Msalaba Mwekundu au asasi au shirika la kitaifa lingine lolote la Msalaba Mwekundu au Hilali Nyekundu.", - "five": "Kusema au kumaanisha kuwa Unamiliki au umeunda API, Milisho ya Data, Tahadhari za Tukio na\/au Jumbe za Utayari, Jibu, na Nafuu.", + "five": "Kusema au kumaanisha kuwa Unamiliki au umeunda API, Milisho ya Data, Tahadhari za Tukio na/au Jumbe za Utayari, Jibu, na Nafuu.", "six": "Kusambaza virusi vyovyote, kasoro ya minyoo, farasi wa Trojan, au vitu vyovyote vya asili ya uharibifu." } }, - "reserve_rights": "Shirika la Msalaba Mwekundu lina haki ya kubadilisha na\/au kuacha kutoa API na Milisho ya Data nzima au sehemu, iwe kwa muda au kwa kudumu, wakati wowote bila taarifa ya awali. Kwa kuepusha mashaka, hakuna kitu hapa kinacholazimisha Shirika la Msalaba Mwekundu kufanya API yake au Milisho ya Data ipatikane kwako, na Unakubali na kukiri kuwa ufikiaji wowote upo ndani ya hiari pekee na kamili ya Shirika la Msalaba Mwekundu.", + "reserve_rights": "Shirika la Msalaba Mwekundu lina haki ya kubadilisha na/au kuacha kutoa API na Milisho ya Data nzima au sehemu, iwe kwa muda au kwa kudumu, wakati wowote bila taarifa ya awali. Kwa kuepusha mashaka, hakuna kitu hapa kinacholazimisha Shirika la Msalaba Mwekundu kufanya API yake au Milisho ya Data ipatikane kwako, na Unakubali na kukiri kuwa ufikiaji wowote upo ndani ya hiari pekee na kamili ya Shirika la Msalaba Mwekundu.", "severability": { "body": "Ubatili wa muda wowote au utoaji wa Masharti ya API hautaathiri uhalali wa kifungu kingine chochote.", "heading": "Utengamano na Msamaha:" }, "suspension": { - "body": "Shirika la Msalaba Mwekundu lina haki ya kusimamisha au kusitisha ufikiaji wako ikiwa litaona, kwa hiari yake pekee, kwamba Unahusika na matumizi yasiyoruhusiwa ya API au Milisho ya Data kama ilivyoainishwa katika Masharti ya API au kwamba unatumia API au Milisho ya Data katika shughuli yoyote inayotishia \/kuhatarisha usalama na\/au usalama wa mtu yeyote au mitandao ya Msalaba Mwekundu.", + "body": "Shirika la Msalaba Mwekundu lina haki ya kusimamisha au kusitisha ufikiaji wako ikiwa litaona, kwa hiari yake pekee, kwamba Unahusika na matumizi yasiyoruhusiwa ya API au Milisho ya Data kama ilivyoainishwa katika Masharti ya API au kwamba unatumia API au Milisho ya Data katika shughuli yoyote inayotishia /kuhatarisha usalama na/au usalama wa mtu yeyote au mitandao ya Msalaba Mwekundu.", "heading": "Kusimamishwa au Kukomeshwa:" } }, diff --git a/resources/lang/th.json b/resources/lang/th.json index 56f09d5..d0bf1d3 100644 --- a/resources/lang/th.json +++ b/resources/lang/th.json @@ -441,9 +441,9 @@ "immediate": "ทันที", "warning": "คำเตือน", "anticipated": "คาดการณ์", - "assess_and_plan":"ประเมินและวางแผน", - "mitigate_risks":"ลดความเสี่ยง", - "prepare_to_respond":"เตรียมพร้อมตอบสนอง", + "assess_and_plan": "ประเมินและวางแผน", + "mitigate_risks": "ลดความเสี่ยง", + "prepare_to_respond": "เตรียมพร้อมตอบสนอง", "recover": "ฟื้นฟู" }, "content": { @@ -526,7 +526,7 @@ "seasonalForecast_extra": "การพยากรณ์ฤดูกาลเป็นรายงานการทำนายเหตุการณ์อันตราย มีดำเนินการเพื่อประเมินความเสี่ยงที่เป็นไปได้และวางแผนกิจกรรมเพื่อลดความเสี่ยงและปกป้องเคหะสถาน", "watch": "ดู", "watch_help": "เตรียมการตอบสนอง", - "watch_extra": "ออกการดูเมื่อความเสี่ยงของเหตุการณ์อันตรายได้เพิ่มขึ้นอย่างสำคัญ แต่การเกิดเหตุการณ์ สถานที่ตั้ง และ\/หรือเวลา ยังคงไม่แน่นอน ซึ่งมีวัถุประสงค์เพื่อให้เวลาเพียงพอในการปกป้องและเตรียมการตอบสนอง", + "watch_extra": "ออกการดูเมื่อความเสี่ยงของเหตุการณ์อันตรายได้เพิ่มขึ้นอย่างสำคัญ แต่การเกิดเหตุการณ์ สถานที่ตั้ง และ/หรือเวลา ยังคงไม่แน่นอน ซึ่งมีวัถุประสงค์เพื่อให้เวลาเพียงพอในการปกป้องและเตรียมการตอบสนอง", "warning": "คำเตือน", "warning_help": "เตรียมการตอบสนอง", "warning_extra": "ออกการแจ้งเตือนเมื่อเกิดเหตุการณ์อันตรายที่ใกล้เข้ามา หรือการเกิดเหตุการณ์อันตรายมีความเป็นไปได้สูง ซึ่งหมายถึงสภาวะที่แสดงถึงอันตรายต่อชีวิตหรือทรัพย์สิน คนที่อยู่ในเส้นทางอันตรายที่จำเป็นเพื่อใช้มาตรการป้องกัน", @@ -558,7 +558,8 @@ "content_edit_title": "แก้ไขเนื้อหา", "content_add_hazard_title": "เพิ่มอันตราย", "key_message_label": "ชื่อข้อความสำคัญ", - "supporting_message_label": "ข้อความสนับสนุน" + "supporting_message_label": "ข้อความสนับสนุน", + "mitigate_risk": "ลดความเสี่ยง" }, "message_editor": { "title": "ตัวแก้ไขการให้เครดิต", @@ -618,7 +619,7 @@ "bad_request_error_codes": { "30001": "หัวข้อคอลัมน์ไม่ตรงกับแม่แบบ", "30002": "ไม่มีชื่อการระบุแหล่งที่มา ข้อความหรือ ulr", - "30003": "url การระบุแหล่งที่มาไม่ถูกต้อง - โปรดตรวจสอบว่าโพรโตคอลเป็นปัจจุบัน เช่น https:\/\/", + "30003": "url การระบุแหล่งที่มาไม่ถูกต้อง - โปรดตรวจสอบว่าโพรโตคอลเป็นปัจจุบัน เช่น https://", "40001": "รหัสประเทศที่ให้ไว้ไม่ถูกต้อง", "40002": "ชุมชนที่เลือกไม่ตรงกับชุมชนสำหรับไฟล์ที่เลือก", "40003": "การนำออกวันที่ของไฟล์ที่เลือกผิดรูปแบบและการนำเข้าไม่สำเร็จ" @@ -689,7 +690,7 @@ }, "landing": { "strapline": "บริการฐานข้อมูลข้อความความปลอดภัย", - "strapline_part_2": "ข้อความเพื่อความปลอดภัยที่สำคัญของสภากาชาด \/ สภาเสี้ยววงเดือนแดงทั่วโลก", + "strapline_part_2": "ข้อความเพื่อความปลอดภัยที่สำคัญของสภากาชาด / สภาเสี้ยววงเดือนแดงทั่วโลก", "head_1": "IFRC ความปลอดภัย", "head_2": "ฐานข้อมูลข้อความ", "head_text_1": "ข้อความความปลอดภัยตามทรัพยากรการสร้างความตระหนักรู้และการศึกษา", @@ -744,7 +745,7 @@ "fake_alert_heading": "การแจ้งเตือนสภาวะอากาศเย็นจัด", "fake_alert_description": "Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est.", "fake_alert_time": "1 ชั่วโมงที่แล้ว", - "fake_alert_time_exact": "05\/02\/18 เวลา 05:15 CT", + "fake_alert_time_exact": "05/02/18 เวลา 05:15 CT", "use_cases": { "heading": "ข้อมูลเพิ่มเติม", "first_heading": "วิธีการทำงาน", @@ -785,7 +786,7 @@ }, "data_preview": { "heading": "ข้อความความปลอดภัย", - "sub_heading": "ลงทะเบียนและดูข้อความสำคัญในการปฎิบัติจากชุมชนสภากาชาด \/ สภาเสี้ยววงเดือนแดงทั่วโลก" + "sub_heading": "ลงทะเบียนและดูข้อความสำคัญในการปฎิบัติจากชุมชนสภากาชาด / สภาเสี้ยววงเดือนแดงทั่วโลก" }, "footer": { "terms_conditions": "ข้อกำหนดและเงื่อนไข", @@ -859,9 +860,9 @@ "body": "สิทธิและข้อผูกมัดภายใต้ข้อตกลงนี้ล้วนอยู่ในกรอบกฎหมายของเขตโคลัมเบีย โดยที่ไม่มีผลต่อหลักการการขัดกันของกฎหมาย", "heading": "กฎหมายที่บังคับที่ใช้ได้" }, - "body": "คุณมีหน้าที่รับผิดชอบในการรักษาความลับและความปลอดภัยของรหัสการลงทะเบียนที่กาชาดมอบให้คุณ คุณมีหน้าที่รับผิดชอบในการรักษาความสอดคล้องของข้อมูลกับ API ซึ่งจะถูกอัพเดตอยู่เรื่อยๆ เพื่อที่จะรับ Data Feeds ต่อไป กาชาดอาจเปิดเผย API และ Data Feeds เวอร์ชั่นที่อัพเดตแล้ว ตามที่กาชาดเห็นว่าเหมาะสม Data Feeds เวอร์ชั่นใหม่อาจไม่สอดรับกับนโยบายที่ใช้อยู่เดิม และคุณได้ยินยอมที่จะใช้ Data Feeds เวอร์ชั่นอัพเดตล่าสุดตลอดเวลา\n\nคุณยืนยันที่จะไม่แก้ไข แจกจ่าย แยก ถอดชิ้นส่วน หรือใช้วิศวกรรมย้อนกลับกับส่วนหนึ่งส่วนใดของ API หรือซอฟต์แวร์ใดๆ ของกาชาด\n\nคุณไม่อาจใช้ API หรือ Data Feeds ในรูปแบบที่เกินเลยจากขอบเขตที่สมเหตุที่สมผล หรือนำมาใช้อย่างไม่ถูกต้อง ทั้งนี้เป็นไปตามที่กาชาดกำหนด\n\nคุณไม่อาจใช้ API หรือ Data Feeds โดยผิดกฎหมาย ใช้ล่อลวงผู้อื่น ใช้อย่างไม่ระมัดระวัง และใช้โดยมีวัตถุประสงค์ที่เป็นภัย หรือสร้างความเสียหายต่อกาชาด ผู้ให้บริการกาชาด หรือบุคคลอื่นใด ทั้งนี้เป็นไปตามขอบข่ายที่กาชาดกำหนด\n\nกาชาดอาจตรวจสอบการใช้ API และ Data Feeds ของคุณ คุณไม่สามารถใช้เครื่องมือทางเทคโนโลยีใดๆ เพื่อแทรกแซงการตรวจสอบดังกล่าว กาชาดเองอาจใช้เครื่องมือทางเทคโนโลยีเพื่อระงับการแทรกแซงนั้น\n\nการใช้ Prepare, Respond, and Recover Messages ต้องเป็นปัจจุบันและอัพเดตตามที่ระบุไว้ใน Event Alert ที่เกี่ยวข้อง ณ ขณะนั้น และคุณต้องอัพเดต Prepare, Respond, และ Recover Messages ให้สอดคล้องกับการอัพเดต Data Feeds และ\/หรือ Event Alerts ที่เกี่ยวข้องโดยกาชาด\n\nPrepare, Respond, and Recover Messages แต่ละส่วนที่คุณใช้ต้องเกี่ยวข้องเขตพื้นที่ทางภูมิศาสตร์ที่ข้อมูลส่วนนั้นระบุมาเท่านั้น หาก Prepare, Respond, and Recover Messages มีการอ้างถึงแหล่งข้อมูลเช่น กาชาดอเมริกัน หรือองค์กรหรือสมาคมระดับชาติทางกาชาดหรือเสี้ยววงเดือนแดง โดยที่แต่ละส่วนนับถือแหล่งอ้างอิงหนึ่งๆ คุณต้องระบุแหล่งอ้างอิงที่เกี่ยวข้องกับ Prepare, Respond, and Recover Messages แต่ละแหล่งตามรูปแบบที่กำหนดไว้ใน Data Feeds คุณไม่สามารถใช้แหล่งอ้างอิง (Source Reference) เพื่อวัตถุประสงค์อื่น\n\nคุณไม่อาจแปล Data Feeds, Event Alerts และ\/หรือ Prepare, Respond, and Recover Messages เป็นภาษาอื่นใด อีกทั้งยังไม่สามารถใช้ ดัดแปลง หรือเปลี่ยนแปลงความหมายของ Data Feeds Event, Alerts และ\/หรือ Prepare, Respond, and Recover Messages\n\nคุณต้องทำให้แน่ใจว่า Data Feeds อยู่ในครอบครองหรือการควบคุมของคุณแต่ผู้เดียว\n\nคุณไม่อาจอนุญาตให้ส่ง Prepare, Respond, and Recover Messages ไปยังผู้ใช้ขั้นปลายโดยหวังผลทางการโฆษณาหรือการสนับสนุน\n\nคุณไม่อาจจัดเก็บ Data Feeds ไม่ว่าจะเป็นบางส่วนหรือทั้งหมด", + "body": "คุณมีหน้าที่รับผิดชอบในการรักษาความลับและความปลอดภัยของรหัสการลงทะเบียนที่กาชาดมอบให้คุณ คุณมีหน้าที่รับผิดชอบในการรักษาความสอดคล้องของข้อมูลกับ API ซึ่งจะถูกอัพเดตอยู่เรื่อยๆ เพื่อที่จะรับ Data Feeds ต่อไป กาชาดอาจเปิดเผย API และ Data Feeds เวอร์ชั่นที่อัพเดตแล้ว ตามที่กาชาดเห็นว่าเหมาะสม Data Feeds เวอร์ชั่นใหม่อาจไม่สอดรับกับนโยบายที่ใช้อยู่เดิม และคุณได้ยินยอมที่จะใช้ Data Feeds เวอร์ชั่นอัพเดตล่าสุดตลอดเวลา\n\nคุณยืนยันที่จะไม่แก้ไข แจกจ่าย แยก ถอดชิ้นส่วน หรือใช้วิศวกรรมย้อนกลับกับส่วนหนึ่งส่วนใดของ API หรือซอฟต์แวร์ใดๆ ของกาชาด\n\nคุณไม่อาจใช้ API หรือ Data Feeds ในรูปแบบที่เกินเลยจากขอบเขตที่สมเหตุที่สมผล หรือนำมาใช้อย่างไม่ถูกต้อง ทั้งนี้เป็นไปตามที่กาชาดกำหนด\n\nคุณไม่อาจใช้ API หรือ Data Feeds โดยผิดกฎหมาย ใช้ล่อลวงผู้อื่น ใช้อย่างไม่ระมัดระวัง และใช้โดยมีวัตถุประสงค์ที่เป็นภัย หรือสร้างความเสียหายต่อกาชาด ผู้ให้บริการกาชาด หรือบุคคลอื่นใด ทั้งนี้เป็นไปตามขอบข่ายที่กาชาดกำหนด\n\nกาชาดอาจตรวจสอบการใช้ API และ Data Feeds ของคุณ คุณไม่สามารถใช้เครื่องมือทางเทคโนโลยีใดๆ เพื่อแทรกแซงการตรวจสอบดังกล่าว กาชาดเองอาจใช้เครื่องมือทางเทคโนโลยีเพื่อระงับการแทรกแซงนั้น\n\nการใช้ Prepare, Respond, and Recover Messages ต้องเป็นปัจจุบันและอัพเดตตามที่ระบุไว้ใน Event Alert ที่เกี่ยวข้อง ณ ขณะนั้น และคุณต้องอัพเดต Prepare, Respond, และ Recover Messages ให้สอดคล้องกับการอัพเดต Data Feeds และ/หรือ Event Alerts ที่เกี่ยวข้องโดยกาชาด\n\nPrepare, Respond, and Recover Messages แต่ละส่วนที่คุณใช้ต้องเกี่ยวข้องเขตพื้นที่ทางภูมิศาสตร์ที่ข้อมูลส่วนนั้นระบุมาเท่านั้น หาก Prepare, Respond, and Recover Messages มีการอ้างถึงแหล่งข้อมูลเช่น กาชาดอเมริกัน หรือองค์กรหรือสมาคมระดับชาติทางกาชาดหรือเสี้ยววงเดือนแดง โดยที่แต่ละส่วนนับถือแหล่งอ้างอิงหนึ่งๆ คุณต้องระบุแหล่งอ้างอิงที่เกี่ยวข้องกับ Prepare, Respond, and Recover Messages แต่ละแหล่งตามรูปแบบที่กำหนดไว้ใน Data Feeds คุณไม่สามารถใช้แหล่งอ้างอิง (Source Reference) เพื่อวัตถุประสงค์อื่น\n\nคุณไม่อาจแปล Data Feeds, Event Alerts และ/หรือ Prepare, Respond, and Recover Messages เป็นภาษาอื่นใด อีกทั้งยังไม่สามารถใช้ ดัดแปลง หรือเปลี่ยนแปลงความหมายของ Data Feeds Event, Alerts และ/หรือ Prepare, Respond, and Recover Messages\n\nคุณต้องทำให้แน่ใจว่า Data Feeds อยู่ในครอบครองหรือการควบคุมของคุณแต่ผู้เดียว\n\nคุณไม่อาจอนุญาตให้ส่ง Prepare, Respond, and Recover Messages ไปยังผู้ใช้ขั้นปลายโดยหวังผลทางการโฆษณาหรือการสนับสนุน\n\nคุณไม่อาจจัดเก็บ Data Feeds ไม่ว่าจะเป็นบางส่วนหรือทั้งหมด", "contact": "หากคุณมีข้อสงสัยประการใดเกี่ยวกับ API โปรดติดต่อกาชาดที่ {0}", - "disclaimer": "API และ Data Feeds มีเพื่อวัตถุประสงค์การแจ้งข้อมูลและเพื่อการศึกษาเท่านั้น และเป็นไปตามสภาพจริงและตามสภาพที่มีอยู่เท่านั้น กาชาดไม่เป็นตัวแทนหรือให้การรับประกันในรูปแบบใดๆ ไม่ว่าโดยตรงหรือโดยนัย กาชาดขอสงวนสิทธิ์การรับประกันใดๆ ไม่ว่าจะโดยตรงหรือโดยนัย ซึ่งรวมถึงแต่ไม่จำกัดเฉพาะการรับประกันโดยนัยเกี่ยวกับสภาพสินค้าและการใช้งานเพื่อวัตถุประสงค์เฉพาะ กาชาดและลูกจ้าง พนักงาน ผู้ปกครองและตัวเอง และผู้ให้ลิขสิทธิ์จะไม่รับผิดชอบความเสียหายใดๆ ซึ่งเกิดจากการใช้ API, Data Feeds, Event Alerts และ\/หรือ Prepare, Respond, and Recover Messages ซึ่งรวมถึงแต่ไม่จำกัดเฉพาะความเสียหายที่ตามมาทางตรง ทางอ้อม โดยอุบัติเหตุ หรือโทษทัณฑ์\n\nกาชาดไม่รับประกันลำดับ ความแม่นยำ และความถูกต้องหรือความสมบูรณ์ของ API, Data Feed, Event Alert และ\/หรือ Prepare, Respond, and Recover Messages และไม่รับผิดชอบความล่าช้า ความคลาดเคลื่อน หรือข้อบกพร่องใดๆ ใน API, Data Feed, Event Alert และ\/หรือ Prepare, Respond, and Recover Messages ที่แสดงไว้ข้างต้น โดยรวมถึงแต่ไม่จำกัดเฉพาะคุณ ผู้ใช้ปลายทางของคุณ หรือบุคคลที่สาม", + "disclaimer": "API และ Data Feeds มีเพื่อวัตถุประสงค์การแจ้งข้อมูลและเพื่อการศึกษาเท่านั้น และเป็นไปตามสภาพจริงและตามสภาพที่มีอยู่เท่านั้น กาชาดไม่เป็นตัวแทนหรือให้การรับประกันในรูปแบบใดๆ ไม่ว่าโดยตรงหรือโดยนัย กาชาดขอสงวนสิทธิ์การรับประกันใดๆ ไม่ว่าจะโดยตรงหรือโดยนัย ซึ่งรวมถึงแต่ไม่จำกัดเฉพาะการรับประกันโดยนัยเกี่ยวกับสภาพสินค้าและการใช้งานเพื่อวัตถุประสงค์เฉพาะ กาชาดและลูกจ้าง พนักงาน ผู้ปกครองและตัวเอง และผู้ให้ลิขสิทธิ์จะไม่รับผิดชอบความเสียหายใดๆ ซึ่งเกิดจากการใช้ API, Data Feeds, Event Alerts และ/หรือ Prepare, Respond, and Recover Messages ซึ่งรวมถึงแต่ไม่จำกัดเฉพาะความเสียหายที่ตามมาทางตรง ทางอ้อม โดยอุบัติเหตุ หรือโทษทัณฑ์\n\nกาชาดไม่รับประกันลำดับ ความแม่นยำ และความถูกต้องหรือความสมบูรณ์ของ API, Data Feed, Event Alert และ/หรือ Prepare, Respond, and Recover Messages และไม่รับผิดชอบความล่าช้า ความคลาดเคลื่อน หรือข้อบกพร่องใดๆ ใน API, Data Feed, Event Alert และ/หรือ Prepare, Respond, and Recover Messages ที่แสดงไว้ข้างต้น โดยรวมถึงแต่ไม่จำกัดเฉพาะคุณ ผู้ใช้ปลายทางของคุณ หรือบุคคลที่สาม", "entire_agreement": { "body": "ข้อกำหนด API นี้ประกอบด้วยสัญญาที่สมบูรณ์ระหว่างกาชาดกับคุณ และให้ใช้แทนข้อตกลงทั้งหมดระหว่างคู่สัญญาที่จัดทำขึ้นก่อนหน้านี้ ไม่ว่าจะเป็นข้อตกลงทางวาจาหรือลายลักษณ์อักษร การพูดคุย หรือสัญญาใดๆ ที่ไม่รวมอยู่ในข้อกำหนดนี้ กาชาดขอสงวนสิทธิ์ในการแก้ไขหรือเพิกถอนข้อตกลงนี้เมื่อใดก็ได้", "heading": "ข้อตกลงที่สมบูรณ์" @@ -869,7 +870,7 @@ "heading": "ข้อตกลงลิขสิทธิ์ API สำหรับผู้ใช้ขั้นปลาย", "intro": "ข้อตกลง เมื่อใช้บริการหรือทำเครื่องหมายในช่อง ผู้ใช้ยอมรับข้อผูกมัดตามสัญญาฉบับนี้\n\nAPI คือเครื่องมือที่ช่วยให้คุณ (\"คุณ\") เรียกคืนและใช้ฟีดข้อมูลที่กาชาดมอบให้ ซึ่งหมายรวมฟีดเกี่ยวกับสภาพอากาศของโลก การแจ้งเตือนภัยพิบัติและการประกาศแจ้งเตือน (\"Event Alerts\") และฟีดข้อความที่เป็นรูปธรรมเกี่ยวกับการเตรียมพร้อมรับมือภัยพิบัติท้องถิ่นโดยจำแนกตามประเภทของภัยพิบัติและความฉุกเฉิน (\"Prepare, Respond, and Recover Messages”, และยังรวมถึง Event Alerts, “ Data Feeds”) ข้อความการเตรียมความพร้อม การตอบโต้ และการฟื้นฟูมีเจตนาให้ใช้ร่วมกับการแจ้งเตือนอุบัติการณ์หรือคำเตือนอื่นๆ และจับตาดูประกาศแจ้งเตือนเกี่ยวกับเรื่องสภาพอากาศและเหตุการณ์ภัยพิบัติในแอปพลิเคชันของคุณ โดยมีการกำกับดูแลการใช้ฟีดข้อมูลของคุณภายใต้ข้อกำหนด API", "license_limitations": { - "body": "คุณอาจใช้ฟีดข้อมูลร่วมกับแอปพลิเคชันของคุณเองได้ตามข้อกำหนด API เท่านั้นและให้คุณรักษาความเข้ากันได้กับ API ตามที่มีการปรับปรุงเป็นครั้งคราว คุณได้รับสิทธิ์ในการดาวน์โหลด ใช้งาน ทำซ้ำและแจกจ่ายแอปพลิเคชันของตัวคุณเองให้กับผู้ใช้ปลายทาง (“ ผู้ใช้”) ได้ในแบบไม่ผูกขาด จำกัดและสามารถเพิกถอนได้ การแจ้งเตือนอุบัติการณ์และข้อความการเตรียมความพร้อม การตอบโต้และการฟื้นฟูตามบริบทที่เกี่ยวข้องร่วมกับการตั้งค่าความเร่งด่วนในการแจ้งเตือนอุบัติการณ์แต่ละรายการจากฟีดข้อมูลภายใต้ข้อกำหนด API คุณอาจใช้ API เพื่ออำนวยสะดวกในการใช้ฟีดข้อมูลที่มิใช่ในเชิงพาณิชย์ตามข้อกำหนด API เท่านั้น คุณไม่อาจใช้ API เพื่ออำนวยความสะดวกในการใช้ฟีดข้อมูล การแจ้งเตือนอุบัติการณ์ และ\/หรือ ข้อความการเตรียมความพร้อม การตอบโต้ และการฟื้นฟูได้ในทุกกรณี รวมถึงแต่ไม่จำกัดเพียง การจำหน่ายต่อ การเรียกเก็บเงินเพื่อการเข้าใช้บริการ การเรียกเก็บเงินเพื่อการจำหน่ายจ่ายแจก หรือการเรียกเก็บเงินเพื่อสร้างผลงานลอกเลียนแบบตามผลงานเหล่านั้น สภากาชาดและผู้ให้อนุญาตคงรักษาชื่อเสียง กรรมสิทธิ์ สิทธิ์และผลประโยชน์ในและต่อ API ข้อความการเตรียมความพร้อม การตอบโต้ และการฟื้นฟู การแจ้งเตือนอุบัติการณ์ ฟีดข้อมูลและแหล่งอ้างอิงที่มา (ตามที่ระบุไว้ต่อไปนี้) ในที่นี้ ขอสงวนสิทธิ์ทั้งปวงที่ไม่ได้รับอนุญาตไว้อย่างชัดแจ้ง", + "body": "คุณอาจใช้ฟีดข้อมูลร่วมกับแอปพลิเคชันของคุณเองได้ตามข้อกำหนด API เท่านั้นและให้คุณรักษาความเข้ากันได้กับ API ตามที่มีการปรับปรุงเป็นครั้งคราว คุณได้รับสิทธิ์ในการดาวน์โหลด ใช้งาน ทำซ้ำและแจกจ่ายแอปพลิเคชันของตัวคุณเองให้กับผู้ใช้ปลายทาง (“ ผู้ใช้”) ได้ในแบบไม่ผูกขาด จำกัดและสามารถเพิกถอนได้ การแจ้งเตือนอุบัติการณ์และข้อความการเตรียมความพร้อม การตอบโต้และการฟื้นฟูตามบริบทที่เกี่ยวข้องร่วมกับการตั้งค่าความเร่งด่วนในการแจ้งเตือนอุบัติการณ์แต่ละรายการจากฟีดข้อมูลภายใต้ข้อกำหนด API คุณอาจใช้ API เพื่ออำนวยสะดวกในการใช้ฟีดข้อมูลที่มิใช่ในเชิงพาณิชย์ตามข้อกำหนด API เท่านั้น คุณไม่อาจใช้ API เพื่ออำนวยความสะดวกในการใช้ฟีดข้อมูล การแจ้งเตือนอุบัติการณ์ และ/หรือ ข้อความการเตรียมความพร้อม การตอบโต้ และการฟื้นฟูได้ในทุกกรณี รวมถึงแต่ไม่จำกัดเพียง การจำหน่ายต่อ การเรียกเก็บเงินเพื่อการเข้าใช้บริการ การเรียกเก็บเงินเพื่อการจำหน่ายจ่ายแจก หรือการเรียกเก็บเงินเพื่อสร้างผลงานลอกเลียนแบบตามผลงานเหล่านั้น สภากาชาดและผู้ให้อนุญาตคงรักษาชื่อเสียง กรรมสิทธิ์ สิทธิ์และผลประโยชน์ในและต่อ API ข้อความการเตรียมความพร้อม การตอบโต้ และการฟื้นฟู การแจ้งเตือนอุบัติการณ์ ฟีดข้อมูลและแหล่งอ้างอิงที่มา (ตามที่ระบุไว้ต่อไปนี้) ในที่นี้ ขอสงวนสิทธิ์ทั้งปวงที่ไม่ได้รับอนุญาตไว้อย่างชัดแจ้ง", "heading": "ผู้ให้อนุญาตและข้อจำกัด" }, "overview": { @@ -888,17 +889,17 @@ "two": "เพื่อหลีกเลี่ยงหรือแก้ไขคีย์หรือกลไกการรักษาความปลอดภัยใดๆ ที่ใช้โดยสภากาชาดหรือ API รวมถึงแต่ไม่จำกัดเพียงเทคโนโลยีการตรวจสอบสิทธิ์ใดๆ", "three": "เพื่อร้องขอ เก็บรวบรวม หรือขอรับสิทธิ์เข้าถึงชื่อ รหัสผ่าน หรือข้อมูลรับรองสิทธิ์เพื่อยืนยันตัวตนอื่นๆ ในการลงชื่อเข้าใช้สำหรับสภากาชาดนอกเหนือจากสิ่งที่คุณได้รับให้กับบัญชีของคุณเอง", "four": "เพื่อระบุหรือบอกเป็นนัยถึงความเกี่ยวข้อง การสนับสนุนหรือการรับรองโดยสภากาชาดหรือและสภาเสี้ยววงเดือนแดงอื่นๆ", - "five": "เพื่อระบุหรือบอกเป็นนัยว่าคุณเป็นเจ้าของหรือสร้าง API ฟีดข้อมูล การแจ้งเตือนอุบัติการณ์และ\/หรือการเตรียมความพร้อม การโต้ตอบ และการฟื้นฟู", + "five": "เพื่อระบุหรือบอกเป็นนัยว่าคุณเป็นเจ้าของหรือสร้าง API ฟีดข้อมูล การแจ้งเตือนอุบัติการณ์และ/หรือการเตรียมความพร้อม การโต้ตอบ และการฟื้นฟู", "six": "เพื่อส่งไวรัส ความบกพร่องจากเวิร์ม ม้าโทรจัน หรือสิ่งใดก็ตามที่มีลักษณะทำลายล้าง" } }, - "reserve_rights": "สภากาชาดขอสงวนสิทธิ์ในการเปลี่ยนแปลงและ\/หรือจัดเตรียม API และฟีดข้อมูลให้ทั้งหมดหรือบางส่วนอีกต่อไปไม่ว่าจะเป็นการชั่วคราวหรือถาวรเมื่อใดก็ตามโดยไม่ต้องแจ้งให้ทราบล่วงหน้า เพื่อการหลีกเลี่ยงข้อสงสัย ไม่มีสิ่งใดในที่นี้บังคับให้สภากาชาดต้องทำให้ API หรือฟีดข้อมูลพร้อมใช้งานสำหรับคุณ และคุณยินยอมและรับทราบว่าการเข้าถึงใดๆ จะอยู่ภายใต้ดุลยพินิจของสภากาชาดแต่เพียงผู้เดียว", + "reserve_rights": "สภากาชาดขอสงวนสิทธิ์ในการเปลี่ยนแปลงและ/หรือจัดเตรียม API และฟีดข้อมูลให้ทั้งหมดหรือบางส่วนอีกต่อไปไม่ว่าจะเป็นการชั่วคราวหรือถาวรเมื่อใดก็ตามโดยไม่ต้องแจ้งให้ทราบล่วงหน้า เพื่อการหลีกเลี่ยงข้อสงสัย ไม่มีสิ่งใดในที่นี้บังคับให้สภากาชาดต้องทำให้ API หรือฟีดข้อมูลพร้อมใช้งานสำหรับคุณ และคุณยินยอมและรับทราบว่าการเข้าถึงใดๆ จะอยู่ภายใต้ดุลยพินิจของสภากาชาดแต่เพียงผู้เดียว", "severability": { "body": "ความไม่สมบูรณ์หรือไม่สามารถใช้บังคับของข้อกำหนด API นั้นจะไม่ส่งผลกระทบต่อความสมบูรณ์ของบทบัญญัติอื่นใด", "heading": "การเป็นโมฆะและการสละสิทธิ์" }, "suspension": { - "body": "สภากาชาดขอสงวนสิทธิ์โดยใช้ดุลยพินิจแต่เพียงผู้เดียวในการระงับหรือยุติการเข้าใช้งานของคุณหากสภากาชาดพิจารณาเห็นว่าคุณมีส่วนเกี่ยวข้องกับการใช้ API หรือฟีดข้อมูลโดยไม่ได้รับอนุญาตตามที่ระบุไว้ในข้อกำหนด API หรือคุณกำลังใช้ API หรือฟีดข้อมูล ในกิจกรรมใดๆ ที่เป็นการคุกคาม\/ลดทอนความปลอดภัย และ\/หรือ ความมั่นคงปลอดภัยของบุคคลใดหรือเครือข่ายของสภากาชาด", + "body": "สภากาชาดขอสงวนสิทธิ์โดยใช้ดุลยพินิจแต่เพียงผู้เดียวในการระงับหรือยุติการเข้าใช้งานของคุณหากสภากาชาดพิจารณาเห็นว่าคุณมีส่วนเกี่ยวข้องกับการใช้ API หรือฟีดข้อมูลโดยไม่ได้รับอนุญาตตามที่ระบุไว้ในข้อกำหนด API หรือคุณกำลังใช้ API หรือฟีดข้อมูล ในกิจกรรมใดๆ ที่เป็นการคุกคาม/ลดทอนความปลอดภัย และ/หรือ ความมั่นคงปลอดภัยของบุคคลใดหรือเครือข่ายของสภากาชาด", "heading": "การระงับหรือการยกเลิกบริการ" } }, diff --git a/resources/lang/tr.json b/resources/lang/tr.json index 4d037b0..275b64c 100644 --- a/resources/lang/tr.json +++ b/resources/lang/tr.json @@ -441,9 +441,9 @@ "immediate": "Acil", "warning": "Uyarı", "anticipated": "Beklenen", - "assess_and_plan":"Değerlendirin ve Planlayın", - "mitigate_risks":"Riski Azaltın", - "prepare_to_respond":"Yanıt Vermeye Hazırlanın", + "assess_and_plan": "Değerlendirin ve Planlayın", + "mitigate_risks": "Riski Azaltın", + "prepare_to_respond": "Yanıt Vermeye Hazırlanın", "recover": "İyileş" }, "content": { @@ -558,7 +558,8 @@ "content_edit_title": "İçerik Düzenleme", "content_add_hazard_title": "Tehlike Ekle", "key_message_label": "Anahtar mesaj başlığı", - "supporting_message_label": "Destek mesajı" + "supporting_message_label": "Destek mesajı", + "mitigate_risk": "Riski Azaltın" }, "message_editor": { "title": "Atıf Editörü", @@ -618,7 +619,7 @@ "bad_request_error_codes": { "30001": "Sütun başlıkları şablonla eşleşmiyor", "30002": "Özellik adı, mesaj veya URL eksik", - "30003": "Özellik adı geçersiz. Lütfen protokolün var olduğunu kontrol edin, https:\/\/ gibi", + "30003": "Özellik adı geçersiz. Lütfen protokolün var olduğunu kontrol edin, https:// gibi", "40001": "Geçersiz ülke kodu girildi", "40002": "Seçilen dernek seçilen dernek dosyası ile eşleşmiyor", "40003": "Seçilen dosyanın dışa aktarım tarihi hatalı olduğu için içe aktarım tamamlanamadı" @@ -689,7 +690,7 @@ }, "landing": { "strapline": "Güvenlik Mesajı Veritabanı Hizmeti", - "strapline_part_2": "Küresel Kızılhaç \/ Kızılay Güvenlik Mesajları", + "strapline_part_2": "Küresel Kızılhaç / Kızılay Güvenlik Mesajları", "head_1": "IFRC Güvenlik", "head_2": "Mesaj Veritabanı", "head_text_1": "IFRC Halkı Bilinçlendirme ve Bilinçlendirmeye dayalı güvenlik mesajları", @@ -744,7 +745,7 @@ "fake_alert_heading": "Dondurucu Soğuk Uyarısı", "fake_alert_description": "Et harum quidem rerum facilis est et expedita distinctio. Nam libero temporare, cum soluta nobis est.", "fake_alert_time": "1 SAAT ÖNCE", - "fake_alert_time_exact": "05\/02\/18 saat 05:15 (GMT-5)", + "fake_alert_time_exact": "05/02/18 saat 05:15 (GMT-5)", "use_cases": { "heading": "Daha Fazla Bilgi", "first_heading": "Nasıl Çalışır", @@ -785,7 +786,7 @@ }, "data_preview": { "heading": "Güvenlik Mesajları", - "sub_heading": "Üye Olun ve dünya genelindeki Kızılhaç \/ Kızılay derneklerinden önemli mesajları görüntüleyin" + "sub_heading": "Üye Olun ve dünya genelindeki Kızılhaç / Kızılay derneklerinden önemli mesajları görüntüleyin" }, "footer": { "terms_conditions": "Hüküm ve Koşullar", @@ -841,10 +842,10 @@ "industries": { "media": "Medya", "emergency": "Afet ve Acil Durum Yönetimi", - "non_profit": "Kar amacı gütmeyen\/Sivil Toplum Kuruluşu", + "non_profit": "Kar amacı gütmeyen/Sivil Toplum Kuruluşu", "humanitarian": "İnsani Yardım Kuruluşu", - "red_cross": "Kızılhaç\/Kızılay", - "education": "Eğitim\/Akademi", + "red_cross": "Kızılhaç/Kızılay", + "education": "Eğitim/Akademi", "gov": "Devlet kurumu", "other": "Diğer" }, @@ -859,9 +860,9 @@ "body": "Columbia Bölgesi yasaları, herhangi bir kanun ihtilafı ilkesini yürürlüğe koymaksızın, işbu Sözleşme kapsamındaki tüm hak ve yükümlülükleri yönetecektir.", "heading": "Geçerli Kanun:" }, - "body": " Kızılhaç'ın size sağladığı giriş anahtarının gizliliği ve güvenliğinden sorumlusunuz. Yüklenen verileri almaya devam etmek için zaman zaman güncellenen arayüzün uyumluluğunu devam ettirmekten sorumlusunuz. Kızıl Haç, arayüz ve verileri güncelleme hakkını saklı tutar. Yeni sürümler önceki uygulamalarla uyumlu olmayabilir, en son güncellenen sürümünü her zaman kullanmayı kabul edersiniz.\n\nArayüzün ve Kızılhaç'ın herhangi bir parçasını ya da yazılımını değiştirmeyeceğinizi, yaymayacağınızı, kaynak koduna dönmeyeceğinizi, parçalarına ayırmayacağınızı ya da tersine mühendislik yapmayacağınızı kabul edersiniz.\n\nArayüzü ya da verileri, makul talep hacmini aşacak şekilde ya da aşırı veya kötüye kullanamazsınız. Kızılhaç bu haklarını saklı tutar.\n\nArayüzü ya da verileri, kanunsuz, yanıltıcı, ihmalkar, kötü niyetli veyahut Kızıl Haç'a ya da sağlayıcılarıcına, içerik üreticilerine, ya da başka kişilere zarar verecek şekilde kullanamazsınız. Kızıl Haç bu haklarını saklı tutar.\n\nKızıl Haç arayüzü ve verileri kullanış biçiminizi denetleyebilir. Bu denetlemeyi herhangi bir teknolojik araç ile engelleyemezsiniz ve Kızılhaç bu tür engelleri aşabilmek için başka teknik araçlar kullanabilir.\n\nHazırlık, Müdahale ve Kurtarma mesajları yalnızca ilişkili olay ikazının bir önceki aciliyet durumuna göre geçerli ya da güncellenmiş olarak sunulur, ve siz de Kızılhaç'tan gelen herhangi bir veri güncellemesi ve\/veya ilişkili olay ikazına göre bireysel olarak Hazırlık, Müdahale ve Kurtarma mesajlarında güncelleme yapmalısınız.\n\nBireysel Hazırlık, Müdahale ve Kurtarma mesajları, yalnızca belirtilen coğrafi bölge ile ilişkilendirilir. Eğer bir Hazırlık, Müdahale ve Kurtarma mesajı, Amerika Kızıl Haç ya da başka bir Kızılhaç ya da Kızılay veyahut bir milli topluluğa dair (hepsi birer \"Kaynak Referansı\"dır) bir referans içerirse, bu Kaynak Referansını her bir Hazırlık, Müdahale ve Kurtarma mesajı ile ilişkilendirerek, verilerde gösterilen şekilde belirtmelisiniz. Bu Kaynak Referansını başka şekillerde kullanamazsınız.\n\nVerileri, olay ikazlarını ve\/veya Hazırlık, Müdahale, Kurtarma mesajlarını başka bir dile çeviremez, kullanamaz, üzerinde düzenleme ya da uyarlama yapamaz, veya anlamlarını değiştiremezsiniz.\n\nVerilerin yalnızca sizin kontrolünüzde olduğundan ve güvenliğinden emin olmalısınız.\n\nOlay ikazlarının ve Hazırlık, Müdahale, Kurtarma mesajlarının, reklam ya da sponsorluk amacı ile son kullanıcıya ulaşmasına izin veremezsiniz.\n\nVerilerin tamamından ya da bir kısmından arşiv oluşturamazsınız.", + "body": " Kızılhaç'ın size sağladığı giriş anahtarının gizliliği ve güvenliğinden sorumlusunuz. Yüklenen verileri almaya devam etmek için zaman zaman güncellenen arayüzün uyumluluğunu devam ettirmekten sorumlusunuz. Kızıl Haç, arayüz ve verileri güncelleme hakkını saklı tutar. Yeni sürümler önceki uygulamalarla uyumlu olmayabilir, en son güncellenen sürümünü her zaman kullanmayı kabul edersiniz.\n\nArayüzün ve Kızılhaç'ın herhangi bir parçasını ya da yazılımını değiştirmeyeceğinizi, yaymayacağınızı, kaynak koduna dönmeyeceğinizi, parçalarına ayırmayacağınızı ya da tersine mühendislik yapmayacağınızı kabul edersiniz.\n\nArayüzü ya da verileri, makul talep hacmini aşacak şekilde ya da aşırı veya kötüye kullanamazsınız. Kızılhaç bu haklarını saklı tutar.\n\nArayüzü ya da verileri, kanunsuz, yanıltıcı, ihmalkar, kötü niyetli veyahut Kızıl Haç'a ya da sağlayıcılarıcına, içerik üreticilerine, ya da başka kişilere zarar verecek şekilde kullanamazsınız. Kızıl Haç bu haklarını saklı tutar.\n\nKızıl Haç arayüzü ve verileri kullanış biçiminizi denetleyebilir. Bu denetlemeyi herhangi bir teknolojik araç ile engelleyemezsiniz ve Kızılhaç bu tür engelleri aşabilmek için başka teknik araçlar kullanabilir.\n\nHazırlık, Müdahale ve Kurtarma mesajları yalnızca ilişkili olay ikazının bir önceki aciliyet durumuna göre geçerli ya da güncellenmiş olarak sunulur, ve siz de Kızılhaç'tan gelen herhangi bir veri güncellemesi ve/veya ilişkili olay ikazına göre bireysel olarak Hazırlık, Müdahale ve Kurtarma mesajlarında güncelleme yapmalısınız.\n\nBireysel Hazırlık, Müdahale ve Kurtarma mesajları, yalnızca belirtilen coğrafi bölge ile ilişkilendirilir. Eğer bir Hazırlık, Müdahale ve Kurtarma mesajı, Amerika Kızıl Haç ya da başka bir Kızılhaç ya da Kızılay veyahut bir milli topluluğa dair (hepsi birer \"Kaynak Referansı\"dır) bir referans içerirse, bu Kaynak Referansını her bir Hazırlık, Müdahale ve Kurtarma mesajı ile ilişkilendirerek, verilerde gösterilen şekilde belirtmelisiniz. Bu Kaynak Referansını başka şekillerde kullanamazsınız.\n\nVerileri, olay ikazlarını ve/veya Hazırlık, Müdahale, Kurtarma mesajlarını başka bir dile çeviremez, kullanamaz, üzerinde düzenleme ya da uyarlama yapamaz, veya anlamlarını değiştiremezsiniz.\n\nVerilerin yalnızca sizin kontrolünüzde olduğundan ve güvenliğinden emin olmalısınız.\n\nOlay ikazlarının ve Hazırlık, Müdahale, Kurtarma mesajlarının, reklam ya da sponsorluk amacı ile son kullanıcıya ulaşmasına izin veremezsiniz.\n\nVerilerin tamamından ya da bir kısmından arşiv oluşturamazsınız.", "contact": "Arayüz ile ilgili sorularınız için lütfen Kızılhaç'a {0} buradan ulaşınız.", - "disclaimer": "Arayüz ve veriler YALNIZCA BİLGİ VE EĞİTİM AMAÇLI, 'olduğu gibi' ve 'mevcut olduğu gibi' sağlanmaktadır. Kızıl Haç, açık veya zımni hiçbir tür beyanda bulunmaz veya garanti vermez. Kızıl Haç açık veya zımni tüm garantileri reddeder, buna satılabilirlik ve belirli bir amaca uygunluk ile ilgili zımni garantiler de dahildir ancak bunlarla sınırlı değildir. Kızıl Haç ve çalışanları, memurları, yöneticileri ve acenteleri ve lisans verenleri, arayüzün, verilerin, olay ikazlarının ve\/veya Hazırlık, Müdahale ve Kurtarma mesajları dahil ancak bunlarla sınırlı olmamak üzere kullanımından kaynaklanan herhangi bir doğrudan, dolaylı, arızi, cezai ve sonuç olarak ortaya çıkan zarardan sorumlu olmayacaktır.\n\nKızılhaç, API'nin, Veri Beslemesinin, arayüzün, verilerin, olay ikazlarının ve\/veya Hazırlık, Müdahale ve Kurtarma mesajlarının sırasını, doğruluğunu, orijinalliğini veya eksiksizliğini garanti etmez ve size veya Son Kullanıcılarınıza veya herhangi bir üçüncü kişiye karşı hiçbir şekilde sorumlu tutulamaz. Bunlarla sınırlı olmaksızın, burada belirtildiği üzere, arayüzler, veriler, olay ikazları ve\/veya Hazırlık, Müdahale ve Kurtarma mesajları hususunda, herhangi bir gecikmeden, yanlışlıktan, hatalar ve ihmallerden sorumlu tutulamaz.", + "disclaimer": "Arayüz ve veriler YALNIZCA BİLGİ VE EĞİTİM AMAÇLI, 'olduğu gibi' ve 'mevcut olduğu gibi' sağlanmaktadır. Kızıl Haç, açık veya zımni hiçbir tür beyanda bulunmaz veya garanti vermez. Kızıl Haç açık veya zımni tüm garantileri reddeder, buna satılabilirlik ve belirli bir amaca uygunluk ile ilgili zımni garantiler de dahildir ancak bunlarla sınırlı değildir. Kızıl Haç ve çalışanları, memurları, yöneticileri ve acenteleri ve lisans verenleri, arayüzün, verilerin, olay ikazlarının ve/veya Hazırlık, Müdahale ve Kurtarma mesajları dahil ancak bunlarla sınırlı olmamak üzere kullanımından kaynaklanan herhangi bir doğrudan, dolaylı, arızi, cezai ve sonuç olarak ortaya çıkan zarardan sorumlu olmayacaktır.\n\nKızılhaç, API'nin, Veri Beslemesinin, arayüzün, verilerin, olay ikazlarının ve/veya Hazırlık, Müdahale ve Kurtarma mesajlarının sırasını, doğruluğunu, orijinalliğini veya eksiksizliğini garanti etmez ve size veya Son Kullanıcılarınıza veya herhangi bir üçüncü kişiye karşı hiçbir şekilde sorumlu tutulamaz. Bunlarla sınırlı olmaksızın, burada belirtildiği üzere, arayüzler, veriler, olay ikazları ve/veya Hazırlık, Müdahale ve Kurtarma mesajları hususunda, herhangi bir gecikmeden, yanlışlıktan, hatalar ve ihmallerden sorumlu tutulamaz.", "entire_agreement": { "body": "Bu Sözleşme, burada kapsanan konularla ilgili olarak Kızılhaç ile sizin aranızdaki anlaşmanın tamamını teşkil eder ve burada özellikle yer almayan önceki sözlü veya yazılı anlaşmaların, beyanların veya anlayışların yerini alır. Kızılhaç, iş bu sözleşmeyi istediği herhangi bir zamanda herhangi bir gerekçe göstermeksizin feshetme hakkına sahiptir.", "heading": "Sözleşmenin Tamamı:" @@ -869,7 +870,7 @@ "heading": "ARAYÜZ VE KULLANICI LİSANS ANLAŞMASI", "intro": "HİZMET KULLANARAK VEYA KUTUCUĞU İŞARETLEYEREK, BU SÖZLEŞMENİN KAYIT VE KOŞULLARINA BAĞLI KALMAYI KABUL EDERSİNİZ.\n\nArayüz, size (\"Siz\"), küresel hava durumu ve afet olay uyarısı beslemesi ve izleme bildirimleri (\"Olay Uyarıları\") dahil olmak üzere Kızıl Haç tarafından sunulan veri akışlarını almanıza, tehlike türüne, aciliyetine göre yerel tehlikelere nasıl hazırlanılacağına dair eyleme geçirilebilir ve bağlamsallaştırılmış mesajlar beslemesini kullanmanıza olanak tanıyan bir araç sağlayacaktır. (\"Hazırlık, Müdahale ve Kurtarma Mesajları\" ve toplu olarak Olay Uyarıları, \"Veri Beslemeleri\"). Hazırla, Yanıtla ve Kurtar Mesajları, kendi uygulamanızda Etkinlik Uyarılarına veya hava durumu ve felaket olaylarıyla ilişkili diğer uyarılara eşlik etmek ve bildirimleri izlemek için tasarlanmıştır. Veri Beslemelerini kullanımınız API Koşullarına tabidir.", "license_limitations": { - "body": "Veri Akışını yalnızca, API hükümlerine bağlı olarak kendi uygulamanız ile zaman zaman güncellenen API'ye uygunluğunuz göz önünde bulundurularak kullanabilirsiniz. Olay ikazlarını ve arayüz şartlarına tabi olarak verilerden gelen bireysel olay ikazlarının aciliyet ayarıyla ilgili, bağlamsal Hazırlık, Müdahale ve Kurtarma mesajlarınızı, son kullanıcılarınıza, özel olmayan, sınırlı ve iptal edilebilir indirme, kullanım, çoğaltma ve dağıtma hakkına sahipsiniz. API'yi yalnızca Veri Akışlarının ticari olmayan kullanımlarını API Koşullarına uygun olarak kolaylaştırmak için kullanabilirsiniz. Veri Beslemelerinin, Olay Uyarılarının ve \/ veya Mesajların Hazırlanması, Yanıtlanması ve Kurtarılması gibi ticari kullanımlarını kolaylaştırmak için arayüzü hiçbir durumda kullanamazsınız; bunlarla sınırlı olmamak kaydı ile, bunları yeniden satmak, bunlara erişmek için ücret almak, yeniden dağıtmak için ücret almak veya bunlara dayalı türev çalışmalar oluşturmak amaçlı ücret almak da dahildir. Kızıl Haç ve lisans verenleri, API, Hazırlama, Yanıtlama ve Kurtarma Mesajları, olay ikazları, Veri Beslemeleri ve Kaynak Referansları (aşağıda tanımlandığı gibi) ile ilgili tüm unvan, mülkiyet, hak ve menfaatleri elinde tutar. Açıkça verilmeyen tüm haklar saklıdır.", + "body": "Veri Akışını yalnızca, API hükümlerine bağlı olarak kendi uygulamanız ile zaman zaman güncellenen API'ye uygunluğunuz göz önünde bulundurularak kullanabilirsiniz. Olay ikazlarını ve arayüz şartlarına tabi olarak verilerden gelen bireysel olay ikazlarının aciliyet ayarıyla ilgili, bağlamsal Hazırlık, Müdahale ve Kurtarma mesajlarınızı, son kullanıcılarınıza, özel olmayan, sınırlı ve iptal edilebilir indirme, kullanım, çoğaltma ve dağıtma hakkına sahipsiniz. API'yi yalnızca Veri Akışlarının ticari olmayan kullanımlarını API Koşullarına uygun olarak kolaylaştırmak için kullanabilirsiniz. Veri Beslemelerinin, Olay Uyarılarının ve / veya Mesajların Hazırlanması, Yanıtlanması ve Kurtarılması gibi ticari kullanımlarını kolaylaştırmak için arayüzü hiçbir durumda kullanamazsınız; bunlarla sınırlı olmamak kaydı ile, bunları yeniden satmak, bunlara erişmek için ücret almak, yeniden dağıtmak için ücret almak veya bunlara dayalı türev çalışmalar oluşturmak amaçlı ücret almak da dahildir. Kızıl Haç ve lisans verenleri, API, Hazırlama, Yanıtlama ve Kurtarma Mesajları, olay ikazları, Veri Beslemeleri ve Kaynak Referansları (aşağıda tanımlandığı gibi) ile ilgili tüm unvan, mülkiyet, hak ve menfaatleri elinde tutar. Açıkça verilmeyen tüm haklar saklıdır.", "heading": "Müsaade ve Sınırlamalar:" }, "overview": { @@ -892,13 +893,13 @@ "six": "Herhangi bir virüs, truva atı veya yıkıcı nitelikteki bir öğeyi bulaştırmak." } }, - "reserve_rights": "Kızılhaç, önceden bildirimde bulunmaksızın herhangi bir zamanda geçici veya kalıcı olarak API ve verileri tamamen veya kısmen değiştirme ve \/ veya artık sağlamama hakkını saklı tutar. Şüpheye mahal vermemek adına, buradaki hiçbir şey Kızılhaç'ın API veya verilerini size sunma zorunluluğunu taşımaz ve siz, herhangi bir erişimin Kızılhaç'ın yegane ve mutlak takdir yetkisi dahilinde olduğunu kabul edip onaylarsınız.", + "reserve_rights": "Kızılhaç, önceden bildirimde bulunmaksızın herhangi bir zamanda geçici veya kalıcı olarak API ve verileri tamamen veya kısmen değiştirme ve / veya artık sağlamama hakkını saklı tutar. Şüpheye mahal vermemek adına, buradaki hiçbir şey Kızılhaç'ın API veya verilerini size sunma zorunluluğunu taşımaz ve siz, herhangi bir erişimin Kızılhaç'ın yegane ve mutlak takdir yetkisi dahilinde olduğunu kabul edip onaylarsınız.", "severability": { "body": "API Hükümlerinin herhangi bir şartının veya hükmünün geçersizliği, diğer herhangi bir hükmün geçerliliğini etkilemeyecektir.", "heading": "Bölünebilirlik ve Feragat:" }, "suspension": { - "body": "Kızılhaç, tamamen kendi takdirine bağlı olarak arayüz koşullarında belirtildiği gibi, herhangi bir kişinin veya Kızılhaç ağlarının güvenliğini ve \/ veya güvenliğini tehdit eden \/ tehlikeye atan herhangi bir faaliyette, arayüz veya verileri yetkisiz olarak kullandığınızı veya arayüz veya verileri kullandığınızı tespit ederse, Kızılhaç erişiminizi askıya alma veya sonlandırma hakkını saklı tutar.", + "body": "Kızılhaç, tamamen kendi takdirine bağlı olarak arayüz koşullarında belirtildiği gibi, herhangi bir kişinin veya Kızılhaç ağlarının güvenliğini ve / veya güvenliğini tehdit eden / tehlikeye atan herhangi bir faaliyette, arayüz veya verileri yetkisiz olarak kullandığınızı veya arayüz veya verileri kullandığınızı tespit ederse, Kızılhaç erişiminizi askıya alma veya sonlandırma hakkını saklı tutar.", "heading": "Askıya Alma veya Sonlandırma:" } }, diff --git a/resources/lang/ur.json b/resources/lang/ur.json index 0c01a40..63ee043 100644 --- a/resources/lang/ur.json +++ b/resources/lang/ur.json @@ -441,9 +441,9 @@ "immediate": "فوری", "warning": "انتباہ", "anticipated": "متوقع", - "assess_and_plan":"جائزہ لیں اور منصوبہ بنائیں", - "mitigate_risks":"خطرے کو کم کریں", - "prepare_to_respond":"جواب دینے کے لیے تیار رہیں", + "assess_and_plan": "جائزہ لیں اور منصوبہ بنائیں", + "mitigate_risks": "خطرے کو کم کریں", + "prepare_to_respond": "جواب دینے کے لیے تیار رہیں", "recover": "بحال کریں" }, "content": { @@ -526,7 +526,7 @@ "seasonalForecast_extra": "ایک موسمیاتی پیش گوئی ایک خطرناک واقعہ کی پیشن گوئی کا بیان ہے۔ کیئے گئے اقدامات ممکنہ خطرے کو کم کرنا اور سرگرمیوں کی منصوبہ بندی کرنا تاکہ خطرے کو کم کر کے کنبوں کو بچایا جا سکے۔", "watch": "نگرانی", "watch_help": "ردِعمل دینے کے لیے تیار رہیں", - "watch_extra": "ایک خطرے کی اطلاع اس وقت جاری کی جاتی ہے جب خطرناک واقعے کے وقوع پذیر ہونے کے خطرے میں نمایاں طور پر اضافہ ہوچکا ہو، لیکن اس کا وقوع، مقام، اور\/ یا وقت ابھی تک غیر یقینی ہے۔ اس کا مقصد حفاظتی اقدامات اور جواب دینے کی تیاری کے لئے کافی وقت فراہم کرنا ہے۔", + "watch_extra": "ایک خطرے کی اطلاع اس وقت جاری کی جاتی ہے جب خطرناک واقعے کے وقوع پذیر ہونے کے خطرے میں نمایاں طور پر اضافہ ہوچکا ہو، لیکن اس کا وقوع، مقام، اور/ یا وقت ابھی تک غیر یقینی ہے۔ اس کا مقصد حفاظتی اقدامات اور جواب دینے کی تیاری کے لئے کافی وقت فراہم کرنا ہے۔", "warning": "انتباہ", "warning_help": "ردِعمل دینے کے لیے تیار رہیں", "warning_extra": "ایک انتباہ کسی خطرناک واقعہ کے رونما پذیر ہونے، متوقع ہونے، یا واقع ہو جانے کے بہت زیادہ امکانات ہونے کی صورت میں دیا جاتا ہے۔ اس کا مطلب یہ ہے کہ حالات زندگی یا املاک کیلئے خطرہ ہیں۔ اس خطرے سے دوچار لوگوں کو حفاظتی اقدامات کرنے کی ضرورت ہے۔", @@ -558,7 +558,8 @@ "content_edit_title": "مواد میں ترمیم", "content_add_hazard_title": "خطرہ شامل کریں", "key_message_label": "کلیدی پیغام کا عنوان", - "supporting_message_label": "معاون پیغام" + "supporting_message_label": "معاون پیغام", + "mitigate_risk": "خطرے کو کم کریں" }, "message_editor": { "title": "ایٹریبیوشن ایڈیٹر", @@ -618,7 +619,7 @@ "bad_request_error_codes": { "30001": "کالم کی سرخیاں نمونے سے مماثل نہیں ہیں", "30002": "صفات کے نام، پیغام اور یو آر ایل گُم ہیں", - "30003": "غیر لاگو صفات یو آر ایل - براہِ مہربانی یقینی بنائیں کہ پروٹوکول موجود ہے، مثلاً http\/\/: وغیرہ", + "30003": "غیر لاگو صفات یو آر ایل - براہِ مہربانی یقینی بنائیں کہ پروٹوکول موجود ہے، مثلاً http//: وغیرہ", "40001": "ناموزوں ملکی کوڈ فراہم کیا گیا", "40002": "منتخب کی گئی سوسائٹی منتخب کی گئی فائل سے مماثلت نہیں رکھتی", "40003": "وہ تاریخ جس کو منتخب شدہ فائل برآمد کی تھی ناقص ہو چکی ہے اور درآمد مکمل نہیں ہو سکی" @@ -689,7 +690,7 @@ }, "landing": { "strapline": "سیفٹی میسج ڈیٹابیس سروس", - "strapline_part_2": "عالمی ریڈ کراس \/ ہلالِ احمر کے کلیدی حفاظتی پیغامات", + "strapline_part_2": "عالمی ریڈ کراس / ہلالِ احمر کے کلیدی حفاظتی پیغامات", "head_1": "آئی ایف آر سی سیفٹی", "head_2": "پیغامات کا ڈیٹابیس", "head_text_1": "سیفٹی میسجز آئی ایف آر سی کی عوامی بیداری اور", @@ -744,7 +745,7 @@ "fake_alert_heading": "انتباہ برائے شدید سردی", "fake_alert_description": "Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est.", "fake_alert_time": "1 گھنٹہ قبل", - "fake_alert_time_exact": "05\/02\/18 کو 05:15 سی ٹی پر", + "fake_alert_time_exact": "05/02/18 کو 05:15 سی ٹی پر", "use_cases": { "heading": "مزید جانیں", "first_heading": "یہ کیسے کام کرتا ہے", @@ -785,7 +786,7 @@ }, "data_preview": { "heading": "سیفٹی میسجز", - "sub_heading": "سائن اپ کریں اور دنیا بھر میں ریڈ کراس \/ ہلالِ احمر قومی سوسائٹی کے کلیدی پیغامات دیکھیں" + "sub_heading": "سائن اپ کریں اور دنیا بھر میں ریڈ کراس / ہلالِ احمر قومی سوسائٹی کے کلیدی پیغامات دیکھیں" }, "footer": { "terms_conditions": "شرائط و ضوابط", @@ -841,10 +842,10 @@ "industries": { "media": "میڈیا", "emergency": "ہنگامی حالات کے انتظامات", - "non_profit": "غیر منافع بخش\/این جی او", + "non_profit": "غیر منافع بخش/این جی او", "humanitarian": "انسان دوست تنظیم", - "red_cross": "ریڈ کراس\/ ہلالِ احمر", - "education": "تعلیم\/ تعلیمی ادارے", + "red_cross": "ریڈ کراس/ ہلالِ احمر", + "education": "تعلیم/ تعلیمی ادارے", "gov": "سرکاری ایجنسی", "other": "دیگر" }, @@ -859,9 +860,9 @@ "body": "اس معاہدے کے تحت کولمبیا کے ضلع کے قوانین میں اختلافات کے اصولوں کو اثر دیئے بغیر تمام حقوق اور ذمہ داریوں پر عمل کریں گے۔", "heading": "قابل اطلاق قانون:" }, - "body": "آپ ریڈ کراس کی طرف سے فراہم کی گئی رجسٹریشن کی کلید کی رازداری اور سلامتی کو برقرار رکھنے کے ذمہ دار ہیں۔ ڈیٹا فیڈ کے حصول کو جاری رکھنے کے لیئے آپ اے پی ای کے ساتھ مطابقت برقرار رکھنے کے ذمہ دار ہیں ، جیسا کہ وقت بہ وقت تازہ کیا جاتا ہے۔ ریڈ کراس اس کی واحد صوابدید پر اے پی ای اور ڈیٹا فیڈ کے تازہ ترین ورژن جاری کر سکتے ہیں۔ ہو سکتا ہے کہ نئے ورژن پچھلے نفاذات کے ساتھ ہم آہنگ نہ ہوں, اور آپ ڈیٹا فیڈ کے تازہ ترین ورژن کے استعمال پر اتفاق کرتے ہیں۔\n\nآپ اے پی آئی کے کسی بھی حصے یا ہلالِ احمر کے کسی بھی سافٹ وئیر میں ترمیم، تقسیم، غیر مرتب، بکھراؤ، یا ریورس انجئینرنگ۔\n\nآپ اے پی ای یا ڈیٹا فیڈ کو اس طرح استعمال نہیں کر سکتے کہ وہ قابلِ جواز درخواست کردہ حجم سے زیادہ ہو، یا ضرورت سے زیادہ استعمال یا غلط استعمال شامل ہے جیسا کہ ہلالَ احمر اپنی واحد صوابدید پر مقرر کرتا ہے۔\n\nآپ اے پی آئی یا ڈیٹا فیڈ کو اس انداز میں استعمال نہیں کر سکتے ہیں کہ وہ غیر قانونی ، گمراہ کن ، غیر محتاط ، بامقصد نقصان پہنچانے والا ، یا یہ نقصان ریڈ کراس، اس کی خدمات پہنچانے والے، اس کا مواد پہنچانے والے، یا دیگر کوئی شخص، جو کہ ریڈ کراس کی واحد صوابدید پر مقرر کیا گیا ہے۔\n\nریڈ کراس آپ کے پی آئی اور ڈیٹا فیڈ کو استعمال کرنے کی نگرانی کر سکتا ہے۔ آپ اس طرح کی نگرانی کے ساتھ مداخلت کرنے کے لئے کسی بھی تکنیکی ذریعہ کا استعمال نہیں کر سکتے ہیں ، اور ریڈ کراس کسی بھی ایسی مداخلت پر قابو پانے کے لئے تکنیکی وسائل کا استعمال کرسکتا ہے۔\n\nتیار کرنے ، جواب دینے اور پیغامات کی وصولی کے استعمال سے مربوط ایونٹ الرٹ کے اس وقت کے موجودہ فوری ترتیب میں صرف موجودہ یا اپ ڈیٹ کیا جائے گا ، اور آپ کو انفرادی تیاری ، جواب دینے ، اور کسی بھی اپ ڈیٹ پر پیغامات کو اپ ڈیٹ کرنے کی ضرورت ہوگی ڈیٹا فیڈ اور\/یا اس سے مربوط واقعہ انتباہات ریڈ کراس کی طرف سے۔\n\nانفرادی طور پر تیاری ، ردعمل، اور بحالی پیغامات جو کہ آپ استعمال کرتے ہیں، صرف اور صرف ان جغرافیائی علاقوں سے متعلق کرنا چاہیئے جن کے لیئے یہ پیغامات جاری کیئے گئے ہیں۔ اگر ایک تیاری، ردعمل، اور بحالی پیغامات میں کسی ذریعے کا حوالہ شامل ہو، جیسا کہ امریکن ریڈ کراس، یا دیگر ریڈ کراس یا ہلالِ احمر قومی سوسائٹی یا تنظیم (ہر ایک \"ذریعے کا حوالہ\")، تو آپ کو ڈیٹا فیڈ میں فراہم کی گئی شکل میں ذریعے کے حوالے کو تیاری، ردعمل، اور بحالی کے پیغامات میں شامل کرنا ہو گا۔ آپ کو کسی بھی ذریعے کے حوالے کا مزید استعمال نہیں کرنا چاہیئے۔\n\nآپ ڈیٹا فیڈز، ایونٹ کے انتباہ، اور\/یا تیاری، ردعمل، اور بحالی کے پیغامات کا کسی دوسری زبان میں ترجمہ نہیں کر سکتے، ڈیٹا فیڈز، ایونٹ کے انتباہ اور\/یا تیاری، ردعمل اور بحالی کے پیغامات کا کسی قسم کا استعمال، ترمیم یا نظر ثانی، یا ان کے مفہوم تبدیل نہیں کر سکتے۔\n\nآپ کو لازمی طور پر یہ یقینی بنانا چاہیئے کہ ڈیٹا فیڈز، آپ کی واحد ملکیت اور\/یا انضباط میں رہیں۔\n\nآپ آخری صارفین کو ایونٹ کے انتباہ اور تیاری، ردعمل اور بحالی کے پیغامات، کسی قسم کی اشتہار بازی یا ضمانت کے لیئے استعمال کرنے کی اجازت نہیں دے سکتے۔\n\nآپ مکمل طور پر یا جزوی طور پر اعداد و شمار کو محفوظ نہیں کر سکتے ہیں۔", + "body": "آپ ریڈ کراس کی طرف سے فراہم کی گئی رجسٹریشن کی کلید کی رازداری اور سلامتی کو برقرار رکھنے کے ذمہ دار ہیں۔ ڈیٹا فیڈ کے حصول کو جاری رکھنے کے لیئے آپ اے پی ای کے ساتھ مطابقت برقرار رکھنے کے ذمہ دار ہیں ، جیسا کہ وقت بہ وقت تازہ کیا جاتا ہے۔ ریڈ کراس اس کی واحد صوابدید پر اے پی ای اور ڈیٹا فیڈ کے تازہ ترین ورژن جاری کر سکتے ہیں۔ ہو سکتا ہے کہ نئے ورژن پچھلے نفاذات کے ساتھ ہم آہنگ نہ ہوں, اور آپ ڈیٹا فیڈ کے تازہ ترین ورژن کے استعمال پر اتفاق کرتے ہیں۔\n\nآپ اے پی آئی کے کسی بھی حصے یا ہلالِ احمر کے کسی بھی سافٹ وئیر میں ترمیم، تقسیم، غیر مرتب، بکھراؤ، یا ریورس انجئینرنگ۔\n\nآپ اے پی ای یا ڈیٹا فیڈ کو اس طرح استعمال نہیں کر سکتے کہ وہ قابلِ جواز درخواست کردہ حجم سے زیادہ ہو، یا ضرورت سے زیادہ استعمال یا غلط استعمال شامل ہے جیسا کہ ہلالَ احمر اپنی واحد صوابدید پر مقرر کرتا ہے۔\n\nآپ اے پی آئی یا ڈیٹا فیڈ کو اس انداز میں استعمال نہیں کر سکتے ہیں کہ وہ غیر قانونی ، گمراہ کن ، غیر محتاط ، بامقصد نقصان پہنچانے والا ، یا یہ نقصان ریڈ کراس، اس کی خدمات پہنچانے والے، اس کا مواد پہنچانے والے، یا دیگر کوئی شخص، جو کہ ریڈ کراس کی واحد صوابدید پر مقرر کیا گیا ہے۔\n\nریڈ کراس آپ کے پی آئی اور ڈیٹا فیڈ کو استعمال کرنے کی نگرانی کر سکتا ہے۔ آپ اس طرح کی نگرانی کے ساتھ مداخلت کرنے کے لئے کسی بھی تکنیکی ذریعہ کا استعمال نہیں کر سکتے ہیں ، اور ریڈ کراس کسی بھی ایسی مداخلت پر قابو پانے کے لئے تکنیکی وسائل کا استعمال کرسکتا ہے۔\n\nتیار کرنے ، جواب دینے اور پیغامات کی وصولی کے استعمال سے مربوط ایونٹ الرٹ کے اس وقت کے موجودہ فوری ترتیب میں صرف موجودہ یا اپ ڈیٹ کیا جائے گا ، اور آپ کو انفرادی تیاری ، جواب دینے ، اور کسی بھی اپ ڈیٹ پر پیغامات کو اپ ڈیٹ کرنے کی ضرورت ہوگی ڈیٹا فیڈ اور/یا اس سے مربوط واقعہ انتباہات ریڈ کراس کی طرف سے۔\n\nانفرادی طور پر تیاری ، ردعمل، اور بحالی پیغامات جو کہ آپ استعمال کرتے ہیں، صرف اور صرف ان جغرافیائی علاقوں سے متعلق کرنا چاہیئے جن کے لیئے یہ پیغامات جاری کیئے گئے ہیں۔ اگر ایک تیاری، ردعمل، اور بحالی پیغامات میں کسی ذریعے کا حوالہ شامل ہو، جیسا کہ امریکن ریڈ کراس، یا دیگر ریڈ کراس یا ہلالِ احمر قومی سوسائٹی یا تنظیم (ہر ایک \"ذریعے کا حوالہ\")، تو آپ کو ڈیٹا فیڈ میں فراہم کی گئی شکل میں ذریعے کے حوالے کو تیاری، ردعمل، اور بحالی کے پیغامات میں شامل کرنا ہو گا۔ آپ کو کسی بھی ذریعے کے حوالے کا مزید استعمال نہیں کرنا چاہیئے۔\n\nآپ ڈیٹا فیڈز، ایونٹ کے انتباہ، اور/یا تیاری، ردعمل، اور بحالی کے پیغامات کا کسی دوسری زبان میں ترجمہ نہیں کر سکتے، ڈیٹا فیڈز، ایونٹ کے انتباہ اور/یا تیاری، ردعمل اور بحالی کے پیغامات کا کسی قسم کا استعمال، ترمیم یا نظر ثانی، یا ان کے مفہوم تبدیل نہیں کر سکتے۔\n\nآپ کو لازمی طور پر یہ یقینی بنانا چاہیئے کہ ڈیٹا فیڈز، آپ کی واحد ملکیت اور/یا انضباط میں رہیں۔\n\nآپ آخری صارفین کو ایونٹ کے انتباہ اور تیاری، ردعمل اور بحالی کے پیغامات، کسی قسم کی اشتہار بازی یا ضمانت کے لیئے استعمال کرنے کی اجازت نہیں دے سکتے۔\n\nآپ مکمل طور پر یا جزوی طور پر اعداد و شمار کو محفوظ نہیں کر سکتے ہیں۔", "contact": "اے پی ای کے بارے میں کسی بھی سوال کے ساتھ {0} پر ریڈ کراس سے رابطہ کریں۔", - "disclaimer": "اے پی آئی اور اعداد و شمار صرف معلومات اور تعلیمی مقاصد کے لئے فراہم کیئے جاتے ہیں، اور 'جیسا ہے' اور 'جیسا دستیاب ہے' کی بنیاد پر میسر ہیں۔ ہلالِ احمر کسی بھی قسم، نظر آتی یا مضمر کی کوئی نمائندگی یا ضمانت نہیں دیتا۔ ہلالِ احمر تمام قسم کی ضمانتوں سے لاعلمی کا اظہار کرتا ہے، نظر آتی یا مضمر، بشمول لیکن مضمر ضمانتیں برائے فروختگی اور مخصوص مقصد کے لیئے قابلیت تک محدود نہ ہیں۔ ہلالِ احمر اور اس کے ملازمین، افسران ، گورنر اور ایجنٹوں اور لائسنس کے اے پی ای کے استعمال سے پیدا ہونے والے کسی بھی قسم کے نقصانات کے لئے ذمہ دار نہیں ہوں گے، ڈیٹا فیڈ ، ایونٹ الرٹ ، اور\/یا تیار کرنے ، جواب دینے ، اور پیغامات کی وصولی ، بشمول براہ راست ، بالواسطہ ، اتفاقی ، تادیبی اور نتیجے میں نقصانات تک محدود نہیں۔\n\nہلالِ احمر ترتیب ، درستگی ، صداقت یا اے پی آئی کے مکمل ہونے، ڈیٹا فیڈ, ایونٹ الرٹ اور\/یا تیاری, ردعمل, اور پیغامات کی وصولی اور آپ یا آپ کے صارفین یا کسی بھی تیسرے فریق کے لئے کسی بھی طرح سے ذمہ دار تصور نہیں کیا جائے گا, بشمول بغیر حد کے، کسی بھی تاخیر کے لئے, غلطیوں یا بھول چوک کے لیئے, اے پی آئی کے سلسلے میں, ڈیٹا فیڈ, ایونٹ الرٹ اور\/یا تیار, ردعمل اور بحالی پیغامات آگے چل کر فراہم کیئے گئے ہیں۔", + "disclaimer": "اے پی آئی اور اعداد و شمار صرف معلومات اور تعلیمی مقاصد کے لئے فراہم کیئے جاتے ہیں، اور 'جیسا ہے' اور 'جیسا دستیاب ہے' کی بنیاد پر میسر ہیں۔ ہلالِ احمر کسی بھی قسم، نظر آتی یا مضمر کی کوئی نمائندگی یا ضمانت نہیں دیتا۔ ہلالِ احمر تمام قسم کی ضمانتوں سے لاعلمی کا اظہار کرتا ہے، نظر آتی یا مضمر، بشمول لیکن مضمر ضمانتیں برائے فروختگی اور مخصوص مقصد کے لیئے قابلیت تک محدود نہ ہیں۔ ہلالِ احمر اور اس کے ملازمین، افسران ، گورنر اور ایجنٹوں اور لائسنس کے اے پی ای کے استعمال سے پیدا ہونے والے کسی بھی قسم کے نقصانات کے لئے ذمہ دار نہیں ہوں گے، ڈیٹا فیڈ ، ایونٹ الرٹ ، اور/یا تیار کرنے ، جواب دینے ، اور پیغامات کی وصولی ، بشمول براہ راست ، بالواسطہ ، اتفاقی ، تادیبی اور نتیجے میں نقصانات تک محدود نہیں۔\n\nہلالِ احمر ترتیب ، درستگی ، صداقت یا اے پی آئی کے مکمل ہونے، ڈیٹا فیڈ, ایونٹ الرٹ اور/یا تیاری, ردعمل, اور پیغامات کی وصولی اور آپ یا آپ کے صارفین یا کسی بھی تیسرے فریق کے لئے کسی بھی طرح سے ذمہ دار تصور نہیں کیا جائے گا, بشمول بغیر حد کے، کسی بھی تاخیر کے لئے, غلطیوں یا بھول چوک کے لیئے, اے پی آئی کے سلسلے میں, ڈیٹا فیڈ, ایونٹ الرٹ اور/یا تیار, ردعمل اور بحالی پیغامات آگے چل کر فراہم کیئے گئے ہیں۔", "entire_agreement": { "body": "اے پی آئی کی شرائط متن کے موضوع کے حوالے سے ہلالِ احمر اور آپ کے درمیان مکمل اور خصوصی معاہدے کی حامل ہیں اور پہلے سے موجود تمام زبانی اور لکھی گئی تفہیم، بات چیت اور سمجھوتوں جو خاص طور پر یہاں شامل نہیں ہیں پر فوقیت رکھتی ہیں۔ ریڈ کراس کسی بھی وقت اس معاہدے میں ترمیم یا منسوخی کا حق محفوظ رکھتا ہے۔", "heading": "مکمل معاہدہ:" @@ -869,7 +870,7 @@ "heading": "اے پی آئی اختتامی صارف لائسنسنگ معاہدہ", "intro": "اتفاق کریں: سروس کو استعمال کرتے ہوئے یا فراہم کردہ ڈبے پر نشان لگا کر ، صارف اس معاہدے کی طرف سے پابند ہونے سے متفق ہے۔\n\nاے پی آئی ایک ایسا آلہ ہے جو آپ (\"آپ\") کو ڈیٹا فیڈز بازیافت کرنے اور استعمال کرنے کی اجازت دیتا ہے جو ہلالِ احمر کی طرف سے دستیاب ہے بشمول ایک عالمی موسمیاتی اور آفاتی واقعے سے متعلق انتباہ اور یاداشتیں (\"ایونٹ الرٹ\") اور مقامی خطرات کو خطرے کی قسم اور فوری ضرورت (\"تیاری، ردعمل، اور بحالی پیغامات\"، اور مجموعی طور پر ایونٹ الرٹ اور \"ڈیٹا فیڈ\") پر قابل عمل اور پسِ منظر سے مربوط پیغامات فراہم کرتا ہے۔ تیاری ، جواب اور بحالی پیغامات کا مقصد واقعات کی تنبیہات یا دیگر انتباہات کے ساتھ ہونا ہے اور اپنی درخواست میں موسم اور تباہی کے واقعات سے وابستہ یاداشتیں دیکھنا ہے۔ آپ کا ڈیٹا فیڈ کا استعمال اے پی آئی کی شرائط کے تحت ہے۔", "license_limitations": { - "body": "آپ صرف اے پی آئی کی شرائط کے تحت اپنی درخواست کے ساتھ مل کر ڈیٹا فیڈز کا استعمال کرسکتے ہیں ، بشرطیکہ آپ وقتا فوقتا اپ ڈیٹ کے مطابق اے پی آئی کے ساتھ مطابقت برقرار رکھیں۔ آپ کو ایک غیر مخصوص، محدود اور قابلِ تنسیخ حق دیا گیا ہے کہ آپ ڈاؤنلوڈ کر سکیں، استعمال کر سکیں، دوبارہ بنا سکیں اور آپ کی اپنی اپلیکیشن کے آخری صارفین کو بانٹ سکیں (\"آخری صارفین\") واقعہ کا انتباہ اور اس کے متعلقہ سیاق و سباق میں تیاری، ردعمل اور بحالی کے پیغامات بمع ڈیٹا فیڈ سے فوری انفرادی واقعہ کے انتباہ کی ترتیب، اے پی آئی کی شرائط سے مشروط ہیں۔ آپ اے پی آئی کی شرائط کے مطابق ڈیٹا فیڈ کے غیر تجارتی استعمال میں آسانی کے لئے صرف اے پی آئی کا استعمال کرسکتے ہیں۔ آپ کسی بھی واقعہ میں ڈیٹا فیڈز کے تجارتی استعمال کو سہولت دینے کے لیئے اے پی آئی استعمال نہیں کر سکتے، واقعہ کے انتباہات اور\/یا تیاری، ردعمل، اور بحالی کے پیغامات، بشمول بغیر حد، انہیں بیچنا، ان تک رسائی کا معاوضہ لینا، ان کو بانٹنے کا معاوضہ لینا، یا ان پر مشتمل ماخوذ کاموں کو تخلیق کرنے کا معاوضہ لینا۔ ریڈ کراس اور اس کے لائسنس دینے والے تمام عنوان، ملکیت، اے پی آئی میں اور اے پی آئی کے حقوق اور مفاد، تیاری، ردعمل ، اور بحالی پیغامات، واقعہ کی انتباہات، ڈیٹا فیڈز اور ماخذ حوالہ جات (جیسا کہ ذیل میں بیان کردہ ہیں) محفوظ رکھتے ہیں۔ تمام حقوق جو واضح طور پر نہیں دیئے جاتے ہیں وہ محفوظ ہیں۔", + "body": "آپ صرف اے پی آئی کی شرائط کے تحت اپنی درخواست کے ساتھ مل کر ڈیٹا فیڈز کا استعمال کرسکتے ہیں ، بشرطیکہ آپ وقتا فوقتا اپ ڈیٹ کے مطابق اے پی آئی کے ساتھ مطابقت برقرار رکھیں۔ آپ کو ایک غیر مخصوص، محدود اور قابلِ تنسیخ حق دیا گیا ہے کہ آپ ڈاؤنلوڈ کر سکیں، استعمال کر سکیں، دوبارہ بنا سکیں اور آپ کی اپنی اپلیکیشن کے آخری صارفین کو بانٹ سکیں (\"آخری صارفین\") واقعہ کا انتباہ اور اس کے متعلقہ سیاق و سباق میں تیاری، ردعمل اور بحالی کے پیغامات بمع ڈیٹا فیڈ سے فوری انفرادی واقعہ کے انتباہ کی ترتیب، اے پی آئی کی شرائط سے مشروط ہیں۔ آپ اے پی آئی کی شرائط کے مطابق ڈیٹا فیڈ کے غیر تجارتی استعمال میں آسانی کے لئے صرف اے پی آئی کا استعمال کرسکتے ہیں۔ آپ کسی بھی واقعہ میں ڈیٹا فیڈز کے تجارتی استعمال کو سہولت دینے کے لیئے اے پی آئی استعمال نہیں کر سکتے، واقعہ کے انتباہات اور/یا تیاری، ردعمل، اور بحالی کے پیغامات، بشمول بغیر حد، انہیں بیچنا، ان تک رسائی کا معاوضہ لینا، ان کو بانٹنے کا معاوضہ لینا، یا ان پر مشتمل ماخوذ کاموں کو تخلیق کرنے کا معاوضہ لینا۔ ریڈ کراس اور اس کے لائسنس دینے والے تمام عنوان، ملکیت، اے پی آئی میں اور اے پی آئی کے حقوق اور مفاد، تیاری، ردعمل ، اور بحالی پیغامات، واقعہ کی انتباہات، ڈیٹا فیڈز اور ماخذ حوالہ جات (جیسا کہ ذیل میں بیان کردہ ہیں) محفوظ رکھتے ہیں۔ تمام حقوق جو واضح طور پر نہیں دیئے جاتے ہیں وہ محفوظ ہیں۔", "heading": "لائسنس اور حدود:" }, "overview": { @@ -888,7 +889,7 @@ "two": "ریڈ کراس یا اے پی آئی کے ذریعہ استعمال کردہ کوئی بھی کلیدیں یا سیکیورٹی میکانزم کو روکنے یا ان میں ترمیم کرنا ، بشمول کسی حد تک تصدیق کے ٹیکنالوجی کو شامل کرنا۔", "three": "آپ کے اپنے اکاؤنٹ کے لئے جو چیز آپ کو فراہم کی جاتی ہے اس کے علاوہ ، ریڈ کراس کے لئے سائن ان نام ، پاس ورڈ یا تصدیق نامہ کے دیگر سندوں سے درخواست کرنے ، جمع کرنے ، مانگنے یا دوسری صورت میں رسائی حاصل کرنے کے لئے۔", "four": "ریڈ کراس یا کسی دوسرے ریڈ کراس یا ہلالِ احمر قومی سوسائٹی یا تنظیم کے ذریعہ وابستگی ، اس کی کفالت یا توثیق کرنا۔", - "five": "یہ بیان کرنا یا دلالت کرنا کہ آپ اے پی آئی، ڈیٹا فیڈز، واقعہ کے انتباہات اور\/یا تیاری، ردعمل، اور بحالی پیغامات کی ملکیت رکھتے ہیں۔", + "five": "یہ بیان کرنا یا دلالت کرنا کہ آپ اے پی آئی، ڈیٹا فیڈز، واقعہ کے انتباہات اور/یا تیاری، ردعمل، اور بحالی پیغامات کی ملکیت رکھتے ہیں۔", "six": "کوئی بھی وائرس، وارم نقائص، تروجن ہارسز، یا کوئی بھی تخریبی فطرت کی چیز ڈالنا۔" } }, @@ -898,7 +899,7 @@ "heading": "علیٰحدگی پزیری اور دستبرداری:" }, "suspension": { - "body": "اگر ریڈ کراس کو لگتا ہے کہ آپ اے پی آئی یا ڈیٹا فیڈز کے ناجائز استعمال میں مصروف ہیں جیسا کہ اے پی آئی کی شرائط میں واضح کیا گیا ہے یا یہ کہ آپ اے پی آئی یا ڈیٹا فیڈز کا استعمال ایسی سرگرمی میں کر رہے ہیں جو کسی شخص یا ریڈ کراس کے نیٹ ورک کی سلامتی اور\/یا حفاظت کے لیئے خطرہ ہے تو ریڈ کراس اپنی واحد صوابدید میں حق محفوظ رکھتا ہے کہ وہ آپ کی رسائی ختم کر دے۔", + "body": "اگر ریڈ کراس کو لگتا ہے کہ آپ اے پی آئی یا ڈیٹا فیڈز کے ناجائز استعمال میں مصروف ہیں جیسا کہ اے پی آئی کی شرائط میں واضح کیا گیا ہے یا یہ کہ آپ اے پی آئی یا ڈیٹا فیڈز کا استعمال ایسی سرگرمی میں کر رہے ہیں جو کسی شخص یا ریڈ کراس کے نیٹ ورک کی سلامتی اور/یا حفاظت کے لیئے خطرہ ہے تو ریڈ کراس اپنی واحد صوابدید میں حق محفوظ رکھتا ہے کہ وہ آپ کی رسائی ختم کر دے۔", "heading": "معطلی یا خاتمہ:" } }, diff --git a/resources/lang/vi.json b/resources/lang/vi.json index d861dcf..782ae7e 100644 --- a/resources/lang/vi.json +++ b/resources/lang/vi.json @@ -40,7 +40,7 @@ "name": "Tên", "first_name": "Tên", "last_name": "Họ", - "toggle_navigation": "Bật\/tắt điều hướng", + "toggle_navigation": "Bật/tắt điều hướng", "you_are_logged_in": "Bạn đã đăng nhập!", "reset_password": "Cài lại mật khẩu", "set_password": "Cài mật khẩu", @@ -197,13 +197,15 @@ "steps": { "one": { "heading": "Bước 1: Đăng ký", - "body": "Để bắt đầu sử dụng dữ liệu từ API Cơ sở dữ liệu Tin nhắn An toàn, trước tiên {0} vào Cổng thông tin Cơ sở dữ liệu Tin nhắn An toàn.\n\nBạn có thể sử dụng tài khoản Facebook & Google hoặc địa chỉ email để tạo tài khoản.", "create_account_alt": "tạo tài khoản", + "body": "Để bắt đầu sử dụng dữ liệu từ API Cơ sở dữ liệu Tin nhắn An toàn, trước tiên {0} vào Cổng thông tin Cơ sở dữ liệu Tin nhắn An toàn.\n\nBạn có thể sử dụng tài khoản Facebook & Google hoặc địa chỉ email để tạo tài khoản.", + "create_account_alt": "tạo tài khoản", "existing_account": "Nếu bạn đã có tài khoản, hãy {0}.", "login_cta": "đăng nhập", "sign_up_cta": "đăng ký" }, "two": { - "body": "Để sử dụng API, bạn phải tạo một ứng dụng trong Cổng thông tin Cơ sở dữ liệu Tin nhắn An toàn. Hãy cho chúng tôi biết một chút về những gì bạn đang xây dựng.", "create_app_alt": "tạo ứng dụng", + "body": "Để sử dụng API, bạn phải tạo một ứng dụng trong Cổng thông tin Cơ sở dữ liệu Tin nhắn An toàn. Hãy cho chúng tôi biết một chút về những gì bạn đang xây dựng.", + "create_app_alt": "tạo ứng dụng", "heading": "Bước 2: Tạo ứng dụng" }, "three": { @@ -214,7 +216,8 @@ }, "four": { "api_docs_cta": "Tài liệu API", - "body": "API Cơ sở dữ liệu Tin nhắn An toàn sử dụng HTTP(S) và cung cấp các điểm cuối RESTful để lấy dữ liệu đã xuất bản.\n\nMỗi yêu cầu phải được xác thực bằng khóa API được tạo ở bước trước.", "example_title": "Ví dụ yêu cầu", + "body": "API Cơ sở dữ liệu Tin nhắn An toàn sử dụng HTTP(S) và cung cấp các điểm cuối RESTful để lấy dữ liệu đã xuất bản.\n\nMỗi yêu cầu phải được xác thực bằng khóa API được tạo ở bước trước.", + "example_title": "Ví dụ yêu cầu", "heading": "Bước 4: Làm yêu cầu", "moreInfo": "Xem {0} để biết thêm thông tin về tất cả điểm cuối API." } @@ -438,9 +441,9 @@ "immediate": "Ngay lập tức", "warning": "Cảnh báo", "anticipated": "Dự kiến", - "assess_and_plan":"Đánh giá và Lập kế hoạch", - "mitigate_risks":"Giảm thiểu Rủi ro", - "prepare_to_respond":"Chuẩn bị ứng phó", + "assess_and_plan": "Đánh giá và Lập kế hoạch", + "mitigate_risks": "Giảm thiểu Rủi ro", + "prepare_to_respond": "Chuẩn bị ứng phó", "recover": "Phục hồi" }, "content": { @@ -555,7 +558,8 @@ "content_edit_title": "Chỉnh sửa nội dung", "content_add_hazard_title": "Thêm nguy hiểm", "key_message_label": "Tiêu đề tin nhắn chính", - "supporting_message_label": "Tin nhắn hỗ trợ" + "supporting_message_label": "Tin nhắn hỗ trợ", + "mitigate_risk": "Giảm thiểu Rủi ro" }, "message_editor": { "title": "Trình chỉnh sửa Ghi công", @@ -615,7 +619,7 @@ "bad_request_error_codes": { "30001": "Tiêu đề cột không khớp với tiêu bản", "30002": "Tên đặc tính, tin nhắn hoặc url bị thiếu", - "30003": "Đặc tính Url không hợp lệ - hãy đảm bảo rằng giao thức có sẵn, ví dụ: https: \/\/", + "30003": "Đặc tính Url không hợp lệ - hãy đảm bảo rằng giao thức có sẵn, ví dụ: https: //", "40001": "Mã quốc gia không hợp lệ", "40002": "Hiệp hội được chọn không khớp với hiệp hội trong tệp đã chọn", "40003": "Ngày xuất tệp đã chọn không đúng nên không thể hoàn tất việc nhập vào" @@ -686,7 +690,7 @@ }, "landing": { "strapline": "Dịch vụ Cơ sở dữ liệu Tin nhắn An toàn", - "strapline_part_2": "Thông điệp an toàn chính của hội Chữ thập đỏ \/ Trăng lưỡi liềm đỏ toàn cầu", + "strapline_part_2": "Thông điệp an toàn chính của hội Chữ thập đỏ / Trăng lưỡi liềm đỏ toàn cầu", "head_1": "An toàn IFRC", "head_2": "Cơ sở dữ liệu Tin nhắn", "head_text_1": "Tin nhắn an toàn dựa trên Nhận thức Cộng đồng của IFRC và", @@ -741,7 +745,7 @@ "fake_alert_heading": "Cảnh báo cực lạnh", "fake_alert_description": "Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est.", "fake_alert_time": "CÁCH ĐÂY 1 GIỜ", - "fake_alert_time_exact": "05\/02\/2018 lúc 05:15 CT", + "fake_alert_time_exact": "05/02/2018 lúc 05:15 CT", "use_cases": { "heading": "Tìm hiểu thêm", "first_heading": "Cách nó hoạt động", @@ -782,7 +786,7 @@ }, "data_preview": { "heading": "Tin nhắn An toàn", - "sub_heading": "Đăng ký và xem các thông điệp hành động chính của các Hiệp hội quốc gia Chữ thập đỏ \/ Trăng lưỡi liềm đỏ trên toàn thế giới" + "sub_heading": "Đăng ký và xem các thông điệp hành động chính của các Hiệp hội quốc gia Chữ thập đỏ / Trăng lưỡi liềm đỏ trên toàn thế giới" }, "footer": { "terms_conditions": "Điều khoản & điều kiện", @@ -838,10 +842,10 @@ "industries": { "media": "Đa phương tiện", "emergency": "Quản lý khẩn cấp", - "non_profit": "Phi lợi nhuận \/ NGO", + "non_profit": "Phi lợi nhuận / NGO", "humanitarian": "Tổ chức Nhân đạo", - "red_cross": "Chữ thập đỏ \/ Trăng lưỡi liềm đỏ", - "education": "Giáo dục \/ Học viện", + "red_cross": "Chữ thập đỏ / Trăng lưỡi liềm đỏ", + "education": "Giáo dục / Học viện", "gov": "Cơ quan chính phủ", "other": "Khác" }, @@ -856,9 +860,9 @@ "body": "Luật của Đặc khu Columbia sẽ điều chỉnh tất cả các quyền và nghĩa vụ theo Thỏa thuận này, mà không ảnh hưởng đến bất kỳ nguyên tắc xung đột pháp luật nào.", "heading": "Luật áp dụng:" }, - "body": "Bạn có trách nhiệm duy trì tính bí mật và bảo mật của khóa đăng ký do Hội Chữ thập Đỏ cung cấp cho Bạn. Bạn chịu trách nhiệm duy trì khả năng tương thích với API, được cập nhật theo thời gian, để tiếp tục nhận được Nguồn cấp dữ liệu. Hội Chữ thập Đỏ có thể phát hành các phiên bản cập nhật của API và Nguồn cấp dữ liệu theo quyết định riêng của mình. Các phiên bản mới có thể không tương thích với các triển khai trước đó và Bạn đồng ý sử dụng phiên bản cập nhật gần đây nhất của Nguồn cấp dữ liệu.\n\nBạn đồng ý không sửa đổi, phân phối, dịch ngược, tháo rời hoặc thiết kế đối chiếu bất kỳ phần nào của API hoặc bất kỳ phần mềm nào của Hội Chữ thập Đỏ.\n\nBạn không được sử dụng API hoặc Nguồn cấp dữ liệu theo cách vượt quá khối lượng yêu cầu hợp lý hoặc cấu thành việc sử dụng quá mức hoặc lạm dụng, theo quyết định riêng của Hội Chữ thập đỏ.\n\nBạn không được sử dụng API hoặc Nguồn cấp dữ liệu theo cách bất hợp pháp, gây hiểu lầm, cẩu thả, độc hại, có ý định gây hại hoặc gây hại cho Hội Chữ thập đỏ, các nhà cung cấp dịch vụ, nhà cung cấp nội dung của Hội chữ thập đỏ hoặc bất kỳ người nào khác, theo quyết định của Hội Chữ thập Đỏ theo quyết định của riêng mình.\n\n\nChữ thập đỏ có thể giám sát việc sử dụng API và Nguồn cấp dữ liệu của bạn. Bạn không được sử dụng bất kỳ phương tiện kỹ thuật nào để can thiệp vào việc giám sát đó, và Hội Chữ thập đỏ có thể sử dụng các phương tiện kỹ thuật để khắc phục bất kỳ sự can thiệp nào như vậy.\n\nViệc sử dụng các Thông báo Chuẩn bị, Trả lời và Khôi phục sẽ chỉ được trình bày dưới dạng hiện tại hoặc được cập nhật theo cài đặt khẩn cấp hiện tại của Cảnh báo sự kiện tương ứng và bạn sẽ cập nhật các Thông báo Chuẩn bị, Trả lời và Khôi phục riêng lẻ khi có bất kỳ bản cập nhật nào của Nguồn cấp dữ liệu và \/ hoặc Cảnh báo sự kiện tương quan của Hội Chữ thập đỏ.\n\nCác Tin nhắn Soạn thảo, Trả lời và Khôi phục Cá nhân Bạn sử dụng sẽ chỉ được liên kết với khu vực địa lý mà nó được phát hành. Nếu một Thông báo Chuẩn bị, Trả lời và Phục hồi bao gồm tham chiếu đến một nguồn như Hội Chữ thập đỏ Hoa Kỳ hoặc một tổ chức hoặc xã hội quốc gia Chữ thập đỏ hoặc Trăng lưỡi liềm đỏ khác (mỗi một \"Nguồn tham khảo\"), Bạn sẽ bao gồm Tham chiếu Nguồn được liên kết với mỗi Chuẩn bị, Trả lời và Khôi phục Thư ở dạng được cung cấp trong Nguồn cấp dữ liệu. Bạn sẽ không sử dụng thêm bất kỳ Tham chiếu Nguồn nào.\n\nBạn không được dịch Nguồn cấp dữ liệu, Cảnh báo sự kiện và \/ hoặc Chuẩn bị, Trả lời và Khôi phục thông báo sang bất kỳ ngôn ngữ nào khác, sử dụng, chỉnh sửa hoặc sửa đổi hoặc thay đổi (các) ý nghĩa của Nguồn cấp dữ liệu, Cảnh báo sự kiện và \/ hoặc Chuẩn bị, Trả lời và Khôi phục Tin nhắn.\n\nBạn phải đảm bảo rằng Nguồn cấp dữ liệu, vẫn thuộc quyền sở hữu và \/ hoặc quyền kiểm soát duy nhất của bạn.\n\nBạn không thể cho phép Thông báo Sự kiện và Chuẩn bị, Trả lời và Khôi phục Thông báo được gửi đến Người dùng Cuối để kết hợp bất kỳ quảng cáo hoặc tài trợ nào.\n\nBạn không được phép lưu trữ toàn bộ hoặc một phần Nguồn cấp dữ liệu.", + "body": "Bạn có trách nhiệm duy trì tính bí mật và bảo mật của khóa đăng ký do Hội Chữ thập Đỏ cung cấp cho Bạn. Bạn chịu trách nhiệm duy trì khả năng tương thích với API, được cập nhật theo thời gian, để tiếp tục nhận được Nguồn cấp dữ liệu. Hội Chữ thập Đỏ có thể phát hành các phiên bản cập nhật của API và Nguồn cấp dữ liệu theo quyết định riêng của mình. Các phiên bản mới có thể không tương thích với các triển khai trước đó và Bạn đồng ý sử dụng phiên bản cập nhật gần đây nhất của Nguồn cấp dữ liệu.\n\nBạn đồng ý không sửa đổi, phân phối, dịch ngược, tháo rời hoặc thiết kế đối chiếu bất kỳ phần nào của API hoặc bất kỳ phần mềm nào của Hội Chữ thập Đỏ.\n\nBạn không được sử dụng API hoặc Nguồn cấp dữ liệu theo cách vượt quá khối lượng yêu cầu hợp lý hoặc cấu thành việc sử dụng quá mức hoặc lạm dụng, theo quyết định riêng của Hội Chữ thập đỏ.\n\nBạn không được sử dụng API hoặc Nguồn cấp dữ liệu theo cách bất hợp pháp, gây hiểu lầm, cẩu thả, độc hại, có ý định gây hại hoặc gây hại cho Hội Chữ thập đỏ, các nhà cung cấp dịch vụ, nhà cung cấp nội dung của Hội chữ thập đỏ hoặc bất kỳ người nào khác, theo quyết định của Hội Chữ thập Đỏ theo quyết định của riêng mình.\n\n\nChữ thập đỏ có thể giám sát việc sử dụng API và Nguồn cấp dữ liệu của bạn. Bạn không được sử dụng bất kỳ phương tiện kỹ thuật nào để can thiệp vào việc giám sát đó, và Hội Chữ thập đỏ có thể sử dụng các phương tiện kỹ thuật để khắc phục bất kỳ sự can thiệp nào như vậy.\n\nViệc sử dụng các Thông báo Chuẩn bị, Trả lời và Khôi phục sẽ chỉ được trình bày dưới dạng hiện tại hoặc được cập nhật theo cài đặt khẩn cấp hiện tại của Cảnh báo sự kiện tương ứng và bạn sẽ cập nhật các Thông báo Chuẩn bị, Trả lời và Khôi phục riêng lẻ khi có bất kỳ bản cập nhật nào của Nguồn cấp dữ liệu và / hoặc Cảnh báo sự kiện tương quan của Hội Chữ thập đỏ.\n\nCác Tin nhắn Soạn thảo, Trả lời và Khôi phục Cá nhân Bạn sử dụng sẽ chỉ được liên kết với khu vực địa lý mà nó được phát hành. Nếu một Thông báo Chuẩn bị, Trả lời và Phục hồi bao gồm tham chiếu đến một nguồn như Hội Chữ thập đỏ Hoa Kỳ hoặc một tổ chức hoặc xã hội quốc gia Chữ thập đỏ hoặc Trăng lưỡi liềm đỏ khác (mỗi một \"Nguồn tham khảo\"), Bạn sẽ bao gồm Tham chiếu Nguồn được liên kết với mỗi Chuẩn bị, Trả lời và Khôi phục Thư ở dạng được cung cấp trong Nguồn cấp dữ liệu. Bạn sẽ không sử dụng thêm bất kỳ Tham chiếu Nguồn nào.\n\nBạn không được dịch Nguồn cấp dữ liệu, Cảnh báo sự kiện và / hoặc Chuẩn bị, Trả lời và Khôi phục thông báo sang bất kỳ ngôn ngữ nào khác, sử dụng, chỉnh sửa hoặc sửa đổi hoặc thay đổi (các) ý nghĩa của Nguồn cấp dữ liệu, Cảnh báo sự kiện và / hoặc Chuẩn bị, Trả lời và Khôi phục Tin nhắn.\n\nBạn phải đảm bảo rằng Nguồn cấp dữ liệu, vẫn thuộc quyền sở hữu và / hoặc quyền kiểm soát duy nhất của bạn.\n\nBạn không thể cho phép Thông báo Sự kiện và Chuẩn bị, Trả lời và Khôi phục Thông báo được gửi đến Người dùng Cuối để kết hợp bất kỳ quảng cáo hoặc tài trợ nào.\n\nBạn không được phép lưu trữ toàn bộ hoặc một phần Nguồn cấp dữ liệu.", "contact": "Vui lòng liên hệ với Hội Chữ thập đỏ tại {0} nếu có bất kỳ câu hỏi nào liên quan đến API.", - "disclaimer": "API và Nguồn cấp dữ liệu được cung cấp CHỈ CHO CÁC MỤC ĐÍCH VỀ THÔNG TIN VÀ GIÁO DỤC VÀ trên cơ sở 'nguyên trạng' và 'nếu có'. Hội Chữ thập Đỏ không tuyên bố hoặc bảo đảm dưới bất kỳ hình thức nào, rõ ràng hay ngụ ý. Hội chữ thập đỏ từ chối mọi bảo đảm, rõ ràng hay ngụ ý, bao gồm nhưng không giới hạn ở những bảo đảm ngụ ý về khả năng bán được và tính phù hợp cho một mục đích cụ thể. Hội Chữ thập Đỏ và các nhân viên, viên chức, thống đốc và các đại lý và người cấp phép sẽ không chịu trách nhiệm về những thiệt hại dưới bất kỳ hình thức nào phát sinh từ việc sử dụng API, Nguồn cấp dữ liệu, Cảnh báo sự kiện và \/ hoặc Chuẩn bị, Trả lời và Khôi phục Thông báo bao gồm nhưng không giới hạn đối với các thiệt hại trực tiếp, gián tiếp, ngẫu nhiên, trừng phạt và do hậu quả.\n\nHội Chữ thập Đỏ không đảm bảo trình tự, độ chính xác, tính xác thực hoặc tính hoàn chỉnh của API, Nguồn cấp dữ liệu, Cảnh báo sự kiện và \/ hoặc Chuẩn bị, Trả lời và Khôi phục Thông báo và sẽ không chịu trách nhiệm pháp lý dưới bất kỳ hình thức nào đối với Bạn hoặc Người dùng cuối của bạn hoặc bất kỳ bên thứ ba nào bên, bao gồm nhưng không giới hạn, đối với bất kỳ sự chậm trễ, không chính xác, lỗi hoặc thiếu sót nào, liên quan đến API, Nguồn cấp dữ liệu, Cảnh báo sự kiện và \/ hoặc Chuẩn bị, Trả lời và Khôi phục Thông báo được cung cấp dưới đây.", + "disclaimer": "API và Nguồn cấp dữ liệu được cung cấp CHỈ CHO CÁC MỤC ĐÍCH VỀ THÔNG TIN VÀ GIÁO DỤC VÀ trên cơ sở 'nguyên trạng' và 'nếu có'. Hội Chữ thập Đỏ không tuyên bố hoặc bảo đảm dưới bất kỳ hình thức nào, rõ ràng hay ngụ ý. Hội chữ thập đỏ từ chối mọi bảo đảm, rõ ràng hay ngụ ý, bao gồm nhưng không giới hạn ở những bảo đảm ngụ ý về khả năng bán được và tính phù hợp cho một mục đích cụ thể. Hội Chữ thập Đỏ và các nhân viên, viên chức, thống đốc và các đại lý và người cấp phép sẽ không chịu trách nhiệm về những thiệt hại dưới bất kỳ hình thức nào phát sinh từ việc sử dụng API, Nguồn cấp dữ liệu, Cảnh báo sự kiện và / hoặc Chuẩn bị, Trả lời và Khôi phục Thông báo bao gồm nhưng không giới hạn đối với các thiệt hại trực tiếp, gián tiếp, ngẫu nhiên, trừng phạt và do hậu quả.\n\nHội Chữ thập Đỏ không đảm bảo trình tự, độ chính xác, tính xác thực hoặc tính hoàn chỉnh của API, Nguồn cấp dữ liệu, Cảnh báo sự kiện và / hoặc Chuẩn bị, Trả lời và Khôi phục Thông báo và sẽ không chịu trách nhiệm pháp lý dưới bất kỳ hình thức nào đối với Bạn hoặc Người dùng cuối của bạn hoặc bất kỳ bên thứ ba nào bên, bao gồm nhưng không giới hạn, đối với bất kỳ sự chậm trễ, không chính xác, lỗi hoặc thiếu sót nào, liên quan đến API, Nguồn cấp dữ liệu, Cảnh báo sự kiện và / hoặc Chuẩn bị, Trả lời và Khôi phục Thông báo được cung cấp dưới đây.", "entire_agreement": { "body": "Các Điều Khoản này là thỏa thuận cuối cùng, đầy đủ và độc quyền của các bên liên quan đến vấn đề này và thay thế và hợp nhất tất cả các thảo luận trước đó giữa các bên liên quan đến vấn đề này. Hội Chữ thập đỏ có quyền sửa đổi hoặc thu hồi thỏa thuận này bất kỳ lúc nào.", "heading": "Toàn bộ thỏa thuận:" @@ -866,7 +870,7 @@ "heading": "API KẾT THÚC THỎA THUẬN CẤP PHÉP NGƯỜI DÙNG", "intro": "THỎA THUẬN: BẰNG CÁCH SỬ DỤNG DỊCH VỤ HOẶC KIỂM TRA HỘP ĐƯỢC CUNG CẤP, NGƯỜI DÙNG ĐỒNG Ý BỊ TRẢ LẠI THEO THỎA THUẬN NÀY.\n\nAPI là một công cụ cho phép bạn (“Bạn”) truy xuất và sử dụng nguồn cấp dữ liệu do Hội Chữ Thập Đỏ cung cấp, bao gồm nguồn cấp dữ liệu về cảnh báo thời tiết và thảm họa toàn cầu và thông báo xem (“Cảnh báo sự kiện”) và nguồn cấp dữ liệu có thể hành động và theo ngữ cảnh thông báo về cách chuẩn bị đối phó với các mối nguy hiểm cục bộ theo loại nguy cơ và mức độ khẩn cấp (“Chuẩn bị, Phản hồi và Khôi phục Thông báo” và gọi chung là Cảnh báo Sự kiện, “Nguồn cấp dữ liệu”). Thông báo Chuẩn bị, Phản hồi và Khôi phục được tạo ra nhằm mục đích đi kèm với Cảnh báo sự kiện hoặc các cảnh báo và theo dõi khác có kiên quan đến thời tiết hoặc thảm hoạ trong ứng dụng riêng của bạn. Việc sử dụng Nguồn cấp dữ liệu của bạn được quản lý bởi các điều khoản API.", "license_limitations": { - "body": "Bạn chỉ có thể sử dụng Nguồn cấp dữ liệu liên quan đến ứng dụng của bạn được quản lý bới các điều khoản API, và miễn là bạn duy trì khả năng tương thích với API được cập nhật theo thời gian. \nBạn được cấp một quyền không độc quyền, có giới hạn và có thể thu hồi để tải về, sử dụng và phân phát đến người dùng ứng dụng chính của bạn (\"Người dùng chính\") những Thông tin Cảnh báo và những ngữ cảnh có liên quan đến việc Chuẩn bị, Phản hồi và Khôi phục liên quan đến thiết lập khẩn cấp của Cảnh báo Sự kiện cá nhân từ Nguồn cung cấp dữ liệu, tuân theo điểu khoản API. Bạn chỉ có thể sử dụng API để sử dụng Nguồn cung cấp dữ liệu cho các mục đích phi thương mại phù hợp với các điều khoản của API. Trong bất kỳ trường hợp nào, bạn không được dùng API để sử dụng Nguồn cung cấp dữ liệu, Thông tin cảnh báo, hoặc\/và tin nhắn Chuẩn bị, Phản hồi và Khôi phục cho mục đích thương mại, bao gồm nhưng không giới hạn, bán lại, tính phí để truy cập, phân phối hoặc tạo ra các tác phẩm khác dựa nào nó. Hội Chữ Thập Đỏ và người cấp phép của Hội duy trì tất cả chứng thư, quyền sở hữu, quyền và lợi ích trong và đối với API, tin nhắn Chuẩn bị, Phản hồi và Khôi phục, Thông tin cảnh báo, Nguồn cung cấp dữ liệu, và Nguồn Tham Khảo (như được định nghĩa bên dưới). \nTất cả các quyền không được cung cấp rõ ràng đều được bảo lưu.", + "body": "Bạn chỉ có thể sử dụng Nguồn cấp dữ liệu liên quan đến ứng dụng của bạn được quản lý bới các điều khoản API, và miễn là bạn duy trì khả năng tương thích với API được cập nhật theo thời gian. \nBạn được cấp một quyền không độc quyền, có giới hạn và có thể thu hồi để tải về, sử dụng và phân phát đến người dùng ứng dụng chính của bạn (\"Người dùng chính\") những Thông tin Cảnh báo và những ngữ cảnh có liên quan đến việc Chuẩn bị, Phản hồi và Khôi phục liên quan đến thiết lập khẩn cấp của Cảnh báo Sự kiện cá nhân từ Nguồn cung cấp dữ liệu, tuân theo điểu khoản API. Bạn chỉ có thể sử dụng API để sử dụng Nguồn cung cấp dữ liệu cho các mục đích phi thương mại phù hợp với các điều khoản của API. Trong bất kỳ trường hợp nào, bạn không được dùng API để sử dụng Nguồn cung cấp dữ liệu, Thông tin cảnh báo, hoặc/và tin nhắn Chuẩn bị, Phản hồi và Khôi phục cho mục đích thương mại, bao gồm nhưng không giới hạn, bán lại, tính phí để truy cập, phân phối hoặc tạo ra các tác phẩm khác dựa nào nó. Hội Chữ Thập Đỏ và người cấp phép của Hội duy trì tất cả chứng thư, quyền sở hữu, quyền và lợi ích trong và đối với API, tin nhắn Chuẩn bị, Phản hồi và Khôi phục, Thông tin cảnh báo, Nguồn cung cấp dữ liệu, và Nguồn Tham Khảo (như được định nghĩa bên dưới). \nTất cả các quyền không được cung cấp rõ ràng đều được bảo lưu.", "heading": "Giấy phép và những điều khoản hạn chế:" }, "overview": { @@ -885,17 +889,17 @@ "two": "Phá vỡ hoặc sửa đổi bất kỳ mã khóa hoặc cơ chế bảo mật được sử dụng bởi Hội Chữ Thập Đỏ hoặc API, bao gồm nhưng không giới hạn bất kỳ công nghệ xác thực nào.", "three": "Yêu cầu, thu thập, gạ gẫm để có được quyền truy cập vào tên đăng nhập, mật khẩu và những thông tin xác thực khác của Hội Chữ Thập Đỏ ngoài những gì được cung cấp cho Bạn và tài khoản của bạn.", "four": "Tuyên bố hoặc ngụ ý rằng bạn có liên kết, được tài trợ hoặc ủng hội bởi Hội Chữ Thập Đỏ hoặc những cộng đồng quốc qua và tổ chức của Hội Chữ Thập Đỏ và Trăng Lưỡi Liềm.", - "five": "Tuyên bố hoặc ngụ ý rằng bạn sở hữu hoặc tạo ra API, Nguồn cấp dữ liệu, Cảnh báo sự kiện hoặc\/và những tin nhắn Chuẩn bị, Phản hồi và Khôi phục.", + "five": "Tuyên bố hoặc ngụ ý rằng bạn sở hữu hoặc tạo ra API, Nguồn cấp dữ liệu, Cảnh báo sự kiện hoặc/và những tin nhắn Chuẩn bị, Phản hồi và Khôi phục.", "six": "Truyền tải virus, sâu máy tính, Trojan, hoặc bất kỳ phần tử có tính chất gây hại nào." } }, - "reserve_rights": "Hội Chữ Thập Đỏ có quyền thay đổi hoặc\/và ngừng cung cấp một phần hoặc toàn bộ API và Nguồn cấp dữ liệu, tạm thời hoặc vĩnh viễn mà không cần thông báo trước. Để tránh nghi ngờ, Hội Chữ Thập Đỏ không có nghĩa vụ phải cung cấp API và Nguồn cấp dữ liệu cho Bạn, và Bạn hiểu và chấp thuận rằng quyền truy cập thuộc quyền quyết định duy nhất và tuyệt đối của Hội Chữ Thập Đỏ", + "reserve_rights": "Hội Chữ Thập Đỏ có quyền thay đổi hoặc/và ngừng cung cấp một phần hoặc toàn bộ API và Nguồn cấp dữ liệu, tạm thời hoặc vĩnh viễn mà không cần thông báo trước. Để tránh nghi ngờ, Hội Chữ Thập Đỏ không có nghĩa vụ phải cung cấp API và Nguồn cấp dữ liệu cho Bạn, và Bạn hiểu và chấp thuận rằng quyền truy cập thuộc quyền quyết định duy nhất và tuyệt đối của Hội Chữ Thập Đỏ", "severability": { "body": "\nTính không hợp lệ của bất kỳ điều khoản nào của Điều khoản API sẽ không ảnh hưởng đến hiệu lực của bất kỳ điều khoản nào khác", "heading": "Hiệu lực pháp lý và Quyền tự bỏ kiện tụng:" }, "suspension": { - "body": "Hội Chữ Thập Đỏ có quyền đình chỉ hoặc chấm dứt quyền truy cập của bạn nếu Hội Chữ Thập Đỏ xác định, quyền quyết địch duy nhất của Hội Chữ Thập Đỏ, là Bạn đang tham gia vào việc sử dụng trái phép các API hoặc Nguồn cung cấp dữ liệu như được nêu trong các điều khoản API hoặc Bạn đang sử dụng API hoặc Nguồn cung cấp dữ liệu trong bất kỳ hoạt động đe dọa \/ xâm phạm đến sự an toàn hoặc\/và bảo mật của bất kỳ người nào hoặc của mạng lưới Chữ Thập Đỏ", + "body": "Hội Chữ Thập Đỏ có quyền đình chỉ hoặc chấm dứt quyền truy cập của bạn nếu Hội Chữ Thập Đỏ xác định, quyền quyết địch duy nhất của Hội Chữ Thập Đỏ, là Bạn đang tham gia vào việc sử dụng trái phép các API hoặc Nguồn cung cấp dữ liệu như được nêu trong các điều khoản API hoặc Bạn đang sử dụng API hoặc Nguồn cung cấp dữ liệu trong bất kỳ hoạt động đe dọa / xâm phạm đến sự an toàn hoặc/và bảo mật của bất kỳ người nào hoặc của mạng lưới Chữ Thập Đỏ", "heading": "Quyền đình chỉ hoặc thu hồi giấy phép:" } }, diff --git a/resources/lang/zh.json b/resources/lang/zh.json index 3bd651f..5f255ce 100644 --- a/resources/lang/zh.json +++ b/resources/lang/zh.json @@ -236,25 +236,25 @@ }, "languages": { "am": "አማርኛ", - "ar": "阿拉伯语\/عربى", + "ar": "阿拉伯语/عربى", "bn": "বাংলা", "de": "Deutsch", - "en": "英语\/English", - "es": "西班牙语\/Español", - "fr": "法语\/Français", + "en": "英语/English", + "es": "西班牙语/Español", + "fr": "法语/Français", "ht": "Kreyòl", - "id": "印度尼西亚语\/bahasa Indonesia", + "id": "印度尼西亚语/bahasa Indonesia", "it": "Italiano", "ja": "日本語", "my": "ဗမာ", "ne": "नेपाली", - "pt": "葡萄牙语\/\nPortuguês (UE)", - "ru": "俄语\/русский", + "pt": "葡萄牙语/\nPortuguês (UE)", + "ru": "俄语/русский", "rw": "Ikinyarwanda", "sw": "Kiswahili", "th": "ภาษาไทย", "tr": "Türkçe", - "ur": "乌尔都语\/اردو", + "ur": "乌尔都语/اردو", "vi": "Tiếng Việt" }, "sidebar": { @@ -441,9 +441,9 @@ "immediate": "立即", "warning": "警告", "anticipated": "预期", - "assess_and_plan":"评估与计划", - "mitigate_risks":"降低风险", - "prepare_to_respond":"准备回应", + "assess_and_plan": "评估与计划", + "mitigate_risks": "降低风险", + "prepare_to_respond": "准备回应", "recover": "恢复" }, "content": { @@ -526,7 +526,7 @@ "seasonalForecast_extra": "季节性预报是声明所預測到的危险事件。所采取的措施是评估潜在风险并计划旨在降低风险和保护家庭的活动。", "watch": "观察", "watch_help": "准备回应", - "watch_extra": "当危险事件的风险显着增加,但其发生,位置和\/或时间仍不确定时,将发出预警。目的是为保护措施和准备响应提供足够的时间。", + "watch_extra": "当危险事件的风险显着增加,但其发生,位置和/或时间仍不确定时,将发出预警。目的是为保护措施和准备响应提供足够的时间。", "warning": "警告", "warning_help": "准备回应", "warning_extra": "当危险事件正在发生,迫在眉睫或极有可能发生时,发出警告。这意味着事态对生命或财产构成威胁。处于危险中的人们需要采取保护措施。", @@ -558,7 +558,8 @@ "content_edit_title": "内容编辑", "content_add_hazard_title": "添加危害", "key_message_label": "关键信息标题", - "supporting_message_label": "支持信息" + "supporting_message_label": "支持信息", + "mitigate_risk": "降低风险" }, "message_editor": { "title": "署名编辑", @@ -618,7 +619,7 @@ "bad_request_error_codes": { "30001": "列标题与模板不匹配", "30002": "属性名称,消息或网址缺失", - "30003": "无效的网址属性-请确保規程存在,例如https:\/\/", + "30003": "无效的网址属性-请确保規程存在,例如https://", "40001": "无效的国家代码", "40002": "所选的社团与所选文件的社团不匹配", "40003": "所选文件的导出日期格式不正确,导入无法完成" @@ -689,7 +690,7 @@ }, "landing": { "strapline": "安全信息数据库服务", - "strapline_part_2": "全球红十字会\/红新月会重要安全信息", + "strapline_part_2": "全球红十字会/红新月会重要安全信息", "head_1": "红十字与红新月联会安全", "head_2": "信息数据库", "head_text_1": "基于红十字与红新月联会《公众意识与安全》的安全信息", @@ -744,7 +745,7 @@ "fake_alert_heading": "极寒警告", "fake_alert_description": "但这需要简单和容易的区分。争取自由时我们的力量。", "fake_alert_time": "一小时前", - "fake_alert_time_exact": "05\/02\/18于05:15中部时间", + "fake_alert_time_exact": "05/02/18于05:15中部时间", "use_cases": { "heading": "了解更多", "first_heading": "如何运作", @@ -785,7 +786,7 @@ }, "data_preview": { "heading": "安全信息", - "sub_heading": "注册并查看来自世界各地的红十字会\/红新月会的主要行动消息" + "sub_heading": "注册并查看来自世界各地的红十字会/红新月会的主要行动消息" }, "footer": { "terms_conditions": "条款及细则", @@ -836,15 +837,15 @@ "industry": "行业领域", "create_account": "创建帐户", "last_name": "姓", - "select_country": "选择国家\/地区", + "select_country": "选择国家/地区", "select_industry": "选择行业", "industries": { "media": "媒体", "emergency": "应急管理", - "non_profit": "非营利\/非政府组织", + "non_profit": "非营利/非政府组织", "humanitarian": "人道主义援助组织", "red_cross": "红十字会和红新月会运动", - "education": "教育\/学术界", + "education": "教育/学术界", "gov": "官方机关", "other": "其他" }, @@ -859,9 +860,9 @@ "body": "哥伦比亚特区的法律适用于本协议项下的所有权利和义务,但不适用任何法律冲突原则。", "heading": "适用法律:" }, - "body": "您有责任维护红十字会向您提供的注册密钥的机密性和安全性。您有责任保持与API的兼容性,如不时更新,以继续接收数据提要。红十字会可自行决定发布API和数据提要的更新版本。新版本可能与以前的实现不兼容,您同意在任何时候使用数据提要的最新更新版本。您同意不修改、分发、反编译、反汇编或反向工程API的任何部分或红十字会的任何软件。您不得以超出合理要求量的方式使用API或数据提要,或构成由红十字会自行决定的过度或滥用使用。您不得以非法、误导、疏忽、恶意、意图造成伤害的方式使用API或数据提要,或红十字会根据其自行决定的方式伤害红十字会、其服务提供商、其内容提供商或任何其他人士。红十字会可能会监控您使用API和数据提要。您不得使用任何技术手段干扰这种监测,红十字会可以使用技术手段克服任何这种干扰。“准备”、“响应”和“恢复”消息的使用应仅以当前或更新到相关事件警报的当前紧急设置为准,并且您应在红十字会更新任何数据源和\/或相关事件警报时更新个人“准备”、“响应”和“恢复”消息。您使用的个人准备、响应和恢复消息应仅与发布该消息的地理区域相关联。如果准备、响应和恢复消息包含一个引用来源,如美国红十字会或另一个红十字会或红新月会国家社会或组织(每一个“源引用”),您应包括源引用与每个相关准备、响应和恢复消息的形式提供的数据提要。你不得再使用任何参考资料。您不得将“数据提要”、“事件警报”和\/或“准备、响应和恢复消息”翻译成任何其他语言,不得使用、编辑或修订或更改“数据提要”、“事件警报”和\/或“准备、响应和恢复消息”的含义。您必须确保本资料源由您单独拥有和\/或控制。您不得允许发送给最终用户的“事件警报”和“准备、响应和恢复消息”包含任何广告或赞助。您不可以对全部或部分数据提要进行任何存档。", + "body": "您有责任维护红十字会向您提供的注册密钥的机密性和安全性。您有责任保持与API的兼容性,如不时更新,以继续接收数据提要。红十字会可自行决定发布API和数据提要的更新版本。新版本可能与以前的实现不兼容,您同意在任何时候使用数据提要的最新更新版本。您同意不修改、分发、反编译、反汇编或反向工程API的任何部分或红十字会的任何软件。您不得以超出合理要求量的方式使用API或数据提要,或构成由红十字会自行决定的过度或滥用使用。您不得以非法、误导、疏忽、恶意、意图造成伤害的方式使用API或数据提要,或红十字会根据其自行决定的方式伤害红十字会、其服务提供商、其内容提供商或任何其他人士。红十字会可能会监控您使用API和数据提要。您不得使用任何技术手段干扰这种监测,红十字会可以使用技术手段克服任何这种干扰。“准备”、“响应”和“恢复”消息的使用应仅以当前或更新到相关事件警报的当前紧急设置为准,并且您应在红十字会更新任何数据源和/或相关事件警报时更新个人“准备”、“响应”和“恢复”消息。您使用的个人准备、响应和恢复消息应仅与发布该消息的地理区域相关联。如果准备、响应和恢复消息包含一个引用来源,如美国红十字会或另一个红十字会或红新月会国家社会或组织(每一个“源引用”),您应包括源引用与每个相关准备、响应和恢复消息的形式提供的数据提要。你不得再使用任何参考资料。您不得将“数据提要”、“事件警报”和/或“准备、响应和恢复消息”翻译成任何其他语言,不得使用、编辑或修订或更改“数据提要”、“事件警报”和/或“准备、响应和恢复消息”的含义。您必须确保本资料源由您单独拥有和/或控制。您不得允许发送给最终用户的“事件警报”和“准备、响应和恢复消息”包含任何广告或赞助。您不可以对全部或部分数据提要进行任何存档。", "contact": "如有任何有关API的问题,请致电{0}与红十字会联系。", - "disclaimer": "本网站提供的API和数据仅供参考和教育用途,并在“现有”和“可用”的基础上提供。红十字会不作任何明示或默示的陈述或保证。红十字会不提供任何明示或暗示的保证,包括但不限于有关适销性和适合某一特定用途的暗示保证。红十字会及其员工、高级职员、理事、代理和许可人不承担因使用API、数据传送、事件警报和\/或准备、响应和恢复信息(包括但不限于直接、间接、附带、惩罚性和相应的损害赔偿)。红十字会并不保证序列、准确性、真实性和完整性的API、数据提要、事件警报和\/或准备、回应、和恢复信息;不得承担责任以任何方式对你或你的最终用户或任何第三方,包括但不限于,任何延迟、不准确、错误或遗漏。", + "disclaimer": "本网站提供的API和数据仅供参考和教育用途,并在“现有”和“可用”的基础上提供。红十字会不作任何明示或默示的陈述或保证。红十字会不提供任何明示或暗示的保证,包括但不限于有关适销性和适合某一特定用途的暗示保证。红十字会及其员工、高级职员、理事、代理和许可人不承担因使用API、数据传送、事件警报和/或准备、响应和恢复信息(包括但不限于直接、间接、附带、惩罚性和相应的损害赔偿)。红十字会并不保证序列、准确性、真实性和完整性的API、数据提要、事件警报和/或准备、回应、和恢复信息;不得承担责任以任何方式对你或你的最终用户或任何第三方,包括但不限于,任何延迟、不准确、错误或遗漏。", "entire_agreement": { "body": "API条款构成了红十字会与您之间关于本协议主题事项的完整和排他性协议,并取代所有先前的口头或书面谅解、沟通或协议,这些协议未在本协议中明确纳入。红十字会保留随时修改或撤销此协议的权利。", "heading": "完整协议:" @@ -869,7 +870,7 @@ "heading": "API最终用户许可协议", "intro": "同意:用户使用本服务或勾选所提供的方框,即表示同意受本协议约束。API是一个工具,它允许您(“你”)来检索和使用数据提提要供红十字会包括一个提要全球天气和灾难事件的预警和看通知(“事件警报”)和可操作的、更符合实际的消息如何准备当地的灾害风险类型和紧迫性(“准备、回应、和恢复消息”,以及与事件警报一起的“数据提要”)。在您個人的应用中,准备、回应和信息的恢复應用于警报事件或其他警告,和用於與天气和灾难事件相關的监察通知。您对数据傳送的使用受API条款的監管。", "license_limitations": { - "body": "若果你想將你的應用程序和數據傳送一起使用,你必須謹遵API条款,並確保您与API的兼容性是與時並進的。根据API条款,您被授予非独家的,有限的和可撤销的权利去下载自己程序的警报事件和与数据传送中各个事件警报的紧急设置相关的信息的准备,回应和恢复,你可以使用它,复制它和发放给你的使用者(\"用户端\")。根据API条款,您只能将API用于非商业用途的數據傳送。在任何情况下,您都不得使用API促进数据傳送、事件提醒和\/或准备、回应和恢复消息的商业使用,包括但不限于转售、访问收费、轉發收费或基于此而衍生的服務的收费。红十字会及其许可方保留对API的名称,所有权,权利, 利益。准备, 回应信息,紧急事件,数据傳送和引用的恢复。保留所有未明确授予的权利。", + "body": "若果你想將你的應用程序和數據傳送一起使用,你必須謹遵API条款,並確保您与API的兼容性是與時並進的。根据API条款,您被授予非独家的,有限的和可撤销的权利去下载自己程序的警报事件和与数据传送中各个事件警报的紧急设置相关的信息的准备,回应和恢复,你可以使用它,复制它和发放给你的使用者(\"用户端\")。根据API条款,您只能将API用于非商业用途的數據傳送。在任何情况下,您都不得使用API促进数据傳送、事件提醒和/或准备、回应和恢复消息的商业使用,包括但不限于转售、访问收费、轉發收费或基于此而衍生的服務的收费。红十字会及其许可方保留对API的名称,所有权,权利, 利益。准备, 回应信息,紧急事件,数据傳送和引用的恢复。保留所有未明确授予的权利。", "heading": "许可和限制:" }, "overview": { @@ -888,17 +889,17 @@ "two": "规避或修改红十字会或API所使用的任何密钥或安全机制,包括但不限于任何身份验证技术。", "three": "请求、收集、恳求或以其他方式获取红十字会的登录名、密码或其他身份验证凭证,而不是为您自己的帐户提供的。", "four": "声明或暗示红十字会或任何其他红十字会或红新月会国家协会或组织的隶属关系、赞助或认可。", - "five": "声明或暗示您拥有或创建了API、数据傳送、事件警报和\/或准备、响应和恢复信息。", + "five": "声明或暗示您拥有或创建了API、数据傳送、事件警报和/或准备、响应和恢复信息。", "six": "传播任何病毒、蠕虫缺陷、特洛伊木马或任何具有破坏性的東西。" } }, - "reserve_rights": "红十字会保留随时更改和\/或不再提供全部或部分API和数据傳送的权利,暂时或永久,无需事先通知。为免生疑义,本协议没有义务要求红十字会向您提供API或数据傳送,您同意并承认,红十字会有权自行决定对其进行任何访问。", + "reserve_rights": "红十字会保留随时更改和/或不再提供全部或部分API和数据傳送的权利,暂时或永久,无需事先通知。为免生疑义,本协议没有义务要求红十字会向您提供API或数据傳送,您同意并承认,红十字会有权自行决定对其进行任何访问。", "severability": { "body": "API条款的任何条款或规定的无效不影响任何其他条款的效力。", "heading": "可分割性和豁免:" }, "suspension": { - "body": "如果红十字会認為您如API条款所提及的在未经授权的情况下使用API或数据傳送,或您在任何活动中使用API或数据提要威胁\/损害任何人或红十字会网络的安全和\/或安全,紅十字會將保留暂停或终止您的访问的权利。", + "body": "如果红十字会認為您如API条款所提及的在未经授权的情况下使用API或数据傳送,或您在任何活动中使用API或数据提要威胁/损害任何人或红十字会网络的安全和/或安全,紅十字會將保留暂停或终止您的访问的权利。", "heading": "暂停或终止:" } }, @@ -994,7 +995,7 @@ "role": "角色", "society": "社会", "date": "日期", - "country": "国家\/地区", + "country": "国家/地区", "email": "电子邮件", "created_at": "创建于", "last_logged_in_at": "最近登录", diff --git a/resources/lang/zh_CN.json b/resources/lang/zh_CN.json index 910eb91..ce42967 100644 --- a/resources/lang/zh_CN.json +++ b/resources/lang/zh_CN.json @@ -441,9 +441,9 @@ "immediate": "立即", "warning": "警告", "anticipated": "预期", - "assess_and_plan":"评估与计划", - "mitigate_risks":"降低风险", - "prepare_to_respond":"准备回应", + "assess_and_plan": "评估与计划", + "mitigate_risks": "降低风险", + "prepare_to_respond": "准备回应", "recover": "恢复" }, "content": { @@ -526,7 +526,7 @@ "seasonalForecast_extra": "季節預報是對災害事件的預測聲明。所採取的行動包括評估潛在的風險和計劃活動,為了減低風險和保護家人。", "watch": "關注", "watch_help": "準備好回應", - "watch_extra": "當災害事件的風險顯著增加,但其發生、地點和\/或時間仍不確定時,就會發佈警報。其目的是為保護行動和應對準備提供足夠的時間。", + "watch_extra": "當災害事件的風險顯著增加,但其發生、地點和/或時間仍不確定時,就會發佈警報。其目的是為保護行動和應對準備提供足夠的時間。", "warning": "警告", "warning_help": "準備好回應", "warning_extra": "当災害事件正在发生、即将发生或发生概率很高时,将发出警告。這意味著情況對生命或財產構成威脅。在這災害帶上的人們需要採取保護措施。", @@ -558,7 +558,8 @@ "content_edit_title": "内容编辑", "content_add_hazard_title": "添加危害", "key_message_label": "关键信息标题", - "supporting_message_label": "支持信息" + "supporting_message_label": "支持信息", + "mitigate_risk": "降低风险" }, "message_editor": { "title": "署名编辑", @@ -618,7 +619,7 @@ "bad_request_error_codes": { "30001": "欄目標題與範本不一致", "30002": "標題屬性、資訊或網址缺失", - "30003": "無效的網址屬性 - 請確保規程的存在,例如:https:\/\/", + "30003": "無效的網址屬性 - 請確保規程的存在,例如:https://", "40001": "提供的國家代碼無效", "40002": "所選社群與選定檔案的社群不匹配", "40003": "所選文件匯出的日期格式不正確,導入無法完成" @@ -744,7 +745,7 @@ "fake_alert_heading": "極端寒冷警告", "fake_alert_description": "Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est.", "fake_alert_time": "一小時前", - "fake_alert_time_exact": "05\/02\/18 05:15美國中部時間", + "fake_alert_time_exact": "05/02/18 05:15美國中部時間", "use_cases": { "heading": "了解更多", "first_heading": "運作方式", @@ -785,7 +786,7 @@ }, "data_preview": { "heading": "安全信息", - "sub_heading": "註冊並查看來自世界各地紅十字會\/紅新月會的關鍵行動資訊" + "sub_heading": "註冊並查看來自世界各地紅十字會/紅新月會的關鍵行動資訊" }, "footer": { "terms_conditions": "條款 & 條件", @@ -843,8 +844,8 @@ "emergency": "緊急應變管理", "non_profit": "非牟利機構 (Non Profit)", "humanitarian": "人道主義組織", - "red_cross": "紅十字會\/紅新月會", - "education": "教育\/學術機構", + "red_cross": "紅十字會/紅新月會", + "education": "教育/學術機構", "gov": "政府委托的代理機構", "other": "其他" }, @@ -859,9 +860,9 @@ "body": "本協議項下的所有權利和義務均受哥倫比亞特區法律的管轄,但不適用任何法律衝突原則。", "heading": "適用法律:" }, - "body": "您有責任維護紅十字會提供給您的註冊要鑰的保密性和安全性。你有責任保持與API的相容性,並不時進行更新,以便繼續接收數據源。紅十字會可自主決定發佈API和數據源的更新版本。新版本可能與之前的履行不相容,您同意在任何時候使用數據源的最新更新版本。你同意不對API的任何部分或紅十字會的任何軟體進行修改、分發、反編譯、反彙編或反向工程。你不得以超出合理請求量或構成過度或濫用的方式使用API或資料饋送,情形由紅十字會自主決定。你不得以非法、誤導、疏忽、惡意、意圖造成傷害或傷害紅十字會、其服務供應商、其內容供應商或任何其他人士的方式使用API或数据源,情形由紅十字會自主決定。紅十字會可能會監測你對API和数据源的使用情況。您不得使用任何技術手段干擾這種監察,紅十字會可以使用技術手段攻克任何這種干擾。準備、回應和恢復信息使用應僅以當前或更新到相關事件警報的當前緊急設置為准,並且您應在紅十字會更新任何資料來源和\/或相關事件警報時更新個人準備、回應和恢復信息。您所使用的個人\n準備、回應和恢復信息應只與它所發佈的地理區域相關聯。如果準備、回應和恢復信息包含一個引用來源,如美國紅十字會,或另一個紅十字會,或紅新月會國家社會團體或組織(此為,每一個“資料來源參考” ),您應在資料源所提供的格式中包括每個相關準備、回應和恢復信息相關聯的資料來源參考。您不得再进一步使用任何參考資料來源。您不得將“資料源”、“事件警報”和\/或“準備、回應和恢復信息”翻譯成任何其他語言,不得對 “ 資料源”、“事件警報”和\/或“準備、回應和恢復信息”進行任何使用、編輯或修訂,或改變其含義。您必須確保資料饋送仍由您獨自擁有和\/或控制。您不得允許向用戶端發送的事件警報和準備、回應和恢復信息包含任何廣告或贊助\n\n您不可以對全部或部分資料饋送進行任何存檔。", + "body": "您有責任維護紅十字會提供給您的註冊要鑰的保密性和安全性。你有責任保持與API的相容性,並不時進行更新,以便繼續接收數據源。紅十字會可自主決定發佈API和數據源的更新版本。新版本可能與之前的履行不相容,您同意在任何時候使用數據源的最新更新版本。你同意不對API的任何部分或紅十字會的任何軟體進行修改、分發、反編譯、反彙編或反向工程。你不得以超出合理請求量或構成過度或濫用的方式使用API或資料饋送,情形由紅十字會自主決定。你不得以非法、誤導、疏忽、惡意、意圖造成傷害或傷害紅十字會、其服務供應商、其內容供應商或任何其他人士的方式使用API或数据源,情形由紅十字會自主決定。紅十字會可能會監測你對API和数据源的使用情況。您不得使用任何技術手段干擾這種監察,紅十字會可以使用技術手段攻克任何這種干擾。準備、回應和恢復信息使用應僅以當前或更新到相關事件警報的當前緊急設置為准,並且您應在紅十字會更新任何資料來源和/或相關事件警報時更新個人準備、回應和恢復信息。您所使用的個人\n準備、回應和恢復信息應只與它所發佈的地理區域相關聯。如果準備、回應和恢復信息包含一個引用來源,如美國紅十字會,或另一個紅十字會,或紅新月會國家社會團體或組織(此為,每一個“資料來源參考” ),您應在資料源所提供的格式中包括每個相關準備、回應和恢復信息相關聯的資料來源參考。您不得再进一步使用任何參考資料來源。您不得將“資料源”、“事件警報”和/或“準備、回應和恢復信息”翻譯成任何其他語言,不得對 “ 資料源”、“事件警報”和/或“準備、回應和恢復信息”進行任何使用、編輯或修訂,或改變其含義。您必須確保資料饋送仍由您獨自擁有和/或控制。您不得允許向用戶端發送的事件警報和準備、回應和恢復信息包含任何廣告或贊助\n\n您不可以對全部或部分資料饋送進行任何存檔。", "contact": "如有任何關於API的問題,請聯繫紅十字會,電話:{0}。", - "disclaimer": "API和資料僅供參考和教育用途,並在“現有”和“可用” 的基礎上提供。紅十字會不做任何形式的明示或暗示的陳述或保證。紅十字會不提供任何明示或暗示的保證,包括但不限於有關適銷性和某一特定用途的適用性的暗示保證。紅十字會及其員工、高級職員、理事、代理和許可人不承擔因使用API、資料傳送、事件警報和\/或準備、回應和恢復信息而產生的任何類型(包括但不限於直接、間接、附帶、懲罰性和相應的)損害賠償。紅十字會不保證API、資料來源、事件警報和\/或準備、回應和恢復資訊的順序、準確性、真實性或完整性,並且不以任何方式對您或您的最終用戶或任何協力廠商負責,包括但不限於就 API、資料來源、事件警報和\/或準備、回應和恢復信息提供的任何延誤、不準確、錯誤或遺漏。", + "disclaimer": "API和資料僅供參考和教育用途,並在“現有”和“可用” 的基礎上提供。紅十字會不做任何形式的明示或暗示的陳述或保證。紅十字會不提供任何明示或暗示的保證,包括但不限於有關適銷性和某一特定用途的適用性的暗示保證。紅十字會及其員工、高級職員、理事、代理和許可人不承擔因使用API、資料傳送、事件警報和/或準備、回應和恢復信息而產生的任何類型(包括但不限於直接、間接、附帶、懲罰性和相應的)損害賠償。紅十字會不保證API、資料來源、事件警報和/或準備、回應和恢復資訊的順序、準確性、真實性或完整性,並且不以任何方式對您或您的最終用戶或任何協力廠商負責,包括但不限於就 API、資料來源、事件警報和/或準備、回應和恢復信息提供的任何延誤、不準確、錯誤或遺漏。", "entire_agreement": { "body": "API條款構成紅十字會與您之間關於本協定主題事項的完整和排他性協議,並取代所有先前的口頭或書面諒解、溝通或在此未具體納入的協議。公司保留隨時修改本政策的權利,恕不另行通知。", "heading": "完整協議:" @@ -869,7 +870,7 @@ "heading": "API終端使用者授權合約", "intro": "同意:通過使用服務或勾選所提供的方框,使用者同意接受本協議的約束。API是一個工具,允許您(“您”)檢索和使用紅十字會提供的資料源,包括資訊饋送全球天氣和災害事件警告和觀察通知(“事件警報”),以及關於如何按災害類型和緊急程度準備應對當地災害的可操作和背景化資訊 (“準備、回應和恢復信息”,與事件警報合稱“資料源”)。準備、回應和恢復信息是計畫與事件警報和您手機上的其他天氣及災難警示軟體共同工作。您對資料來源的使用會被API條款所約束。", "license_limitations": { - "body": "在您遵守不斷更新的API條款的前提下,您僅可以使用資料來源與您自己的受API條款限制的應用進行交互。在API條款的約束下和個人事件警報的資料來源緊急設定下,您被給予非獨享、有限的和可被撤回的權力去下載、使用、複製和傳播給您的應用軟體的終端使用者(“終端使用者”)事件警報和相關的準備、回應和恢復信息。在API條款的約束下,您僅可以以非商業目的使用數據源服務。在任何情況下,您不可以使用數據源、事件警報和\/或準備、回應和恢復信息以服務非商業目的包括但不限於二次出售他們,收費以訪問他們,收費以分發他們或收費以製作基於他們的衍生產品。紅十字會和其許可人保留API、準備、回應和恢復信息、事件警報、數據源和參考源(如上文所定義)中的一切稱謂、所有權、權利和利益。本節未明確授予之權力皆為協會所保留。", + "body": "在您遵守不斷更新的API條款的前提下,您僅可以使用資料來源與您自己的受API條款限制的應用進行交互。在API條款的約束下和個人事件警報的資料來源緊急設定下,您被給予非獨享、有限的和可被撤回的權力去下載、使用、複製和傳播給您的應用軟體的終端使用者(“終端使用者”)事件警報和相關的準備、回應和恢復信息。在API條款的約束下,您僅可以以非商業目的使用數據源服務。在任何情況下,您不可以使用數據源、事件警報和/或準備、回應和恢復信息以服務非商業目的包括但不限於二次出售他們,收費以訪問他們,收費以分發他們或收費以製作基於他們的衍生產品。紅十字會和其許可人保留API、準備、回應和恢復信息、事件警報、數據源和參考源(如上文所定義)中的一切稱謂、所有權、權利和利益。本節未明確授予之權力皆為協會所保留。", "heading": "授權與限制:" }, "overview": { @@ -888,17 +889,17 @@ "two": "繞開或修改紅十字會或API使用的任何密鑰和安全設置,包括但不限於任何認證技術。", "three": "要求、收集、請求或使用其他方式獲取非紅十字會提供給您本人賬戶的用戶名、密碼或其他識別認證信息。", "four": "表明或暗示與美國紅十字會或任何紅十字會或紅新月會組織的從屬關係,資助關係或被資助關係。", - "five": "表明或暗示您擁有或創建了API、數據源、事件警報和\/或準備、回應和恢復信息。", + "five": "表明或暗示您擁有或創建了API、數據源、事件警報和/或準備、回應和恢復信息。", "six": "傳播任何病毒、蠕蟲病毒、木馬病毒或任何含破壞性質的項目。" } }, - "reserve_rights": "紅十字會保留在任何時間無提前通知的情況下暫時或永久改變和\/或停止部分或全部API和數據源服務的權力。為消除疑惑,紅十字會沒有為您提供API和數據源的義務,並且您同意並承認一切訪問均在紅十字會的單獨和絕對審查下進行。", + "reserve_rights": "紅十字會保留在任何時間無提前通知的情況下暫時或永久改變和/或停止部分或全部API和數據源服務的權力。為消除疑惑,紅十字會沒有為您提供API和數據源的義務,並且您同意並承認一切訪問均在紅十字會的單獨和絕對審查下進行。", "severability": { "body": "任何API服務中的條款不影響任何其他服務的有效性。", "heading": "效力瑕疵條款及免責聲明:" }, "suspension": { - "body": "紅十字會保留暫停或終止您的訪問權限的權力,如果在其獨立審查中認定您參與了API條款中列舉的未被授權的對API或數據源的使用,或您對API或數據源的任何使用行為威脅到\/削弱了任何人或紅十字會網絡的安全性。", + "body": "紅十字會保留暫停或終止您的訪問權限的權力,如果在其獨立審查中認定您參與了API條款中列舉的未被授權的對API或數據源的使用,或您對API或數據源的任何使用行為威脅到/削弱了任何人或紅十字會網絡的安全性。", "heading": "暫停或終止服務:" } }, From cdce713b8e41e91af2cd6a8b414e9454a5838669 Mon Sep 17 00:00:00 2001 From: Juan24 Date: Tue, 21 Apr 2026 09:53:11 -0300 Subject: [PATCH 2/3] Revert "fix translations" This reverts commit b7a37ec558bf12dda4603e40e7efbb96a87bf81e. --- package-lock.json | 336 +++--------------------------- public/fonts/Poppins-Light.ttf | Bin 159892 -> 0 bytes public/fonts/Poppins-Medium.ttf | Bin 156520 -> 0 bytes public/fonts/Poppins-Regular.ttf | Bin 158240 -> 0 bytes public/fonts/Poppins-SemiBold.ttf | Bin 155232 -> 0 bytes public/js/332.js | 2 - public/js/332.js.map | 1 - public/js/418.js | 3 - public/js/418.js.LICENSE.txt | 1 - public/js/418.js.map | 1 - resources/lang/am.json | 46 ++-- resources/lang/ar.json | 9 +- resources/lang/bn.json | 50 ++--- resources/lang/de.json | 37 ++-- resources/lang/en.json | 5 +- resources/lang/es.json | 3 +- resources/lang/fr.json | 3 +- resources/lang/ht.json | 54 +++-- resources/lang/id.json | 37 ++-- resources/lang/it.json | 33 ++- resources/lang/ja.json | 11 +- resources/lang/my.json | 42 ++-- resources/lang/ne.json | 69 +++--- resources/lang/pt.json | 33 ++- resources/lang/ru.json | 33 ++- resources/lang/rw.json | 25 ++- resources/lang/sw.json | 37 ++-- resources/lang/th.json | 31 ++- resources/lang/tr.json | 33 ++- resources/lang/ur.json | 35 ++-- resources/lang/vi.json | 46 ++-- resources/lang/zh.json | 55 +++-- resources/lang/zh_CN.json | 33 ++- 33 files changed, 386 insertions(+), 718 deletions(-) delete mode 100644 public/fonts/Poppins-Light.ttf delete mode 100644 public/fonts/Poppins-Medium.ttf delete mode 100644 public/fonts/Poppins-Regular.ttf delete mode 100644 public/fonts/Poppins-SemiBold.ttf delete mode 100644 public/js/332.js delete mode 100644 public/js/332.js.map delete mode 100644 public/js/418.js delete mode 100644 public/js/418.js.LICENSE.txt delete mode 100644 public/js/418.js.map diff --git a/package-lock.json b/package-lock.json index 47b51fe..ccbc9db 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3123,22 +3123,6 @@ "postcss": "^8.1.0" } }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/axios": { "version": "0.27.2", "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", @@ -3709,19 +3693,13 @@ } }, "node_modules/call-bind": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.9.tgz", - "integrity": "sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "dev": true, - "license": "MIT", "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "get-intrinsic": "^1.3.0", - "set-function-length": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3742,14 +3720,14 @@ } }, "node_modules/call-bound": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", - "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", + "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", "dev": true, "license": "MIT", "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "get-intrinsic": "^1.3.0" + "call-bind-apply-helpers": "^1.0.1", + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -3817,9 +3795,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001788", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001788.tgz", - "integrity": "sha512-6q8HFp+lOQtcf7wBK+uEenxymVWkGKkjFpCvw5W25cmMwEDU45p1xQFBQv8JDlMMry7eNxyBaR+qxgmTUZkIRQ==", + "version": "1.0.30001669", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001669.tgz", + "integrity": "sha512-DlWzFDJqstqtIVx1zeSpIMLjunf5SmwOw0N2Ck/QSQdS8PLS4+9HrLaYei4w8BIAL7IB/UEDu889d8vhCTPA0w==", "dev": true, "funding": [ { @@ -3834,8 +3812,7 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ], - "license": "CC-BY-4.0" + ] }, "node_modules/canvg": { "version": "3.0.10", @@ -3931,48 +3908,15 @@ } }, "node_modules/cipher-base": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.7.tgz", - "integrity": "sha512-Mz9QMT5fJe7bKI7MH31UilT5cEK5EHHRCccw/YRFsRY47AuNgaV6HY3rscp0/I4Q+tTW/5zoqpSeRRI54TkDWA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "dev": true, - "license": "MIT", "dependencies": { - "inherits": "^2.0.4", - "safe-buffer": "^5.2.1", - "to-buffer": "^1.2.2" - }, - "engines": { - "node": ">= 0.10" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, - "node_modules/cipher-base/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/cipher-base/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, "node_modules/circular-json": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", @@ -4928,24 +4872,6 @@ "node": ">= 10" } }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/define-lazy-prop": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", @@ -6151,22 +6077,6 @@ } } }, - "node_modules/for-each": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", - "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-callable": "^1.2.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/form-data": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", @@ -6499,13 +6409,12 @@ } }, "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", "dev": true, - "license": "MIT", "dependencies": { - "es-define-property": "^1.0.0" + "get-intrinsic": "^1.1.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6524,22 +6433,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/hash-base": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", @@ -7225,19 +7118,6 @@ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-core-module": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", @@ -7410,22 +7290,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", - "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "which-typed-array": "^1.1.16" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", @@ -8955,16 +8819,6 @@ "vue": "^2.5.18" } }, - "node_modules/possible-typed-array-names": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", - "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, "node_modules/postcss": { "version": "8.4.47", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", @@ -10353,24 +10207,6 @@ "node": ">= 0.8.0" } }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", @@ -10385,54 +10221,18 @@ "license": "ISC" }, "node_modules/sha.js": { - "version": "2.4.12", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.12.tgz", - "integrity": "sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==", + "version": "2.4.9", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.9.tgz", + "integrity": "sha512-G8zektVqbiPHrylgew9Zg1VRB1L/DtXNUVAM6q4QLy8NE3qtHlFXTf8VLL4k1Yl6c7NMjtZUTdXV+X44nFaT6A==", "dev": true, - "license": "(MIT AND BSD-3-Clause)", "dependencies": { - "inherits": "^2.0.4", - "safe-buffer": "^5.2.1", - "to-buffer": "^1.2.0" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" }, "bin": { "sha.js": "bin.js" - }, - "engines": { - "node": ">= 0.10" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/sha.js/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/sha.js/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, "node_modules/shallow-clone": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", @@ -11224,49 +11024,6 @@ "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==", "dev": true }, - "node_modules/to-buffer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.2.2.tgz", - "integrity": "sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==", - "dev": true, - "license": "MIT", - "dependencies": { - "isarray": "^2.0.5", - "safe-buffer": "^5.2.1", - "typed-array-buffer": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/to-buffer/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true, - "license": "MIT" - }, - "node_modules/to-buffer/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -11346,21 +11103,6 @@ "node": ">= 0.6" } }, - "node_modules/typed-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", - "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", @@ -12512,28 +12254,6 @@ "which": "bin/which" } }, - "node_modules/which-typed-array": { - "version": "1.1.20", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.20.tgz", - "integrity": "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==", - "dev": true, - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "for-each": "^0.3.5", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/wildcard": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", diff --git a/public/fonts/Poppins-Light.ttf b/public/fonts/Poppins-Light.ttf deleted file mode 100644 index bc36bcc2427a84e29e61ea7b634024072c04b206..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 159892 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 i=r(3491),n="undefined"==typeof window?r.g:window,s=["moz","webkit"],a="AnimationFrame",o=n["request"+a],u=n["cancel"+a]||n["cancelRequest"+a],h=0;!o&&h{t.exports=function(t){this.ok=!1,this.alpha=1,"#"==t.charAt(0)&&(t=t.substr(1,6)),t=(t=t.replace(/ /g,"")).toLowerCase();var e={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"00ffff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000000",blanchedalmond:"ffebcd",blue:"0000ff",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"00ffff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dodgerblue:"1e90ff",feldspar:"d19275",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"ff00ff",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgrey:"d3d3d3",lightgreen:"90ee90",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslateblue:"8470ff",lightslategray:"778899",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"00ff00",limegreen:"32cd32",linen:"faf0e6",magenta:"ff00ff",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370d8",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"d87093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"ff0000",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",violetred:"d02090",wheat:"f5deb3",white:"ffffff",whitesmoke:"f5f5f5",yellow:"ffff00",yellowgreen:"9acd32"};t=e[t]||t;for(var r=[{re:/^rgba\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3}),\s*((?:\d?\.)?\d)\)$/,example:["rgba(123, 234, 45, 0.8)","rgba(255,234,245,1.0)"],process:function(t){return[parseInt(t[1]),parseInt(t[2]),parseInt(t[3]),parseFloat(t[4])]}},{re:/^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/,example:["rgb(123, 234, 45)","rgb(255,234,245)"],process:function(t){return[parseInt(t[1]),parseInt(t[2]),parseInt(t[3])]}},{re:/^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,example:["#00ff00","336699"],process:function(t){return[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]}},{re:/^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,example:["#fb0","f0f"],process:function(t){return[parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16),parseInt(t[3]+t[3],16)]}}],i=0;i3&&(this.alpha=o[3]),this.ok=!0}}this.r=this.r<0||isNaN(this.r)?0:this.r>255?255:this.r,this.g=this.g<0||isNaN(this.g)?0:this.g>255?255:this.g,this.b=this.b<0||isNaN(this.b)?0:this.b>255?255:this.b,this.alpha=this.alpha<0?0:this.alpha>1||isNaN(this.alpha)?1:this.alpha,this.toRGB=function(){return"rgb("+this.r+", "+this.g+", "+this.b+")"},this.toRGBA=function(){return"rgba("+this.r+", "+this.g+", "+this.b+", "+this.alpha+")"},this.toHex=function(){var t=this.r.toString(16),e=this.g.toString(16),r=this.b.toString(16);return 1==t.length&&(t="0"+t),1==e.length&&(e="0"+e),1==r.length&&(r="0"+r),"#"+t+e+r},this.getHelpXML=function(){for(var t=new Array,i=0;i "+h.toRGB()+" -> "+h.toHex());u.appendChild(c),u.appendChild(l),o.appendChild(u)}catch(t){}return o}}},9306:(t,e,r)=>{"use strict";var i=r(4901),n=r(6823),s=TypeError;t.exports=function(t){if(i(t))return t;throw new s(n(t)+" is not a function")}},5548:(t,e,r)=>{"use strict";var i=r(3517),n=r(6823),s=TypeError;t.exports=function(t){if(i(t))return t;throw new s(n(t)+" is not a constructor")}},3506:(t,e,r)=>{"use strict";var i=r(3925),n=String,s=TypeError;t.exports=function(t){if(i(t))return t;throw new s("Can't set "+n(t)+" as a prototype")}},6469:(t,e,r)=>{"use strict";var i=r(8227),n=r(2360),s=r(4913).f,a=i("unscopables"),o=Array.prototype;void 0===o[a]&&s(o,a,{configurable:!0,value:n(null)}),t.exports=function(t){o[a][t]=!0}},7829:(t,e,r)=>{"use strict";var i=r(8183).charAt;t.exports=function(t,e,r){return e+(r?i(t,e).length:1)}},679:(t,e,r)=>{"use strict";var i=r(1625),n=TypeError;t.exports=function(t,e){if(i(e,t))return t;throw new n("Incorrect invocation")}},8551:(t,e,r)=>{"use strict";var i=r(34),n=String,s=TypeError;t.exports=function(t){if(i(t))return t;throw new s(n(t)+" is not an object")}},9617:(t,e,r)=>{"use strict";var i=r(5397),n=r(5610),s=r(6198),a=function(t){return function(e,r,a){var o=i(e),u=s(o);if(0===u)return!t&&-1;var h,c=n(a,u);if(t&&r!=r){for(;u>c;)if((h=o[c++])!=h)return!0}else for(;u>c;c++)if((t||c in o)&&o[c]===r)return t||c||0;return!t&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},4598:(t,e,r)=>{"use strict";var i=r(9039);t.exports=function(t,e){var r=[][t];return!!r&&i((function(){r.call(null,e||function(){return 1},1)}))}},926:(t,e,r)=>{"use strict";var i=r(9306),n=r(8981),s=r(7055),a=r(6198),o=TypeError,u="Reduce of empty array with no initial value",h=function(t){return function(e,r,h,c){var l=n(e),f=s(l),g=a(l);if(i(r),0===g&&h<2)throw new o(u);var p=t?g-1:0,d=t?-1:1;if(h<2)for(;;){if(p in f){c=f[p],p+=d;break}if(p+=d,t?p<0:g<=p)throw new o(u)}for(;t?p>=0:g>p;p+=d)p in f&&(c=r(c,f[p],p,l));return c}};t.exports={left:h(!1),right:h(!0)}},7680:(t,e,r)=>{"use strict";var i=r(9504);t.exports=i([].slice)},4428:(t,e,r)=>{"use strict";var i=r(8227)("iterator"),n=!1;try{var s=0,a={next:function(){return{done:!!s++}},return:function(){n=!0}};a[i]=function(){return this},Array.from(a,(function(){throw 2}))}catch(t){}t.exports=function(t,e){try{if(!e&&!n)return!1}catch(t){return!1}var r=!1;try{var s={};s[i]=function(){return{next:function(){return{done:r=!0}}}},t(s)}catch(t){}return r}},2195:(t,e,r)=>{"use strict";var i=r(9504),n=i({}.toString),s=i("".slice);t.exports=function(t){return s(n(t),8,-1)}},6955:(t,e,r)=>{"use strict";var i=r(2140),n=r(4901),s=r(2195),a=r(8227)("toStringTag"),o=Object,u="Arguments"===s(function(){return arguments}());t.exports=i?s:function(t){var e,r,i;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(r=function(t,e){try{return t[e]}catch(t){}}(e=o(t),a))?r:u?s(e):"Object"===(i=s(e))&&n(e.callee)?"Arguments":i}},7740:(t,e,r)=>{"use strict";var i=r(9297),n=r(5031),s=r(7347),a=r(4913);t.exports=function(t,e,r){for(var o=n(e),u=a.f,h=s.f,c=0;c{"use strict";var i=r(8227)("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(r){try{return e[i]=!1,"/./"[t](e)}catch(t){}}return!1}},2211:(t,e,r)=>{"use strict";var i=r(9039);t.exports=!i((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},2529:t=>{"use strict";t.exports=function(t,e){return{value:t,done:e}}},6699:(t,e,r)=>{"use strict";var i=r(3724),n=r(4913),s=r(6980);t.exports=i?function(t,e,r){return n.f(t,e,s(1,r))}:function(t,e,r){return t[e]=r,t}},6980:t=>{"use strict";t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},2106:(t,e,r)=>{"use strict";var i=r(283),n=r(4913);t.exports=function(t,e,r){return r.get&&i(r.get,e,{getter:!0}),r.set&&i(r.set,e,{setter:!0}),n.f(t,e,r)}},6840:(t,e,r)=>{"use strict";var i=r(4901),n=r(4913),s=r(283),a=r(9433);t.exports=function(t,e,r,o){o||(o={});var u=o.enumerable,h=void 0!==o.name?o.name:e;if(i(r)&&s(r,h,o),o.global)u?t[e]=r:a(e,r);else{try{o.unsafe?t[e]&&(u=!0):delete t[e]}catch(t){}u?t[e]=r:n.f(t,e,{value:r,enumerable:!1,configurable:!o.nonConfigurable,writable:!o.nonWritable})}return t}},9433:(t,e,r)=>{"use strict";var i=r(4576),n=Object.defineProperty;t.exports=function(t,e){try{n(i,t,{value:e,configurable:!0,writable:!0})}catch(r){i[t]=e}return e}},3724:(t,e,r)=>{"use strict";var i=r(9039);t.exports=!i((function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]}))},4055:(t,e,r)=>{"use strict";var i=r(4576),n=r(34),s=i.document,a=n(s)&&n(s.createElement);t.exports=function(t){return a?s.createElement(t):{}}},7400:t=>{"use strict";t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},9296:(t,e,r)=>{"use strict";var i=r(4055)("span").classList,n=i&&i.constructor&&i.constructor.prototype;t.exports=n===Object.prototype?void 0:n},8727:t=>{"use strict";t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},4265:(t,e,r)=>{"use strict";var i=r(2839);t.exports=/ipad|iphone|ipod/i.test(i)&&"undefined"!=typeof Pebble},9544:(t,e,r)=>{"use strict";var i=r(2839);t.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(i)},6193:(t,e,r)=>{"use strict";var i=r(4215);t.exports="NODE"===i},7860:(t,e,r)=>{"use strict";var i=r(2839);t.exports=/web0s(?!.*chrome)/i.test(i)},2839:(t,e,r)=>{"use strict";var i=r(4576).navigator,n=i&&i.userAgent;t.exports=n?String(n):""},9519:(t,e,r)=>{"use strict";var i,n,s=r(4576),a=r(2839),o=s.process,u=s.Deno,h=o&&o.versions||u&&u.version,c=h&&h.v8;c&&(n=(i=c.split("."))[0]>0&&i[0]<4?1:+(i[0]+i[1])),!n&&a&&(!(i=a.match(/Edge\/(\d+)/))||i[1]>=74)&&(i=a.match(/Chrome\/(\d+)/))&&(n=+i[1]),t.exports=n},4215:(t,e,r)=>{"use strict";var i=r(4576),n=r(2839),s=r(2195),a=function(t){return n.slice(0,t.length)===t};t.exports=a("Bun/")?"BUN":a("Cloudflare-Workers")?"CLOUDFLARE":a("Deno/")?"DENO":a("Node.js/")?"NODE":i.Bun&&"string"==typeof Bun.version?"BUN":i.Deno&&"object"==typeof Deno.version?"DENO":"process"===s(i.process)?"NODE":i.window&&i.document?"BROWSER":"REST"},6518:(t,e,r)=>{"use strict";var i=r(4576),n=r(7347).f,s=r(6699),a=r(6840),o=r(9433),u=r(7740),h=r(415);t.exports=function(t,e){var r,c,l,f,g,p=t.target,d=t.global,v=t.stat;if(r=d?i:v?i[p]||o(p,{}):i[p]&&i[p].prototype)for(c in e){if(f=e[c],l=t.dontCallGetSet?(g=n(r,c))&&g.value:r[c],!h(d?c:p+(v?".":"#")+c,t.forced)&&void 0!==l){if(typeof f==typeof l)continue;u(f,l)}(t.sham||l&&l.sham)&&s(f,"sham",!0),a(r,c,f,t)}}},9039:t=>{"use strict";t.exports=function(t){try{return!!t()}catch(t){return!0}}},9228:(t,e,r)=>{"use strict";r(7495);var i=r(9565),n=r(6840),s=r(7323),a=r(9039),o=r(8227),u=r(6699),h=o("species"),c=RegExp.prototype;t.exports=function(t,e,r,l){var f=o(t),g=!a((function(){var e={};return e[f]=function(){return 7},7!==""[t](e)})),p=g&&!a((function(){var e=!1,r=/a/;return"split"===t&&((r={}).constructor={},r.constructor[h]=function(){return r},r.flags="",r[f]=/./[f]),r.exec=function(){return e=!0,null},r[f](""),!e}));if(!g||!p||r){var d=/./[f],v=e(f,""[t],(function(t,e,r,n,a){var o=e.exec;return o===s||o===c.exec?g&&!a?{done:!0,value:i(d,e,r,n)}:{done:!0,value:i(t,r,e,n)}:{done:!1}}));n(String.prototype,t,v[0]),n(c,f,v[1])}l&&u(c[f],"sham",!0)}},8745:(t,e,r)=>{"use strict";var i=r(616),n=Function.prototype,s=n.apply,a=n.call;t.exports="object"==typeof Reflect&&Reflect.apply||(i?a.bind(s):function(){return a.apply(s,arguments)})},6080:(t,e,r)=>{"use strict";var i=r(7476),n=r(9306),s=r(616),a=i(i.bind);t.exports=function(t,e){return n(t),void 0===e?t:s?a(t,e):function(){return t.apply(e,arguments)}}},616:(t,e,r)=>{"use strict";var i=r(9039);t.exports=!i((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")}))},9565:(t,e,r)=>{"use strict";var i=r(616),n=Function.prototype.call;t.exports=i?n.bind(n):function(){return n.apply(n,arguments)}},350:(t,e,r)=>{"use strict";var i=r(3724),n=r(9297),s=Function.prototype,a=i&&Object.getOwnPropertyDescriptor,o=n(s,"name"),u=o&&"something"===function(){}.name,h=o&&(!i||i&&a(s,"name").configurable);t.exports={EXISTS:o,PROPER:u,CONFIGURABLE:h}},6706:(t,e,r)=>{"use strict";var i=r(9504),n=r(9306);t.exports=function(t,e,r){try{return i(n(Object.getOwnPropertyDescriptor(t,e)[r]))}catch(t){}}},7476:(t,e,r)=>{"use strict";var i=r(2195),n=r(9504);t.exports=function(t){if("Function"===i(t))return n(t)}},9504:(t,e,r)=>{"use strict";var i=r(616),n=Function.prototype,s=n.call,a=i&&n.bind.bind(s,s);t.exports=i?a:function(t){return function(){return s.apply(t,arguments)}}},7751:(t,e,r)=>{"use strict";var i=r(4576),n=r(4901);t.exports=function(t,e){return arguments.length<2?(r=i[t],n(r)?r:void 0):i[t]&&i[t][e];var r}},851:(t,e,r)=>{"use strict";var i=r(6955),n=r(5966),s=r(4117),a=r(6269),o=r(8227)("iterator");t.exports=function(t){if(!s(t))return n(t,o)||n(t,"@@iterator")||a[i(t)]}},81:(t,e,r)=>{"use strict";var i=r(9565),n=r(9306),s=r(8551),a=r(6823),o=r(851),u=TypeError;t.exports=function(t,e){var r=arguments.length<2?o(t):e;if(n(r))return s(i(r,t));throw new u(a(t)+" is not iterable")}},5966:(t,e,r)=>{"use strict";var i=r(9306),n=r(4117);t.exports=function(t,e){var r=t[e];return n(r)?void 0:i(r)}},2478:(t,e,r)=>{"use strict";var i=r(9504),n=r(8981),s=Math.floor,a=i("".charAt),o=i("".replace),u=i("".slice),h=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,c=/\$([$&'`]|\d{1,2})/g;t.exports=function(t,e,r,i,l,f){var g=r+t.length,p=i.length,d=c;return void 0!==l&&(l=n(l),d=h),o(f,d,(function(n,o){var h;switch(a(o,0)){case"$":return"$";case"&":return t;case"`":return u(e,0,r);case"'":return u(e,g);case"<":h=l[u(o,1,-1)];break;default:var c=+o;if(0===c)return n;if(c>p){var f=s(c/10);return 0===f?n:f<=p?void 0===i[f-1]?a(o,1):i[f-1]+a(o,1):n}h=i[c-1]}return void 0===h?"":h}))}},4576:function(t,e,r){"use strict";var i=function(t){return t&&t.Math===Math&&t};t.exports=i("object"==typeof globalThis&&globalThis)||i("object"==typeof window&&window)||i("object"==typeof self&&self)||i("object"==typeof r.g&&r.g)||i("object"==typeof this&&this)||function(){return this}()||Function("return this")()},9297:(t,e,r)=>{"use strict";var i=r(9504),n=r(8981),s=i({}.hasOwnProperty);t.exports=Object.hasOwn||function(t,e){return s(n(t),e)}},421:t=>{"use strict";t.exports={}},3138:t=>{"use strict";t.exports=function(t,e){try{1===arguments.length?console.error(t):console.error(t,e)}catch(t){}}},397:(t,e,r)=>{"use strict";var i=r(7751);t.exports=i("document","documentElement")},5917:(t,e,r)=>{"use strict";var i=r(3724),n=r(9039),s=r(4055);t.exports=!i&&!n((function(){return 7!==Object.defineProperty(s("div"),"a",{get:function(){return 7}}).a}))},7055:(t,e,r)=>{"use strict";var i=r(9504),n=r(9039),s=r(2195),a=Object,o=i("".split);t.exports=n((function(){return!a("z").propertyIsEnumerable(0)}))?function(t){return"String"===s(t)?o(t,""):a(t)}:a},3706:(t,e,r)=>{"use strict";var i=r(9504),n=r(4901),s=r(7629),a=i(Function.toString);n(s.inspectSource)||(s.inspectSource=function(t){return a(t)}),t.exports=s.inspectSource},1181:(t,e,r)=>{"use strict";var i,n,s,a=r(8622),o=r(4576),u=r(34),h=r(6699),c=r(9297),l=r(7629),f=r(6119),g=r(421),p="Object already initialized",d=o.TypeError,v=o.WeakMap;if(a||l.state){var y=l.state||(l.state=new v);y.get=y.get,y.has=y.has,y.set=y.set,i=function(t,e){if(y.has(t))throw new d(p);return e.facade=t,y.set(t,e),e},n=function(t){return y.get(t)||{}},s=function(t){return y.has(t)}}else{var m=f("state");g[m]=!0,i=function(t,e){if(c(t,m))throw new d(p);return e.facade=t,h(t,m,e),e},n=function(t){return c(t,m)?t[m]:{}},s=function(t){return c(t,m)}}t.exports={set:i,get:n,has:s,enforce:function(t){return s(t)?n(t):i(t,{})},getterFor:function(t){return function(e){var r;if(!u(e)||(r=n(e)).type!==t)throw new d("Incompatible receiver, "+t+" required");return r}}}},4209:(t,e,r)=>{"use strict";var i=r(8227),n=r(6269),s=i("iterator"),a=Array.prototype;t.exports=function(t){return void 0!==t&&(n.Array===t||a[s]===t)}},4376:(t,e,r)=>{"use strict";var i=r(2195);t.exports=Array.isArray||function(t){return"Array"===i(t)}},4901:t=>{"use strict";var e="object"==typeof document&&document.all;t.exports=void 0===e&&void 0!==e?function(t){return"function"==typeof t||t===e}:function(t){return"function"==typeof t}},3517:(t,e,r)=>{"use strict";var i=r(9504),n=r(9039),s=r(4901),a=r(6955),o=r(7751),u=r(3706),h=function(){},c=o("Reflect","construct"),l=/^\s*(?:class|function)\b/,f=i(l.exec),g=!l.test(h),p=function(t){if(!s(t))return!1;try{return c(h,[],t),!0}catch(t){return!1}},d=function(t){if(!s(t))return!1;switch(a(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return g||!!f(l,u(t))}catch(t){return!0}};d.sham=!0,t.exports=!c||n((function(){var t;return p(p.call)||!p(Object)||!p((function(){t=!0}))||t}))?d:p},415:(t,e,r)=>{"use strict";var i=r(9039),n=r(4901),s=/#|\.prototype\./,a=function(t,e){var r=u[o(t)];return r===c||r!==h&&(n(e)?i(e):!!e)},o=a.normalize=function(t){return String(t).replace(s,".").toLowerCase()},u=a.data={},h=a.NATIVE="N",c=a.POLYFILL="P";t.exports=a},4117:t=>{"use strict";t.exports=function(t){return null==t}},34:(t,e,r)=>{"use strict";var i=r(4901);t.exports=function(t){return"object"==typeof t?null!==t:i(t)}},3925:(t,e,r)=>{"use strict";var i=r(34);t.exports=function(t){return i(t)||null===t}},6395:t=>{"use strict";t.exports=!1},788:(t,e,r)=>{"use strict";var i=r(34),n=r(2195),s=r(8227)("match");t.exports=function(t){var e;return i(t)&&(void 0!==(e=t[s])?!!e:"RegExp"===n(t))}},757:(t,e,r)=>{"use strict";var i=r(7751),n=r(4901),s=r(1625),a=r(7040),o=Object;t.exports=a?function(t){return"symbol"==typeof t}:function(t){var e=i("Symbol");return n(e)&&s(e.prototype,o(t))}},2652:(t,e,r)=>{"use strict";var i=r(6080),n=r(9565),s=r(8551),a=r(6823),o=r(4209),u=r(6198),h=r(1625),c=r(81),l=r(851),f=r(9539),g=TypeError,p=function(t,e){this.stopped=t,this.result=e},d=p.prototype;t.exports=function(t,e,r){var v,y,m,x,b,w,S,T=r&&r.that,O=!(!r||!r.AS_ENTRIES),A=!(!r||!r.IS_RECORD),C=!(!r||!r.IS_ITERATOR),E=!(!r||!r.INTERRUPTED),P=i(e,T),N=function(t){return v&&f(v,"normal",t),new p(!0,t)},M=function(t){return O?(s(t),E?P(t[0],t[1],N):P(t[0],t[1])):E?P(t,N):P(t)};if(A)v=t.iterator;else if(C)v=t;else{if(!(y=l(t)))throw new g(a(t)+" is not iterable");if(o(y)){for(m=0,x=u(t);x>m;m++)if((b=M(t[m]))&&h(d,b))return b;return new p(!1)}v=c(t,y)}for(w=A?t.next:v.next;!(S=n(w,v)).done;){try{b=M(S.value)}catch(t){f(v,"throw",t)}if("object"==typeof b&&b&&h(d,b))return b}return new p(!1)}},9539:(t,e,r)=>{"use strict";var i=r(9565),n=r(8551),s=r(5966);t.exports=function(t,e,r){var a,o;n(t);try{if(!(a=s(t,"return"))){if("throw"===e)throw r;return r}a=i(a,t)}catch(t){o=!0,a=t}if("throw"===e)throw r;if(o)throw a;return n(a),r}},3994:(t,e,r)=>{"use strict";var i=r(7657).IteratorPrototype,n=r(2360),s=r(6980),a=r(687),o=r(6269),u=function(){return this};t.exports=function(t,e,r,h){var c=e+" Iterator";return t.prototype=n(i,{next:s(+!h,r)}),a(t,c,!1,!0),o[c]=u,t}},1088:(t,e,r)=>{"use strict";var i=r(6518),n=r(9565),s=r(6395),a=r(350),o=r(4901),u=r(3994),h=r(2787),c=r(2967),l=r(687),f=r(6699),g=r(6840),p=r(8227),d=r(6269),v=r(7657),y=a.PROPER,m=a.CONFIGURABLE,x=v.IteratorPrototype,b=v.BUGGY_SAFARI_ITERATORS,w=p("iterator"),S="keys",T="values",O="entries",A=function(){return this};t.exports=function(t,e,r,a,p,v,C){u(r,e,a);var E,P,N,M=function(t){if(t===p&&I)return I;if(!b&&t&&t in V)return V[t];switch(t){case S:case T:case O:return function(){return new r(this,t)}}return function(){return new r(this)}},R=e+" Iterator",_=!1,V=t.prototype,k=V[w]||V["@@iterator"]||p&&V[p],I=!b&&k||M(p),L="Array"===e&&V.entries||k;if(L&&(E=h(L.call(new t)))!==Object.prototype&&E.next&&(s||h(E)===x||(c?c(E,x):o(E[w])||g(E,w,A)),l(E,R,!0,!0),s&&(d[R]=A)),y&&p===T&&k&&k.name!==T&&(!s&&m?f(V,"name",T):(_=!0,I=function(){return n(k,this)})),p)if(P={values:M(T),keys:v?I:M(S),entries:M(O)},C)for(N in P)(b||_||!(N in V))&&g(V,N,P[N]);else i({target:e,proto:!0,forced:b||_},P);return s&&!C||V[w]===I||g(V,w,I,{name:p}),d[e]=I,P}},7657:(t,e,r)=>{"use strict";var i,n,s,a=r(9039),o=r(4901),u=r(34),h=r(2360),c=r(2787),l=r(6840),f=r(8227),g=r(6395),p=f("iterator"),d=!1;[].keys&&("next"in(s=[].keys())?(n=c(c(s)))!==Object.prototype&&(i=n):d=!0),!u(i)||a((function(){var t={};return i[p].call(t)!==t}))?i={}:g&&(i=h(i)),o(i[p])||l(i,p,(function(){return this})),t.exports={IteratorPrototype:i,BUGGY_SAFARI_ITERATORS:d}},6269:t=>{"use strict";t.exports={}},6198:(t,e,r)=>{"use strict";var i=r(8014);t.exports=function(t){return i(t.length)}},283:(t,e,r)=>{"use strict";var i=r(9504),n=r(9039),s=r(4901),a=r(9297),o=r(3724),u=r(350).CONFIGURABLE,h=r(3706),c=r(1181),l=c.enforce,f=c.get,g=String,p=Object.defineProperty,d=i("".slice),v=i("".replace),y=i([].join),m=o&&!n((function(){return 8!==p((function(){}),"length",{value:8}).length})),x=String(String).split("String"),b=t.exports=function(t,e,r){"Symbol("===d(g(e),0,7)&&(e="["+v(g(e),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),r&&r.getter&&(e="get "+e),r&&r.setter&&(e="set "+e),(!a(t,"name")||u&&t.name!==e)&&(o?p(t,"name",{value:e,configurable:!0}):t.name=e),m&&r&&a(r,"arity")&&t.length!==r.arity&&p(t,"length",{value:r.arity});try{r&&a(r,"constructor")&&r.constructor?o&&p(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(t){}var i=l(t);return a(i,"source")||(i.source=y(x,"string"==typeof e?e:"")),t};Function.prototype.toString=b((function(){return s(this)&&f(this).source||h(this)}),"toString")},741:t=>{"use strict";var e=Math.ceil,r=Math.floor;t.exports=Math.trunc||function(t){var i=+t;return(i>0?r:e)(i)}},1955:(t,e,r)=>{"use strict";var i,n,s,a,o,u=r(4576),h=r(3389),c=r(6080),l=r(9225).set,f=r(8265),g=r(9544),p=r(4265),d=r(7860),v=r(6193),y=u.MutationObserver||u.WebKitMutationObserver,m=u.document,x=u.process,b=u.Promise,w=h("queueMicrotask");if(!w){var S=new f,T=function(){var t,e;for(v&&(t=x.domain)&&t.exit();e=S.get();)try{e()}catch(t){throw S.head&&i(),t}t&&t.enter()};g||v||d||!y||!m?!p&&b&&b.resolve?((a=b.resolve(void 0)).constructor=b,o=c(a.then,a),i=function(){o(T)}):v?i=function(){x.nextTick(T)}:(l=c(l,u),i=function(){l(T)}):(n=!0,s=m.createTextNode(""),new y(T).observe(s,{characterData:!0}),i=function(){s.data=n=!n}),w=function(t){S.head||i(),S.add(t)}}t.exports=w},6043:(t,e,r)=>{"use strict";var i=r(9306),n=TypeError,s=function(t){var e,r;this.promise=new t((function(t,i){if(void 0!==e||void 0!==r)throw new n("Bad Promise constructor");e=t,r=i})),this.resolve=i(e),this.reject=i(r)};t.exports.f=function(t){return new s(t)}},511:(t,e,r)=>{"use strict";var i=r(788),n=TypeError;t.exports=function(t){if(i(t))throw new n("The method doesn't accept regular expressions");return t}},2360:(t,e,r)=>{"use strict";var i,n=r(8551),s=r(6801),a=r(8727),o=r(421),u=r(397),h=r(4055),c=r(6119),l="prototype",f="script",g=c("IE_PROTO"),p=function(){},d=function(t){return"<"+f+">"+t+""},v=function(t){t.write(d("")),t.close();var e=t.parentWindow.Object;return t=null,e},y=function(){try{i=new ActiveXObject("htmlfile")}catch(t){}var t,e,r;y="undefined"!=typeof document?document.domain&&i?v(i):(e=h("iframe"),r="java"+f+":",e.style.display="none",u.appendChild(e),e.src=String(r),(t=e.contentWindow.document).open(),t.write(d("document.F=Object")),t.close(),t.F):v(i);for(var n=a.length;n--;)delete y[l][a[n]];return y()};o[g]=!0,t.exports=Object.create||function(t,e){var r;return null!==t?(p[l]=n(t),r=new p,p[l]=null,r[g]=t):r=y(),void 0===e?r:s.f(r,e)}},6801:(t,e,r)=>{"use strict";var i=r(3724),n=r(8686),s=r(4913),a=r(8551),o=r(5397),u=r(1072);e.f=i&&!n?Object.defineProperties:function(t,e){a(t);for(var r,i=o(e),n=u(e),h=n.length,c=0;h>c;)s.f(t,r=n[c++],i[r]);return t}},4913:(t,e,r)=>{"use strict";var i=r(3724),n=r(5917),s=r(8686),a=r(8551),o=r(6969),u=TypeError,h=Object.defineProperty,c=Object.getOwnPropertyDescriptor,l="enumerable",f="configurable",g="writable";e.f=i?s?function(t,e,r){if(a(t),e=o(e),a(r),"function"==typeof t&&"prototype"===e&&"value"in r&&g in r&&!r[g]){var i=c(t,e);i&&i[g]&&(t[e]=r.value,r={configurable:f in r?r[f]:i[f],enumerable:l in r?r[l]:i[l],writable:!1})}return h(t,e,r)}:h:function(t,e,r){if(a(t),e=o(e),a(r),n)try{return h(t,e,r)}catch(t){}if("get"in r||"set"in r)throw new u("Accessors not supported");return"value"in r&&(t[e]=r.value),t}},7347:(t,e,r)=>{"use strict";var i=r(3724),n=r(9565),s=r(8773),a=r(6980),o=r(5397),u=r(6969),h=r(9297),c=r(5917),l=Object.getOwnPropertyDescriptor;e.f=i?l:function(t,e){if(t=o(t),e=u(e),c)try{return l(t,e)}catch(t){}if(h(t,e))return a(!n(s.f,t,e),t[e])}},8480:(t,e,r)=>{"use strict";var i=r(1828),n=r(8727).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return i(t,n)}},3717:(t,e)=>{"use strict";e.f=Object.getOwnPropertySymbols},2787:(t,e,r)=>{"use strict";var i=r(9297),n=r(4901),s=r(8981),a=r(6119),o=r(2211),u=a("IE_PROTO"),h=Object,c=h.prototype;t.exports=o?h.getPrototypeOf:function(t){var e=s(t);if(i(e,u))return e[u];var r=e.constructor;return n(r)&&e instanceof r?r.prototype:e instanceof h?c:null}},1625:(t,e,r)=>{"use strict";var i=r(9504);t.exports=i({}.isPrototypeOf)},1828:(t,e,r)=>{"use strict";var i=r(9504),n=r(9297),s=r(5397),a=r(9617).indexOf,o=r(421),u=i([].push);t.exports=function(t,e){var r,i=s(t),h=0,c=[];for(r in i)!n(o,r)&&n(i,r)&&u(c,r);for(;e.length>h;)n(i,r=e[h++])&&(~a(c,r)||u(c,r));return c}},1072:(t,e,r)=>{"use strict";var i=r(1828),n=r(8727);t.exports=Object.keys||function(t){return i(t,n)}},8773:(t,e)=>{"use strict";var r={}.propertyIsEnumerable,i=Object.getOwnPropertyDescriptor,n=i&&!r.call({1:2},1);e.f=n?function(t){var e=i(this,t);return!!e&&e.enumerable}:r},2967:(t,e,r)=>{"use strict";var i=r(6706),n=r(34),s=r(7750),a=r(3506);t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,r={};try{(t=i(Object.prototype,"__proto__","set"))(r,[]),e=r instanceof Array}catch(t){}return function(r,i){return s(r),a(i),n(r)?(e?t(r,i):r.__proto__=i,r):r}}():void 0)},4270:(t,e,r)=>{"use strict";var i=r(9565),n=r(4901),s=r(34),a=TypeError;t.exports=function(t,e){var r,o;if("string"===e&&n(r=t.toString)&&!s(o=i(r,t)))return o;if(n(r=t.valueOf)&&!s(o=i(r,t)))return o;if("string"!==e&&n(r=t.toString)&&!s(o=i(r,t)))return o;throw new a("Can't convert object to primitive value")}},5031:(t,e,r)=>{"use strict";var i=r(7751),n=r(9504),s=r(8480),a=r(3717),o=r(8551),u=n([].concat);t.exports=i("Reflect","ownKeys")||function(t){var e=s.f(o(t)),r=a.f;return r?u(e,r(t)):e}},1103:t=>{"use strict";t.exports=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}}},916:(t,e,r)=>{"use strict";var i=r(4576),n=r(550),s=r(4901),a=r(415),o=r(3706),u=r(8227),h=r(4215),c=r(6395),l=r(9519),f=n&&n.prototype,g=u("species"),p=!1,d=s(i.PromiseRejectionEvent),v=a("Promise",(function(){var t=o(n),e=t!==String(n);if(!e&&66===l)return!0;if(c&&(!f.catch||!f.finally))return!0;if(!l||l<51||!/native code/.test(t)){var r=new n((function(t){t(1)})),i=function(t){t((function(){}),(function(){}))};if((r.constructor={})[g]=i,!(p=r.then((function(){}))instanceof i))return!0}return!(e||"BROWSER"!==h&&"DENO"!==h||d)}));t.exports={CONSTRUCTOR:v,REJECTION_EVENT:d,SUBCLASSING:p}},550:(t,e,r)=>{"use strict";var i=r(4576);t.exports=i.Promise},3438:(t,e,r)=>{"use strict";var i=r(8551),n=r(34),s=r(6043);t.exports=function(t,e){if(i(t),n(e)&&e.constructor===t)return e;var r=s.f(t);return(0,r.resolve)(e),r.promise}},2918:(t,e,r)=>{"use strict";var i=r(550),n=r(4428),s=r(916).CONSTRUCTOR;t.exports=s||!n((function(t){i.all(t).then(void 0,(function(){}))}))},8265:t=>{"use strict";var e=function(){this.head=null,this.tail=null};e.prototype={add:function(t){var e={item:t,next:null},r=this.tail;r?r.next=e:this.head=e,this.tail=e},get:function(){var t=this.head;if(t)return null===(this.head=t.next)&&(this.tail=null),t.item}},t.exports=e},6682:(t,e,r)=>{"use strict";var i=r(9565),n=r(8551),s=r(4901),a=r(2195),o=r(7323),u=TypeError;t.exports=function(t,e){var r=t.exec;if(s(r)){var h=i(r,t,e);return null!==h&&n(h),h}if("RegExp"===a(t))return i(o,t,e);throw new u("RegExp#exec called on incompatible receiver")}},7323:(t,e,r)=>{"use strict";var i,n,s=r(9565),a=r(9504),o=r(655),u=r(7979),h=r(8429),c=r(5745),l=r(2360),f=r(1181).get,g=r(3635),p=r(8814),d=c("native-string-replace",String.prototype.replace),v=RegExp.prototype.exec,y=v,m=a("".charAt),x=a("".indexOf),b=a("".replace),w=a("".slice),S=(n=/b*/g,s(v,i=/a/,"a"),s(v,n,"a"),0!==i.lastIndex||0!==n.lastIndex),T=h.BROKEN_CARET,O=void 0!==/()??/.exec("")[1];(S||O||T||g||p)&&(y=function(t){var e,r,i,n,a,h,c,g=this,p=f(g),A=o(t),C=p.raw;if(C)return C.lastIndex=g.lastIndex,e=s(y,C,A),g.lastIndex=C.lastIndex,e;var E=p.groups,P=T&&g.sticky,N=s(u,g),M=g.source,R=0,_=A;if(P&&(N=b(N,"y",""),-1===x(N,"g")&&(N+="g"),_=w(A,g.lastIndex),g.lastIndex>0&&(!g.multiline||g.multiline&&"\n"!==m(A,g.lastIndex-1))&&(M="(?: "+M+")",_=" "+_,R++),r=new RegExp("^(?:"+M+")",N)),O&&(r=new RegExp("^"+M+"$(?!\\s)",N)),S&&(i=g.lastIndex),n=s(v,P?r:g,_),P?n?(n.input=w(n.input,R),n[0]=w(n[0],R),n.index=g.lastIndex,g.lastIndex+=n[0].length):g.lastIndex=0:S&&n&&(g.lastIndex=g.global?n.index+n[0].length:i),O&&n&&n.length>1&&s(d,n[0],r,(function(){for(a=1;a{"use strict";var i=r(8551);t.exports=function(){var t=i(this),e="";return t.hasIndices&&(e+="d"),t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.dotAll&&(e+="s"),t.unicode&&(e+="u"),t.unicodeSets&&(e+="v"),t.sticky&&(e+="y"),e}},1034:(t,e,r)=>{"use strict";var i=r(9565),n=r(9297),s=r(1625),a=r(7979),o=RegExp.prototype;t.exports=function(t){var e=t.flags;return void 0!==e||"flags"in o||n(t,"flags")||!s(o,t)?e:i(a,t)}},8429:(t,e,r)=>{"use strict";var i=r(9039),n=r(4576).RegExp,s=i((function(){var t=n("a","y");return t.lastIndex=2,null!==t.exec("abcd")})),a=s||i((function(){return!n("a","y").sticky})),o=s||i((function(){var t=n("^r","gy");return t.lastIndex=2,null!==t.exec("str")}));t.exports={BROKEN_CARET:o,MISSED_STICKY:a,UNSUPPORTED_Y:s}},3635:(t,e,r)=>{"use strict";var i=r(9039),n=r(4576).RegExp;t.exports=i((function(){var t=n(".","s");return!(t.dotAll&&t.test("\n")&&"s"===t.flags)}))},8814:(t,e,r)=>{"use strict";var i=r(9039),n=r(4576).RegExp;t.exports=i((function(){var t=n("(?b)","g");return"b"!==t.exec("b").groups.a||"bc"!=="b".replace(t,"$c")}))},7750:(t,e,r)=>{"use strict";var i=r(4117),n=TypeError;t.exports=function(t){if(i(t))throw new n("Can't call method on "+t);return t}},3389:(t,e,r)=>{"use strict";var i=r(4576),n=r(3724),s=Object.getOwnPropertyDescriptor;t.exports=function(t){if(!n)return i[t];var e=s(i,t);return e&&e.value}},7633:(t,e,r)=>{"use strict";var i=r(7751),n=r(2106),s=r(8227),a=r(3724),o=s("species");t.exports=function(t){var e=i(t);a&&e&&!e[o]&&n(e,o,{configurable:!0,get:function(){return this}})}},687:(t,e,r)=>{"use strict";var i=r(4913).f,n=r(9297),s=r(8227)("toStringTag");t.exports=function(t,e,r){t&&!r&&(t=t.prototype),t&&!n(t,s)&&i(t,s,{configurable:!0,value:e})}},6119:(t,e,r)=>{"use strict";var i=r(5745),n=r(3392),s=i("keys");t.exports=function(t){return s[t]||(s[t]=n(t))}},7629:(t,e,r)=>{"use strict";var i=r(6395),n=r(4576),s=r(9433),a="__core-js_shared__",o=t.exports=n[a]||s(a,{});(o.versions||(o.versions=[])).push({version:"3.40.0",mode:i?"pure":"global",copyright:"© 2014-2025 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.40.0/LICENSE",source:"https://github.com/zloirock/core-js"})},5745:(t,e,r)=>{"use strict";var i=r(7629);t.exports=function(t,e){return i[t]||(i[t]=e||{})}},2293:(t,e,r)=>{"use strict";var i=r(8551),n=r(5548),s=r(4117),a=r(8227)("species");t.exports=function(t,e){var r,o=i(t).constructor;return void 0===o||s(r=i(o)[a])?e:n(r)}},8183:(t,e,r)=>{"use strict";var i=r(9504),n=r(1291),s=r(655),a=r(7750),o=i("".charAt),u=i("".charCodeAt),h=i("".slice),c=function(t){return function(e,r){var i,c,l=s(a(e)),f=n(r),g=l.length;return f<0||f>=g?t?"":void 0:(i=u(l,f))<55296||i>56319||f+1===g||(c=u(l,f+1))<56320||c>57343?t?o(l,f):i:t?h(l,f,f+2):c-56320+(i-55296<<10)+65536}};t.exports={codeAt:c(!1),charAt:c(!0)}},706:(t,e,r)=>{"use strict";var i=r(350).PROPER,n=r(9039),s=r(7452);t.exports=function(t){return n((function(){return!!s[t]()||"​…᠎"!=="​…᠎"[t]()||i&&s[t].name!==t}))}},3802:(t,e,r)=>{"use strict";var i=r(9504),n=r(7750),s=r(655),a=r(7452),o=i("".replace),u=RegExp("^["+a+"]+"),h=RegExp("(^|[^"+a+"])["+a+"]+$"),c=function(t){return function(e){var r=s(n(e));return 1&t&&(r=o(r,u,"")),2&t&&(r=o(r,h,"$1")),r}};t.exports={start:c(1),end:c(2),trim:c(3)}},4495:(t,e,r)=>{"use strict";var i=r(9519),n=r(9039),s=r(4576).String;t.exports=!!Object.getOwnPropertySymbols&&!n((function(){var t=Symbol("symbol detection");return!s(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&i&&i<41}))},9225:(t,e,r)=>{"use strict";var i,n,s,a,o=r(4576),u=r(8745),h=r(6080),c=r(4901),l=r(9297),f=r(9039),g=r(397),p=r(7680),d=r(4055),v=r(2812),y=r(9544),m=r(6193),x=o.setImmediate,b=o.clearImmediate,w=o.process,S=o.Dispatch,T=o.Function,O=o.MessageChannel,A=o.String,C=0,E={},P="onreadystatechange";f((function(){i=o.location}));var N=function(t){if(l(E,t)){var e=E[t];delete E[t],e()}},M=function(t){return function(){N(t)}},R=function(t){N(t.data)},_=function(t){o.postMessage(A(t),i.protocol+"//"+i.host)};x&&b||(x=function(t){v(arguments.length,1);var e=c(t)?t:T(t),r=p(arguments,1);return E[++C]=function(){u(e,void 0,r)},n(C),C},b=function(t){delete E[t]},m?n=function(t){w.nextTick(M(t))}:S&&S.now?n=function(t){S.now(M(t))}:O&&!y?(a=(s=new O).port2,s.port1.onmessage=R,n=h(a.postMessage,a)):o.addEventListener&&c(o.postMessage)&&!o.importScripts&&i&&"file:"!==i.protocol&&!f(_)?(n=_,o.addEventListener("message",R,!1)):n=P in d("script")?function(t){g.appendChild(d("script"))[P]=function(){g.removeChild(this),N(t)}}:function(t){setTimeout(M(t),0)}),t.exports={set:x,clear:b}},5610:(t,e,r)=>{"use strict";var i=r(1291),n=Math.max,s=Math.min;t.exports=function(t,e){var r=i(t);return r<0?n(r+e,0):s(r,e)}},5397:(t,e,r)=>{"use strict";var i=r(7055),n=r(7750);t.exports=function(t){return i(n(t))}},1291:(t,e,r)=>{"use strict";var i=r(741);t.exports=function(t){var e=+t;return e!=e||0===e?0:i(e)}},8014:(t,e,r)=>{"use strict";var i=r(1291),n=Math.min;t.exports=function(t){var e=i(t);return e>0?n(e,9007199254740991):0}},8981:(t,e,r)=>{"use strict";var i=r(7750),n=Object;t.exports=function(t){return n(i(t))}},2777:(t,e,r)=>{"use strict";var i=r(9565),n=r(34),s=r(757),a=r(5966),o=r(4270),u=r(8227),h=TypeError,c=u("toPrimitive");t.exports=function(t,e){if(!n(t)||s(t))return t;var r,u=a(t,c);if(u){if(void 0===e&&(e="default"),r=i(u,t,e),!n(r)||s(r))return r;throw new h("Can't convert object to primitive value")}return void 0===e&&(e="number"),o(t,e)}},6969:(t,e,r)=>{"use strict";var i=r(2777),n=r(757);t.exports=function(t){var e=i(t,"string");return n(e)?e:e+""}},2140:(t,e,r)=>{"use strict";var i={};i[r(8227)("toStringTag")]="z",t.exports="[object z]"===String(i)},655:(t,e,r)=>{"use strict";var i=r(6955),n=String;t.exports=function(t){if("Symbol"===i(t))throw new TypeError("Cannot convert a Symbol value to a string");return n(t)}},6823:t=>{"use strict";var e=String;t.exports=function(t){try{return e(t)}catch(t){return"Object"}}},3392:(t,e,r)=>{"use strict";var i=r(9504),n=0,s=Math.random(),a=i(1..toString);t.exports=function(t){return"Symbol("+(void 0===t?"":t)+")_"+a(++n+s,36)}},7040:(t,e,r)=>{"use strict";var i=r(4495);t.exports=i&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},8686:(t,e,r)=>{"use strict";var i=r(3724),n=r(9039);t.exports=i&&n((function(){return 42!==Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},2812:t=>{"use strict";var e=TypeError;t.exports=function(t,r){if(t{"use strict";var i=r(4576),n=r(4901),s=i.WeakMap;t.exports=n(s)&&/native code/.test(String(s))},8227:(t,e,r)=>{"use strict";var i=r(4576),n=r(5745),s=r(9297),a=r(3392),o=r(4495),u=r(7040),h=i.Symbol,c=n("wks"),l=u?h.for||h:h&&h.withoutSetter||a;t.exports=function(t){return s(c,t)||(c[t]=o&&s(h,t)?h[t]:l("Symbol."+t)),c[t]}},7452:t=>{"use strict";t.exports="\t\n\v\f\r                 \u2028\u2029\ufeff"},5276:(t,e,r)=>{"use strict";var i=r(6518),n=r(7476),s=r(9617).indexOf,a=r(4598),o=n([].indexOf),u=!!o&&1/o([1],1,-0)<0;i({target:"Array",proto:!0,forced:u||!a("indexOf")},{indexOf:function(t){var e=arguments.length>1?arguments[1]:void 0;return u?o(this,t,e)||0:s(this,t,e)}})},3792:(t,e,r)=>{"use strict";var i=r(5397),n=r(6469),s=r(6269),a=r(1181),o=r(4913).f,u=r(1088),h=r(2529),c=r(6395),l=r(3724),f="Array Iterator",g=a.set,p=a.getterFor(f);t.exports=u(Array,"Array",(function(t,e){g(this,{type:f,target:i(t),index:0,kind:e})}),(function(){var t=p(this),e=t.target,r=t.index++;if(!e||r>=e.length)return t.target=null,h(void 0,!0);switch(t.kind){case"keys":return h(r,!1);case"values":return h(e[r],!1)}return h([r,e[r]],!1)}),"values");var d=s.Arguments=s.Array;if(n("keys"),n("values"),n("entries"),!c&&l&&"values"!==d.name)try{o(d,"name",{value:"values"})}catch(t){}},2712:(t,e,r)=>{"use strict";var i=r(6518),n=r(926).left,s=r(4598),a=r(9519);i({target:"Array",proto:!0,forced:!r(6193)&&a>79&&a<83||!s("reduce")},{reduce:function(t){var e=arguments.length;return n(this,t,e,e>1?arguments[1]:void 0)}})},2109:(t,e,r)=>{"use strict";var i=r(6518),n=r(9504),s=r(4376),a=n([].reverse),o=[1,2];i({target:"Array",proto:!0,forced:String(o)===String(o.reverse())},{reverse:function(){return s(this)&&(this.length=this.length),a(this)}})},6499:(t,e,r)=>{"use strict";var i=r(6518),n=r(9565),s=r(9306),a=r(6043),o=r(1103),u=r(2652);i({target:"Promise",stat:!0,forced:r(2918)},{all:function(t){var e=this,r=a.f(e),i=r.resolve,h=r.reject,c=o((function(){var r=s(e.resolve),a=[],o=0,c=1;u(t,(function(t){var s=o++,u=!1;c++,n(r,e,t).then((function(t){u||(u=!0,a[s]=t,--c||i(a))}),h)})),--c||i(a)}));return c.error&&h(c.value),r.promise}})},2003:(t,e,r)=>{"use strict";var i=r(6518),n=r(6395),s=r(916).CONSTRUCTOR,a=r(550),o=r(7751),u=r(4901),h=r(6840),c=a&&a.prototype;if(i({target:"Promise",proto:!0,forced:s,real:!0},{catch:function(t){return this.then(void 0,t)}}),!n&&u(a)){var l=o("Promise").prototype.catch;c.catch!==l&&h(c,"catch",l,{unsafe:!0})}},436:(t,e,r)=>{"use strict";var i,n,s,a=r(6518),o=r(6395),u=r(6193),h=r(4576),c=r(9565),l=r(6840),f=r(2967),g=r(687),p=r(7633),d=r(9306),v=r(4901),y=r(34),m=r(679),x=r(2293),b=r(9225).set,w=r(1955),S=r(3138),T=r(1103),O=r(8265),A=r(1181),C=r(550),E=r(916),P=r(6043),N="Promise",M=E.CONSTRUCTOR,R=E.REJECTION_EVENT,_=E.SUBCLASSING,V=A.getterFor(N),k=A.set,I=C&&C.prototype,L=C,D=I,B=h.TypeError,j=h.document,F=h.process,z=P.f,U=z,H=!!(j&&j.createEvent&&h.dispatchEvent),X="unhandledrejection",Y=function(t){var e;return!(!y(t)||!v(e=t.then))&&e},W=function(t,e){var r,i,n,s=e.value,a=1===e.state,o=a?t.ok:t.fail,u=t.resolve,h=t.reject,l=t.domain;try{o?(a||(2===e.rejection&&Z(e),e.rejection=1),!0===o?r=s:(l&&l.enter(),r=o(s),l&&(l.exit(),n=!0)),r===t.promise?h(new B("Promise-chain cycle")):(i=Y(r))?c(i,r,u,h):u(r)):h(s)}catch(t){l&&!n&&l.exit(),h(t)}},q=function(t,e){t.notified||(t.notified=!0,w((function(){for(var r,i=t.reactions;r=i.get();)W(r,t);t.notified=!1,e&&!t.rejection&&Q(t)})))},G=function(t,e,r){var i,n;H?((i=j.createEvent("Event")).promise=e,i.reason=r,i.initEvent(t,!1,!0),h.dispatchEvent(i)):i={promise:e,reason:r},!R&&(n=h["on"+t])?n(i):t===X&&S("Unhandled promise rejection",r)},Q=function(t){c(b,h,(function(){var e,r=t.facade,i=t.value;if($(t)&&(e=T((function(){u?F.emit("unhandledRejection",i,r):G(X,r,i)})),t.rejection=u||$(t)?2:1,e.error))throw e.value}))},$=function(t){return 1!==t.rejection&&!t.parent},Z=function(t){c(b,h,(function(){var e=t.facade;u?F.emit("rejectionHandled",e):G("rejectionhandled",e,t.value)}))},K=function(t,e,r){return function(i){t(e,i,r)}},J=function(t,e,r){t.done||(t.done=!0,r&&(t=r),t.value=e,t.state=2,q(t,!0))},tt=function(t,e,r){if(!t.done){t.done=!0,r&&(t=r);try{if(t.facade===e)throw new B("Promise can't be resolved itself");var i=Y(e);i?w((function(){var r={done:!1};try{c(i,e,K(tt,r,t),K(J,r,t))}catch(e){J(r,e,t)}})):(t.value=e,t.state=1,q(t,!1))}catch(e){J({done:!1},e,t)}}};if(M&&(D=(L=function(t){m(this,D),d(t),c(i,this);var e=V(this);try{t(K(tt,e),K(J,e))}catch(t){J(e,t)}}).prototype,(i=function(t){k(this,{type:N,done:!1,notified:!1,parent:!1,reactions:new O,rejection:!1,state:0,value:null})}).prototype=l(D,"then",(function(t,e){var r=V(this),i=z(x(this,L));return r.parent=!0,i.ok=!v(t)||t,i.fail=v(e)&&e,i.domain=u?F.domain:void 0,0===r.state?r.reactions.add(i):w((function(){W(i,r)})),i.promise})),n=function(){var t=new i,e=V(t);this.promise=t,this.resolve=K(tt,e),this.reject=K(J,e)},P.f=z=function(t){return t===L||undefined===t?new n(t):U(t)},!o&&v(C)&&I!==Object.prototype)){s=I.then,_||l(I,"then",(function(t,e){var r=this;return new L((function(t,e){c(s,r,t,e)})).then(t,e)}),{unsafe:!0});try{delete I.constructor}catch(t){}f&&f(I,D)}a({global:!0,constructor:!0,wrap:!0,forced:M},{Promise:L}),g(L,N,!1,!0),p(N)},3362:(t,e,r)=>{"use strict";r(436),r(6499),r(2003),r(7743),r(1481),r(280)},7743:(t,e,r)=>{"use strict";var i=r(6518),n=r(9565),s=r(9306),a=r(6043),o=r(1103),u=r(2652);i({target:"Promise",stat:!0,forced:r(2918)},{race:function(t){var e=this,r=a.f(e),i=r.reject,h=o((function(){var a=s(e.resolve);u(t,(function(t){n(a,e,t).then(r.resolve,i)}))}));return h.error&&i(h.value),r.promise}})},1481:(t,e,r)=>{"use strict";var i=r(6518),n=r(6043);i({target:"Promise",stat:!0,forced:r(916).CONSTRUCTOR},{reject:function(t){var e=n.f(this);return(0,e.reject)(t),e.promise}})},280:(t,e,r)=>{"use strict";var i=r(6518),n=r(7751),s=r(6395),a=r(550),o=r(916).CONSTRUCTOR,u=r(3438),h=n("Promise"),c=s&&!o;i({target:"Promise",stat:!0,forced:s||o},{resolve:function(t){return u(c&&this===h?a:this,t)}})},7495:(t,e,r)=>{"use strict";var i=r(6518),n=r(7323);i({target:"RegExp",proto:!0,forced:/./.exec!==n},{exec:n})},8781:(t,e,r)=>{"use strict";var i=r(350).PROPER,n=r(6840),s=r(8551),a=r(655),o=r(9039),u=r(1034),h="toString",c=RegExp.prototype,l=c[h],f=o((function(){return"/a/b"!==l.call({source:"a",flags:"b"})})),g=i&&l.name!==h;(f||g)&&n(c,h,(function(){var t=s(this);return"/"+a(t.source)+"/"+a(u(t))}),{unsafe:!0})},9449:(t,e,r)=>{"use strict";var i,n=r(6518),s=r(7476),a=r(7347).f,o=r(8014),u=r(655),h=r(511),c=r(7750),l=r(1436),f=r(6395),g=s("".slice),p=Math.min,d=l("endsWith");n({target:"String",proto:!0,forced:!!(f||d||(i=a(String.prototype,"endsWith"),!i||i.writable))&&!d},{endsWith:function(t){var e=u(c(this));h(t);var r=arguments.length>1?arguments[1]:void 0,i=e.length,n=void 0===r?i:p(o(r),i),s=u(t);return g(e,n-s.length,n)===s}})},1699:(t,e,r)=>{"use strict";var i=r(6518),n=r(9504),s=r(511),a=r(7750),o=r(655),u=r(1436),h=n("".indexOf);i({target:"String",proto:!0,forced:!u("includes")},{includes:function(t){return!!~h(o(a(this)),o(s(t)),arguments.length>1?arguments[1]:void 0)}})},1761:(t,e,r)=>{"use strict";var i=r(9565),n=r(9228),s=r(8551),a=r(4117),o=r(8014),u=r(655),h=r(7750),c=r(5966),l=r(7829),f=r(6682);n("match",(function(t,e,r){return[function(e){var r=h(this),n=a(e)?void 0:c(e,t);return n?i(n,e,r):new RegExp(e)[t](u(r))},function(t){var i=s(this),n=u(t),a=r(e,i,n);if(a.done)return a.value;if(!i.global)return f(i,n);var h=i.unicode;i.lastIndex=0;for(var c,g=[],p=0;null!==(c=f(i,n));){var d=u(c[0]);g[p]=d,""===d&&(i.lastIndex=l(n,o(i.lastIndex),h)),p++}return 0===p?null:g}]}))},5440:(t,e,r)=>{"use strict";var i=r(8745),n=r(9565),s=r(9504),a=r(9228),o=r(9039),u=r(8551),h=r(4901),c=r(4117),l=r(1291),f=r(8014),g=r(655),p=r(7750),d=r(7829),v=r(5966),y=r(2478),m=r(6682),x=r(8227)("replace"),b=Math.max,w=Math.min,S=s([].concat),T=s([].push),O=s("".indexOf),A=s("".slice),C="$0"==="a".replace(/./,"$0"),E=!!/./[x]&&""===/./[x]("a","$0");a("replace",(function(t,e,r){var s=E?"$":"$0";return[function(t,r){var i=p(this),s=c(t)?void 0:v(t,x);return s?n(s,t,i,r):n(e,g(i),t,r)},function(t,n){var a=u(this),o=g(t);if("string"==typeof n&&-1===O(n,s)&&-1===O(n,"$<")){var c=r(e,a,o,n);if(c.done)return c.value}var p=h(n);p||(n=g(n));var v,x=a.global;x&&(v=a.unicode,a.lastIndex=0);for(var C,E=[];null!==(C=m(a,o))&&(T(E,C),x);){""===g(C[0])&&(a.lastIndex=d(o,f(a.lastIndex),v))}for(var P,N="",M=0,R=0;R=M&&(N+=A(o,M,k)+_,M=k+V.length)}return N+A(o,M)}]}),!!o((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$")}))||!C||E)},744:(t,e,r)=>{"use strict";var i=r(9565),n=r(9504),s=r(9228),a=r(8551),o=r(4117),u=r(7750),h=r(2293),c=r(7829),l=r(8014),f=r(655),g=r(5966),p=r(6682),d=r(8429),v=r(9039),y=d.UNSUPPORTED_Y,m=Math.min,x=n([].push),b=n("".slice),w=!v((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var r="ab".split(t);return 2!==r.length||"a"!==r[0]||"b"!==r[1]})),S="c"==="abbc".split(/(b)*/)[1]||4!=="test".split(/(?:)/,-1).length||2!=="ab".split(/(?:ab)*/).length||4!==".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length;s("split",(function(t,e,r){var n="0".split(void 0,0).length?function(t,r){return void 0===t&&0===r?[]:i(e,this,t,r)}:e;return[function(e,r){var s=u(this),a=o(e)?void 0:g(e,t);return a?i(a,e,s,r):i(n,f(s),e,r)},function(t,i){var s=a(this),o=f(t);if(!S){var u=r(n,s,o,i,n!==e);if(u.done)return u.value}var g=h(s,RegExp),d=s.unicode,v=(s.ignoreCase?"i":"")+(s.multiline?"m":"")+(s.unicode?"u":"")+(y?"g":"y"),w=new g(y?"^(?:"+s.source+")":s,v),T=void 0===i?4294967295:i>>>0;if(0===T)return[];if(0===o.length)return null===p(w,o)?[o]:[];for(var O=0,A=0,C=[];A{"use strict";var i,n=r(6518),s=r(7476),a=r(7347).f,o=r(8014),u=r(655),h=r(511),c=r(7750),l=r(1436),f=r(6395),g=s("".slice),p=Math.min,d=l("startsWith");n({target:"String",proto:!0,forced:!!(f||d||(i=a(String.prototype,"startsWith"),!i||i.writable))&&!d},{startsWith:function(t){var e=u(c(this));h(t);var r=o(p(arguments.length>1?arguments[1]:void 0,e.length)),i=u(t);return g(e,r,r+i.length)===i}})},2762:(t,e,r)=>{"use strict";var i=r(6518),n=r(3802).trim;i({target:"String",proto:!0,forced:r(706)("trim")},{trim:function(){return n(this)}})},2953:(t,e,r)=>{"use strict";var i=r(4576),n=r(7400),s=r(9296),a=r(3792),o=r(6699),u=r(687),h=r(8227)("iterator"),c=a.values,l=function(t,e){if(t){if(t[h]!==c)try{o(t,h,c)}catch(e){t[h]=c}if(u(t,e,!0),n[e])for(var r in a)if(t[r]!==a[r])try{o(t,r,a[r])}catch(e){t[r]=a[r]}}};for(var f in n)l(i[f]&&i[f].prototype,f);l(s,"DOMTokenList")},7332:(t,e,r)=>{"use strict";r.r(e),r.d(e,{AElement:()=>fe,AnimateColorElement:()=>ae,AnimateElement:()=>se,AnimateTransformElement:()=>oe,BoundingBox:()=>Lt,CB1:()=>st,CB2:()=>at,CB3:()=>ot,CB4:()=>ut,Canvg:()=>He,CircleElement:()=>Wt,ClipPathElement:()=>Ne,DefsElement:()=>Jt,DescElement:()=>Le,Document:()=>Fe,Element:()=>Mt,EllipseElement:()=>qt,FeColorMatrixElement:()=>Ce,FeCompositeElement:()=>Ve,FeDropShadowElement:()=>Re,FeGaussianBlurElement:()=>ke,FeMorphologyElement:()=>_e,FilterElement:()=>Me,Font:()=>It,FontElement:()=>ue,FontFaceElement:()=>he,GElement:()=>te,GlyphElement:()=>Ft,GradientElement:()=>ee,ImageElement:()=>ye,LineElement:()=>Gt,LinearGradientElement:()=>re,MarkerElement:()=>Kt,MaskElement:()=>Ee,Matrix:()=>At,MissingGlyphElement:()=>ce,Mouse:()=>dt,PSEUDO_ZERO:()=>et,Parser:()=>wt,PathElement:()=>jt,PathParser:()=>Dt,PatternElement:()=>Zt,Point:()=>pt,PolygonElement:()=>$t,PolylineElement:()=>Qt,Property:()=>ft,QB1:()=>ht,QB2:()=>ct,QB3:()=>lt,RadialGradientElement:()=>ie,RectElement:()=>Yt,RenderedElement:()=>Bt,Rotate:()=>Tt,SVGElement:()=>Xt,SVGFontLoader:()=>xe,Scale:()=>Ot,Screen:()=>mt,Skew:()=>Ct,SkewX:()=>Et,SkewY:()=>Pt,StopElement:()=>ne,StyleElement:()=>be,SymbolElement:()=>me,TRefElement:()=>le,TSpanElement:()=>Ut,TextElement:()=>zt,TextPathElement:()=>de,TitleElement:()=>Ie,Transform:()=>Nt,Translate:()=>St,UnknownElement:()=>Rt,UseElement:()=>we,ViewPort:()=>gt,compressSpaces:()=>B,default:()=>He,getSelectorSpecificity:()=>tt,normalizeAttributeName:()=>H,normalizeColor:()=>Y,parseExternalUrl:()=>X,presets:()=>D,toNumbers:()=>z,trimLeft:()=>j,trimRight:()=>F,vectorMagnitude:()=>rt,vectorsAngle:()=>nt,vectorsRatio:()=>it});r(3362);function i(t,e,r,i,n,s,a){try{var o=t[s](a),u=o.value}catch(t){return void r(t)}o.done?e(u):Promise.resolve(u).then(i,n)}function n(t){return function(){var e=this,r=arguments;return new Promise((function(n,s){var a=t.apply(e,r);function o(t){i(a,n,s,o,u,"next",t)}function u(t){i(a,n,s,o,u,"throw",t)}o(void 0)}))}}r(1761),r(5440),r(1392),r(3792),r(2953);var s=r(2284);function a(t){var e=function(t,e){if("object"!=(0,s.A)(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var i=r.call(t,e||"default");if("object"!=(0,s.A)(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==(0,s.A)(e)?e:e+""}function o(t,e,r){return(e=a(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}r(2712),r(9449),r(744);var u=r(3146),h=(r(2762),r(2855)),c=(r(5276),r(1699),r(2109),function(t,e){return(c=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(t,e)});function l(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function r(){this.constructor=t}c(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}function f(t,e){var r=t[0],i=t[1];return[r*Math.cos(e)-i*Math.sin(e),r*Math.sin(e)+i*Math.cos(e)]}function g(){for(var t=[],e=0;et.phi1&&(t.phi2-=2*p),1===t.sweepFlag&&t.phi2i)return[];if(0===i)return[[t*r/(t*t+e*e),e*r/(t*t+e*e)]];var n=Math.sqrt(i);return[[(t*r+e*n)/(t*t+e*e),(e*r-t*n)/(t*t+e*e)],[(t*r-e*n)/(t*t+e*e),(e*r+t*n)/(t*t+e*e)]]}var y,m=Math.PI/180;function x(t,e,r){return(1-r)*t+r*e}function b(t,e,r,i){return t+Math.cos(i/180*p)*e+Math.sin(i/180*p)*r}function w(t,e,r,i){var n=1e-6,s=e-t,a=r-e,o=3*s+3*(i-r)-6*a,u=6*(a-s),h=3*s;return Math.abs(o)v&&(n.sweepFlag=+!n.sweepFlag),n}))}t.ROUND=function(t){function e(e){return Math.round(e*t)/t}return void 0===t&&(t=1e13),g(t),function(t){return void 0!==t.x1&&(t.x1=e(t.x1)),void 0!==t.y1&&(t.y1=e(t.y1)),void 0!==t.x2&&(t.x2=e(t.x2)),void 0!==t.y2&&(t.y2=e(t.y2)),void 0!==t.x&&(t.x=e(t.x)),void 0!==t.y&&(t.y=e(t.y)),void 0!==t.rX&&(t.rX=e(t.rX)),void 0!==t.rY&&(t.rY=e(t.rY)),t}},t.TO_ABS=e,t.TO_REL=function(){return n((function(t,e,r){return t.relative||(void 0!==t.x1&&(t.x1-=e),void 0!==t.y1&&(t.y1-=r),void 0!==t.x2&&(t.x2-=e),void 0!==t.y2&&(t.y2-=r),void 0!==t.x&&(t.x-=e),void 0!==t.y&&(t.y-=r),t.relative=!0),t}))},t.NORMALIZE_HVZ=function(t,e,r){return void 0===t&&(t=!0),void 0===e&&(e=!0),void 0===r&&(r=!0),n((function(i,n,s,a,o){if(isNaN(a)&&!(i.type&P.MOVE_TO))throw new Error("path must start with moveto");return e&&i.type&P.HORIZ_LINE_TO&&(i.type=P.LINE_TO,i.y=i.relative?0:s),r&&i.type&P.VERT_LINE_TO&&(i.type=P.LINE_TO,i.x=i.relative?0:n),t&&i.type&P.CLOSE_PATH&&(i.type=P.LINE_TO,i.x=i.relative?a-n:a,i.y=i.relative?o-s:o),i.type&P.ARC&&(0===i.rX||0===i.rY)&&(i.type=P.LINE_TO,delete i.rX,delete i.rY,delete i.xRot,delete i.lArcFlag,delete i.sweepFlag),i}))},t.NORMALIZE_ST=r,t.QT_TO_C=i,t.INFO=n,t.SANITIZE=function(t){void 0===t&&(t=0),g(t);var e=NaN,r=NaN,i=NaN,s=NaN;return n((function(n,a,o,u,h){var c=Math.abs,l=!1,f=0,g=0;if(n.type&P.SMOOTH_CURVE_TO&&(f=isNaN(e)?0:a-e,g=isNaN(r)?0:o-r),n.type&(P.CURVE_TO|P.SMOOTH_CURVE_TO)?(e=n.relative?a+n.x2:n.x2,r=n.relative?o+n.y2:n.y2):(e=NaN,r=NaN),n.type&P.SMOOTH_QUAD_TO?(i=isNaN(i)?a:2*a-i,s=isNaN(s)?o:2*o-s):n.type&P.QUAD_TO?(i=n.relative?a+n.x1:n.x1,s=n.relative?o+n.y1:n.y2):(i=NaN,s=NaN),n.type&P.LINE_COMMANDS||n.type&P.ARC&&(0===n.rX||0===n.rY||!n.lArcFlag)||n.type&P.CURVE_TO||n.type&P.SMOOTH_CURVE_TO||n.type&P.QUAD_TO||n.type&P.SMOOTH_QUAD_TO){var p=void 0===n.x?0:n.relative?n.x:n.x-a,d=void 0===n.y?0:n.relative?n.y:n.y-o;f=isNaN(i)?void 0===n.x1?f:n.relative?n.x:n.x1-a:i-a,g=isNaN(s)?void 0===n.y1?g:n.relative?n.y:n.y1-o:s-o;var v=void 0===n.x2?0:n.relative?n.x:n.x2-a,y=void 0===n.y2?0:n.relative?n.y:n.y2-o;c(p)<=t&&c(d)<=t&&c(f)<=t&&c(g)<=t&&c(v)<=t&&c(y)<=t&&(l=!0)}return n.type&P.CLOSE_PATH&&c(a-u)<=t&&c(o-h)<=t&&(l=!0),l?[]:n}))},t.MATRIX=s,t.ROTATE=function(t,e,r){void 0===e&&(e=0),void 0===r&&(r=0),g(t,e,r);var i=Math.sin(t),n=Math.cos(t);return s(n,i,-i,n,e-e*n+r*i,r-e*i-r*n)},t.TRANSLATE=function(t,e){return void 0===e&&(e=0),g(t,e),s(1,0,0,1,t,e)},t.SCALE=function(t,e){return void 0===e&&(e=t),g(t,e),s(t,0,0,e,0,0)},t.SKEW_X=function(t){return g(t),s(1,0,Math.atan(t),1,0,0)},t.SKEW_Y=function(t){return g(t),s(1,Math.atan(t),0,1,0,0)},t.X_AXIS_SYMMETRY=function(t){return void 0===t&&(t=0),g(t),s(-1,0,0,1,t,0)},t.Y_AXIS_SYMMETRY=function(t){return void 0===t&&(t=0),g(t),s(1,0,0,-1,0,t)},t.A_TO_C=function(){return n((function(t,e,r){return P.ARC===t.type?function(t,e,r){var i,n,s,a;t.cX||d(t,e,r);for(var o=Math.min(t.phi1,t.phi2),u=Math.max(t.phi1,t.phi2)-o,h=Math.ceil(u/90),c=new Array(h),l=e,g=r,p=0;po.maxX&&(o.maxX=t),to.maxY&&(o.maxY=t),tV&&u(S(r,n.x1,n.x2,n.x,V));for(var f=0,g=w(i,n.y1,n.y2,n.y);fV&&h(S(i,n.y1,n.y2,n.y,V))}if(n.type&P.ARC){u(n.x),h(n.y),d(n,r,i);for(var p=n.xRot/180*Math.PI,y=Math.cos(p)*n.rX,m=Math.sin(p)*n.rX,x=-Math.sin(p)*n.rY,T=Math.cos(p)*n.rY,O=n.phi1n.phi2?[n.phi2+360,n.phi1+360]:[n.phi2,n.phi1],A=O[0],C=O[1],E=function(t){var e=t[0],r=t[1],i=180*Math.atan2(r,e)/Math.PI;return iA&&VA&&Vu)throw new SyntaxError('Expected positive number, got "'+u+'" at index "'+n+'"')}else if((3===this.curArgs.length||4===this.curArgs.length)&&"0"!==this.curNumber&&"1"!==this.curNumber)throw new SyntaxError('Expected a flag, got "'+this.curNumber+'" at index "'+n+'"');this.curArgs.push(u),this.curArgs.length===N[this.curCommandType]&&(P.HORIZ_LINE_TO===this.curCommandType?i({type:P.HORIZ_LINE_TO,relative:this.curCommandRelative,x:u}):P.VERT_LINE_TO===this.curCommandType?i({type:P.VERT_LINE_TO,relative:this.curCommandRelative,y:u}):this.curCommandType===P.MOVE_TO||this.curCommandType===P.LINE_TO||this.curCommandType===P.SMOOTH_QUAD_TO?(i({type:this.curCommandType,relative:this.curCommandRelative,x:this.curArgs[0],y:this.curArgs[1]}),P.MOVE_TO===this.curCommandType&&(this.curCommandType=P.LINE_TO)):this.curCommandType===P.CURVE_TO?i({type:P.CURVE_TO,relative:this.curCommandRelative,x1:this.curArgs[0],y1:this.curArgs[1],x2:this.curArgs[2],y2:this.curArgs[3],x:this.curArgs[4],y:this.curArgs[5]}):this.curCommandType===P.SMOOTH_CURVE_TO?i({type:P.SMOOTH_CURVE_TO,relative:this.curCommandRelative,x2:this.curArgs[0],y2:this.curArgs[1],x:this.curArgs[2],y:this.curArgs[3]}):this.curCommandType===P.QUAD_TO?i({type:P.QUAD_TO,relative:this.curCommandRelative,x1:this.curArgs[0],y1:this.curArgs[1],x:this.curArgs[2],y:this.curArgs[3]}):this.curCommandType===P.ARC&&i({type:P.ARC,relative:this.curCommandRelative,rX:this.curArgs[0],rY:this.curArgs[1],xRot:this.curArgs[2],lArcFlag:this.curArgs[3],sweepFlag:this.curArgs[4],x:this.curArgs[5],y:this.curArgs[6]})),this.curNumber="",this.curNumberHasExpDigits=!1,this.curNumberHasExp=!1,this.curNumberHasDecimal=!1,this.canParseCommandOrComma=!0}if(!A(s))if(","===s&&this.canParseCommandOrComma)this.canParseCommandOrComma=!1;else if("+"!==s&&"-"!==s&&"."!==s)if(o)this.curNumber=s,this.curNumberHasDecimal=!1;else{if(0!==this.curArgs.length)throw new SyntaxError("Unterminated command at index "+n+".");if(!this.canParseCommandOrComma)throw new SyntaxError('Unexpected character "'+s+'" at index '+n+". Command cannot follow comma");if(this.canParseCommandOrComma=!1,"z"!==s&&"Z"!==s)if("h"===s||"H"===s)this.curCommandType=P.HORIZ_LINE_TO,this.curCommandRelative="h"===s;else if("v"===s||"V"===s)this.curCommandType=P.VERT_LINE_TO,this.curCommandRelative="v"===s;else if("m"===s||"M"===s)this.curCommandType=P.MOVE_TO,this.curCommandRelative="m"===s;else if("l"===s||"L"===s)this.curCommandType=P.LINE_TO,this.curCommandRelative="l"===s;else if("c"===s||"C"===s)this.curCommandType=P.CURVE_TO,this.curCommandRelative="c"===s;else if("s"===s||"S"===s)this.curCommandType=P.SMOOTH_CURVE_TO,this.curCommandRelative="s"===s;else if("q"===s||"Q"===s)this.curCommandType=P.QUAD_TO,this.curCommandRelative="q"===s;else if("t"===s||"T"===s)this.curCommandType=P.SMOOTH_QUAD_TO,this.curCommandRelative="t"===s;else{if("a"!==s&&"A"!==s)throw new SyntaxError('Unexpected character "'+s+'" at index '+n+".");this.curCommandType=P.ARC,this.curCommandRelative="a"===s}else e.push({type:P.CLOSE_PATH}),this.canParseCommandOrComma=!0,this.curCommandType=-1}else this.curNumber=s,this.curNumberHasDecimal="."===s}else this.curNumber+=s,this.curNumberHasDecimal=!0;else this.curNumber+=s;else this.curNumber+=s,this.curNumberHasExp=!0;else this.curNumber+=s,this.curNumberHasExpDigits=this.curNumberHasExp}return e},e.prototype.transform=function(t){return Object.create(this,{parse:{value:function(e,r){void 0===r&&(r=[]);for(var i=0,n=Object.getPrototypeOf(this).parse.call(this,e);i>>w;if(o[x+3]=Z,0!==Z){var K=255/Z;o[x]=(j*b>>>w)*K,o[x+1]=(F*b>>>w)*K,o[x+2]=(z*b>>>w)*K}else o[x]=o[x+1]=o[x+2]=0;j-=k,F-=L,z-=D,U-=B,k-=v.r,L-=v.g,D-=v.b,B-=v.a;var J=$+s+1;J=m+(J>>w,ht>0?(ht=255/ht,o[Et]=(pt*b>>>w)*ht,o[Et+1]=(dt*b>>>w)*ht,o[Et+2]=(vt*b>>>w)*ht):o[Et]=o[Et+1]=o[Et+2]=0,pt-=ct,dt-=lt,vt-=ft,yt-=gt,ct-=v.r,lt-=v.g,ft-=v.b,gt-=v.a,Et=st+((Et=Ct+l)0&&void 0!==arguments[0]?arguments[0]:{},e={window:null,ignoreAnimation:!0,ignoreMouse:!0,DOMParser:t,createCanvas:(t,e)=>new OffscreenCanvas(t,e),createImage:t=>n((function*(){var e=yield fetch(t),r=yield e.blob();return yield createImageBitmap(r)}))()};return"undefined"==typeof DOMParser&&void 0!==t||Reflect.deleteProperty(e,"DOMParser"),e},node:function(t){var{DOMParser:e,canvas:r,fetch:i}=t;return{window:null,ignoreAnimation:!0,ignoreMouse:!0,DOMParser:e,fetch:i,createCanvas:r.createCanvas,createImage:r.loadImage}}});function B(t){return t.replace(/(?!\u3000)\s+/gm," ")}function j(t){return t.replace(/^[\n \t]+/,"")}function F(t){return t.replace(/[\n \t]+$/,"")}function z(t){return((t||"").match(/-?(\d+(?:\.\d*(?:[eE][+-]?\d+)?)?|\.\d+)(?=\D|$)/gm)||[]).map(parseFloat)}var U=/^[A-Z-]+$/;function H(t){return U.test(t)?t.toLowerCase():t}function X(t){var e=/url\(('([^']+)'|"([^"]+)"|([^'")]+))\)/.exec(t)||[];return e[2]||e[3]||e[4]}function Y(t){if(!t.startsWith("rgb"))return t;var e=3;return t.replace(/\d+(\.\d+)?/g,((t,r)=>e--&&r?String(Math.round(parseFloat(t))):t))}var W=/(\[[^\]]+\])/g,q=/(#[^\s+>~.[:]+)/g,G=/(\.[^\s+>~.[:]+)/g,Q=/(::[^\s+>~.[:]+|:first-line|:first-letter|:before|:after)/gi,$=/(:[\w-]+\([^)]*\))/gi,Z=/(:[^\s+>~.[:]+)/g,K=/([^\s+>~.[:]+)/g;function J(t,e){var r=e.exec(t);return r?[t.replace(e," "),r.length]:[t,0]}function tt(t){var e=[0,0,0],r=t.replace(/:not\(([^)]*)\)/g," $1 ").replace(/{[\s\S]*/gm," "),i=0;return[r,i]=J(r,W),e[1]+=i,[r,i]=J(r,q),e[0]+=i,[r,i]=J(r,G),e[1]+=i,[r,i]=J(r,Q),e[2]+=i,[r,i]=J(r,$),e[1]+=i,[r,i]=J(r,Z),e[1]+=i,r=r.replace(/[*\s+>~]/g," ").replace(/[#.]/g," "),[r,i]=J(r,K),e[2]+=i,e.join("")}var et=1e-8;function rt(t){return Math.sqrt(Math.pow(t[0],2)+Math.pow(t[1],2))}function it(t,e){return(t[0]*e[0]+t[1]*e[1])/(rt(t)*rt(e))}function nt(t,e){return(t[0]*e[1]0&&void 0!==arguments[0]?arguments[0]:" ",{document:e,name:r}=this;return B(this.getString()).trim().split(t).map((t=>new ft(e,r,t)))}hasValue(t){var{value:e}=this;return null!==e&&""!==e&&(t||0!==e)&&void 0!==e}isString(t){var{value:e}=this,r="string"==typeof e;return r&&t?t.test(e):r}isUrlDefinition(){return this.isString(/^url\(/)}isPixels(){if(!this.hasValue())return!1;var t=this.getString();switch(!0){case t.endsWith("px"):case/^[0-9]+$/.test(t):return!0;default:return!1}}setValue(t){return this.value=t,this}getValue(t){return void 0===t||this.hasValue()?this.value:t}getNumber(t){if(!this.hasValue())return void 0===t?0:parseFloat(t);var{value:e}=this,r=parseFloat(e);return this.isString(/%$/)&&(r/=100),r}getString(t){return void 0===t||this.hasValue()?void 0===this.value?"":String(this.value):String(t)}getColor(t){var e=this.getString(t);return this.isNormalizedColor||(this.isNormalizedColor=!0,e=Y(e),this.value=e),e}getDpi(){return 96}getRem(){return this.document.rootEmSize}getEm(){return this.document.emSize}getUnits(){return this.getString().replace(/[0-9.-]/g,"")}getPixels(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!this.hasValue())return 0;var[r,i]="boolean"==typeof t?[void 0,t]:[t],{viewPort:n}=this.document.screen;switch(!0){case this.isString(/vmin$/):return this.getNumber()/100*Math.min(n.computeSize("x"),n.computeSize("y"));case this.isString(/vmax$/):return this.getNumber()/100*Math.max(n.computeSize("x"),n.computeSize("y"));case this.isString(/vw$/):return this.getNumber()/100*n.computeSize("x");case this.isString(/vh$/):return this.getNumber()/100*n.computeSize("y");case this.isString(/rem$/):return this.getNumber()*this.getRem();case this.isString(/em$/):return this.getNumber()*this.getEm();case this.isString(/ex$/):return this.getNumber()*this.getEm()/2;case this.isString(/px$/):return this.getNumber();case this.isString(/pt$/):return this.getNumber()*this.getDpi()*(1/72);case this.isString(/pc$/):return 15*this.getNumber();case this.isString(/cm$/):return this.getNumber()*this.getDpi()/2.54;case this.isString(/mm$/):return this.getNumber()*this.getDpi()/25.4;case this.isString(/in$/):return this.getNumber()*this.getDpi();case this.isString(/%$/)&&i:return this.getNumber()*this.getEm();case this.isString(/%$/):return this.getNumber()*n.computeSize(r);default:var s=this.getNumber();return e&&s<1?s*n.computeSize(r):s}}getMilliseconds(){return this.hasValue()?this.isString(/ms$/)?this.getNumber():1e3*this.getNumber():0}getRadians(){if(!this.hasValue())return 0;switch(!0){case this.isString(/deg$/):return this.getNumber()*(Math.PI/180);case this.isString(/grad$/):return this.getNumber()*(Math.PI/200);case this.isString(/rad$/):return this.getNumber();default:return this.getNumber()*(Math.PI/180)}}getDefinition(){var t=this.getString(),e=/#([^)'"]+)/.exec(t);return e&&(e=e[1]),e||(e=t),this.document.definitions[e]}getFillStyleDefinition(t,e){var r=this.getDefinition();if(!r)return null;if("function"==typeof r.createGradient)return r.createGradient(this.document.ctx,t,e);if("function"==typeof r.createPattern){if(r.getHrefAttribute().hasValue()){var i=r.getAttribute("patternTransform");r=r.getHrefAttribute().getDefinition(),i.hasValue()&&r.getAttribute("patternTransform",!0).setValue(i.value)}return r.createPattern(this.document.ctx,t,e)}return null}getTextBaseline(){return this.hasValue()?ft.textBaselineMapping[this.getString()]:null}addOpacity(t){for(var e=this.getColor(),r=e.length,i=0,n=0;n1&&void 0!==arguments[1]?arguments[1]:0,[r=e,i=e]=z(t);return new pt(r,i)}static parseScale(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,[r=e,i=r]=z(t);return new pt(r,i)}static parsePath(t){for(var e=z(t),r=e.length,i=[],n=0;n0}runEvents(){if(this.working){var{screen:t,events:e,eventElements:r}=this,{style:i}=t.ctx.canvas;i&&(i.cursor=""),e.forEach(((t,e)=>{for(var{run:i}=t,n=r[e];n;)i(n),n=n.parent})),this.events=[],this.eventElements=[]}}checkPath(t,e){if(this.working&&e){var{events:r,eventElements:i}=this;r.forEach(((r,n)=>{var{x:s,y:a}=r;!i[n]&&e.isPointInPath&&e.isPointInPath(s,a)&&(i[n]=t)}))}}checkBoundingBox(t,e){if(this.working&&e){var{events:r,eventElements:i}=this;r.forEach(((r,n)=>{var{x:s,y:a}=r;!i[n]&&e.isPointInBox(s,a)&&(i[n]=t)}))}}mapXY(t,e){for(var{window:r,ctx:i}=this.screen,n=new pt(t,e),s=i.canvas;s;)n.x-=s.offsetLeft,n.y-=s.offsetTop,s=s.offsetParent;return r.scrollX&&(n.x+=r.scrollX),r.scrollY&&(n.y+=r.scrollY),n}onClick(t){var{x:e,y:r}=this.mapXY(t.clientX,t.clientY);this.events.push({type:"onclick",x:e,y:r,run(t){t.onClick&&t.onClick()}})}onMouseMove(t){var{x:e,y:r}=this.mapXY(t.clientX,t.clientY);this.events.push({type:"onmousemove",x:e,y:r,run(t){t.onMouseMove&&t.onMouseMove()}})}}var vt="undefined"!=typeof window?window:null,yt="undefined"!=typeof fetch?fetch.bind(void 0):null;class mt{constructor(t){var{fetch:e=yt,window:r=vt}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.ctx=t,this.FRAMERATE=30,this.MAX_VIRTUAL_PIXELS=3e4,this.CLIENT_WIDTH=800,this.CLIENT_HEIGHT=600,this.viewPort=new gt,this.mouse=new dt(this),this.animations=[],this.waits=[],this.frameDuration=0,this.isReadyLock=!1,this.isFirstRender=!0,this.intervalId=null,this.window=r,this.fetch=e}wait(t){this.waits.push(t)}ready(){return this.readyPromise?this.readyPromise:Promise.resolve()}isReady(){if(this.isReadyLock)return!0;var t=this.waits.every((t=>t()));return t&&(this.waits=[],this.resolveReady&&this.resolveReady()),this.isReadyLock=t,t}setDefaults(t){t.strokeStyle="rgba(0,0,0,0)",t.lineCap="butt",t.lineJoin="miter",t.miterLimit=4}setViewBox(t){var{document:e,ctx:r,aspectRatio:i,width:n,desiredWidth:s,height:a,desiredHeight:o,minX:u=0,minY:h=0,refX:c,refY:l,clip:f=!1,clipX:g=0,clipY:p=0}=t,d=B(i).replace(/^defer\s/,""),[v,y]=d.split(" "),m=v||"xMidYMid",x=y||"meet",b=n/s,w=a/o,S=Math.min(b,w),T=Math.max(b,w),O=s,A=o;"meet"===x&&(O*=S,A*=S),"slice"===x&&(O*=T,A*=T);var C=new ft(e,"refX",c),E=new ft(e,"refY",l),P=C.hasValue()&&E.hasValue();if(P&&r.translate(-S*C.getPixels("x"),-S*E.getPixels("y")),f){var N=S*g,M=S*p;r.beginPath(),r.moveTo(N,M),r.lineTo(n,M),r.lineTo(n,a),r.lineTo(N,a),r.closePath(),r.clip()}if(!P){var R="meet"===x&&S===w,_="slice"===x&&T===w,V="meet"===x&&S===b,k="slice"===x&&T===b;m.startsWith("xMid")&&(R||_)&&r.translate(n/2-O/2,0),m.endsWith("YMid")&&(V||k)&&r.translate(0,a/2-A/2),m.startsWith("xMax")&&(R||_)&&r.translate(n-O,0),m.endsWith("YMax")&&(V||k)&&r.translate(0,a-A)}switch(!0){case"none"===m:r.scale(b,w);break;case"meet"===x:r.scale(S,S);break;case"slice"===x:r.scale(T,T)}r.translate(-u,-h)}start(t){var{enableRedraw:e=!1,ignoreMouse:r=!1,ignoreAnimation:i=!1,ignoreDimensions:n=!1,ignoreClear:s=!1,forceRedraw:a,scaleWidth:o,scaleHeight:h,offsetX:c,offsetY:l}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{FRAMERATE:f,mouse:g}=this,p=1e3/f;if(this.frameDuration=p,this.readyPromise=new Promise((t=>{this.resolveReady=t})),this.isReady()&&this.render(t,n,s,o,h,c,l),e){var d=Date.now(),v=d,y=0,m=()=>{d=Date.now(),(y=d-v)>=p&&(v=d-y%p,this.shouldUpdate(i,a)&&(this.render(t,n,s,o,h,c,l),g.runEvents())),this.intervalId=u(m)};r||g.start(),this.intervalId=u(m)}}stop(){this.intervalId&&(u.cancel(this.intervalId),this.intervalId=null),this.mouse.stop()}shouldUpdate(t,e){if(!t){var{frameDuration:r}=this;if(this.animations.reduce(((t,e)=>e.update(r)||t),!1))return!0}return!("function"!=typeof e||!e())||(!(this.isReadyLock||!this.isReady())||!!this.mouse.hasEvents())}render(t,e,r,i,n,s,a){var{CLIENT_WIDTH:o,CLIENT_HEIGHT:u,viewPort:h,ctx:c,isFirstRender:l}=this,f=c.canvas;h.clear(),f.width&&f.height?h.setCurrent(f.width,f.height):h.setCurrent(o,u);var g=t.getStyle("width"),p=t.getStyle("height");!e&&(l||"number"!=typeof i&&"number"!=typeof n)&&(g.hasValue()&&(f.width=g.getPixels("x"),f.style&&(f.style.width="".concat(f.width,"px"))),p.hasValue()&&(f.height=p.getPixels("y"),f.style&&(f.style.height="".concat(f.height,"px"))));var d=f.clientWidth||f.width,v=f.clientHeight||f.height;if(e&&g.hasValue()&&p.hasValue()&&(d=g.getPixels("x"),v=p.getPixels("y")),h.setCurrent(d,v),"number"==typeof s&&t.getAttribute("x",!0).setValue(s),"number"==typeof a&&t.getAttribute("y",!0).setValue(a),"number"==typeof i||"number"==typeof n){var y=z(t.getAttribute("viewBox").getString()),m=0,x=0;if("number"==typeof i){var b=t.getStyle("width");b.hasValue()?m=b.getPixels("x")/i:isNaN(y[2])||(m=y[2]/i)}if("number"==typeof n){var w=t.getStyle("height");w.hasValue()?x=w.getPixels("y")/n:isNaN(y[3])||(x=y[3]/n)}m||(m=x),x||(x=m),t.getAttribute("width",!0).setValue(i),t.getAttribute("height",!0).setValue(n);var S=t.getStyle("transform",!0,!0);S.setValue("".concat(S.getString()," scale(").concat(1/m,", ").concat(1/x,")"))}r||c.clearRect(0,0,d,v),t.render(c),l&&(this.isFirstRender=!1)}}mt.defaultWindow=vt,mt.defaultFetch=yt;var{defaultFetch:xt}=mt,bt="undefined"!=typeof DOMParser?DOMParser:null;class wt{constructor(){var{fetch:t=xt,DOMParser:e=bt}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.fetch=t,this.DOMParser=e}parse(t){var e=this;return n((function*(){return t.startsWith("<")?e.parseFromString(t):e.load(t)}))()}parseFromString(t){var e=new this.DOMParser;try{return this.checkDocument(e.parseFromString(t,"image/svg+xml"))}catch(r){return this.checkDocument(e.parseFromString(t,"text/xml"))}}checkDocument(t){var e=t.getElementsByTagName("parsererror")[0];if(e)throw new Error(e.textContent);return t}load(t){var e=this;return n((function*(){var r=yield e.fetch(t),i=yield r.text();return e.parseFromString(i)}))()}}class St{constructor(t,e){this.type="translate",this.point=null,this.point=pt.parse(e)}apply(t){var{x:e,y:r}=this.point;t.translate(e||0,r||0)}unapply(t){var{x:e,y:r}=this.point;t.translate(-1*e||0,-1*r||0)}applyToPoint(t){var{x:e,y:r}=this.point;t.applyTransform([1,0,0,1,e||0,r||0])}}class Tt{constructor(t,e,r){this.type="rotate",this.angle=null,this.originX=null,this.originY=null,this.cx=0,this.cy=0;var i=z(e);this.angle=new ft(t,"angle",i[0]),this.originX=r[0],this.originY=r[1],this.cx=i[1]||0,this.cy=i[2]||0}apply(t){var{cx:e,cy:r,originX:i,originY:n,angle:s}=this,a=e+i.getPixels("x"),o=r+n.getPixels("y");t.translate(a,o),t.rotate(s.getRadians()),t.translate(-a,-o)}unapply(t){var{cx:e,cy:r,originX:i,originY:n,angle:s}=this,a=e+i.getPixels("x"),o=r+n.getPixels("y");t.translate(a,o),t.rotate(-1*s.getRadians()),t.translate(-a,-o)}applyToPoint(t){var{cx:e,cy:r,angle:i}=this,n=i.getRadians();t.applyTransform([1,0,0,1,e||0,r||0]),t.applyTransform([Math.cos(n),Math.sin(n),-Math.sin(n),Math.cos(n),0,0]),t.applyTransform([1,0,0,1,-e||0,-r||0])}}class Ot{constructor(t,e,r){this.type="scale",this.scale=null,this.originX=null,this.originY=null;var i=pt.parseScale(e);0!==i.x&&0!==i.y||(i.x=et,i.y=et),this.scale=i,this.originX=r[0],this.originY=r[1]}apply(t){var{scale:{x:e,y:r},originX:i,originY:n}=this,s=i.getPixels("x"),a=n.getPixels("y");t.translate(s,a),t.scale(e,r||e),t.translate(-s,-a)}unapply(t){var{scale:{x:e,y:r},originX:i,originY:n}=this,s=i.getPixels("x"),a=n.getPixels("y");t.translate(s,a),t.scale(1/e,1/r||e),t.translate(-s,-a)}applyToPoint(t){var{x:e,y:r}=this.scale;t.applyTransform([e||0,0,0,r||0,0,0])}}class At{constructor(t,e,r){this.type="matrix",this.matrix=[],this.originX=null,this.originY=null,this.matrix=z(e),this.originX=r[0],this.originY=r[1]}apply(t){var{originX:e,originY:r,matrix:i}=this,n=e.getPixels("x"),s=r.getPixels("y");t.translate(n,s),t.transform(i[0],i[1],i[2],i[3],i[4],i[5]),t.translate(-n,-s)}unapply(t){var{originX:e,originY:r,matrix:i}=this,n=i[0],s=i[2],a=i[4],o=i[1],u=i[3],h=i[5],c=1/(n*(1*u-0*h)-s*(1*o-0*h)+a*(0*o-0*u)),l=e.getPixels("x"),f=r.getPixels("y");t.translate(l,f),t.transform(c*(1*u-0*h),c*(0*h-1*o),c*(0*a-1*s),c*(1*n-0*a),c*(s*h-a*u),c*(a*o-n*h)),t.translate(-l,-f)}applyToPoint(t){t.applyTransform(this.matrix)}}class Ct extends At{constructor(t,e,r){super(t,e,r),this.type="skew",this.angle=null,this.angle=new ft(t,"angle",e)}}class Et extends Ct{constructor(t,e,r){super(t,e,r),this.type="skewX",this.matrix=[1,0,Math.tan(this.angle.getRadians()),1,0,0]}}class Pt extends Ct{constructor(t,e,r){super(t,e,r),this.type="skewY",this.matrix=[1,Math.tan(this.angle.getRadians()),0,1,0,0]}}class Nt{constructor(t,e,r){this.document=t,this.transforms=[];var i=function(t){return B(t).trim().replace(/\)([a-zA-Z])/g,") $1").replace(/\)(\s?,\s?)/g,") ").split(/\s(?=[a-z])/)}(e);i.forEach((t=>{if("none"!==t){var[e,i]=function(t){var[e,r]=t.split("(");return[e.trim(),r.trim().replace(")","")]}(t),n=Nt.transformTypes[e];void 0!==n&&this.transforms.push(new n(this.document,i,r))}}))}static fromElement(t,e){var r=e.getStyle("transform",!1,!0),[i,n=i]=e.getStyle("transform-origin",!1,!0).split(),s=[i,n];return r.hasValue()?new Nt(t,r.getString(),s):null}apply(t){for(var{transforms:e}=this,r=e.length,i=0;i=0;r--)e[r].unapply(t)}applyToPoint(t){for(var{transforms:e}=this,r=e.length,i=0;i2&&void 0!==arguments[2]&&arguments[2];if(this.document=t,this.node=e,this.captureTextNodes=r,this.attributes={},this.styles={},this.stylesSpecificity={},this.animationFrozen=!1,this.animationFrozenValue="",this.parent=null,this.children=[],e&&1===e.nodeType){if(Array.from(e.attributes).forEach((e=>{var r=H(e.nodeName);this.attributes[r]=new ft(t,r,e.value)})),this.addStylesFromStyleDefinition(),this.getAttribute("style").hasValue()){var i=this.getAttribute("style").getString().split(";").map((t=>t.trim()));i.forEach((e=>{if(e){var[r,i]=e.split(":").map((t=>t.trim()));this.styles[r]=new ft(t,r,i)}}))}var{definitions:n}=t,s=this.getAttribute("id");s.hasValue()&&(n[s.getString()]||(n[s.getString()]=this)),Array.from(e.childNodes).forEach((e=>{if(1===e.nodeType)this.addChild(e);else if(r&&(3===e.nodeType||4===e.nodeType)){var i=t.createTextNode(e);i.getText().length>0&&this.addChild(i)}}))}}getAttribute(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=this.attributes[t];if(!r&&e){var i=new ft(this.document,t,"");return this.attributes[t]=i,i}return r||ft.empty(this.document)}getHrefAttribute(){for(var t in this.attributes)if("href"===t||t.endsWith(":href"))return this.attributes[t];return ft.empty(this.document)}getStyle(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=this.styles[t];if(i)return i;var n=this.getAttribute(t);if(null!=n&&n.hasValue())return this.styles[t]=n,n;if(!r){var{parent:s}=this;if(s){var a=s.getStyle(t);if(null!=a&&a.hasValue())return a}}if(e){var o=new ft(this.document,t,"");return this.styles[t]=o,o}return i||ft.empty(this.document)}render(t){if("none"!==this.getStyle("display").getString()&&"hidden"!==this.getStyle("visibility").getString()){if(t.save(),this.getStyle("mask").hasValue()){var e=this.getStyle("mask").getDefinition();e&&(this.applyEffects(t),e.apply(t,this))}else if("none"!==this.getStyle("filter").getValue("none")){var r=this.getStyle("filter").getDefinition();r&&(this.applyEffects(t),r.apply(t,this))}else this.setContext(t),this.renderChildren(t),this.clearContext(t);t.restore()}}setContext(t){}applyEffects(t){var e=Nt.fromElement(this.document,this);e&&e.apply(t);var r=this.getStyle("clip-path",!1,!0);if(r.hasValue()){var i=r.getDefinition();i&&i.apply(t)}}clearContext(t){}renderChildren(t){this.children.forEach((e=>{e.render(t)}))}addChild(t){var e=t instanceof Mt?t:this.document.createElement(t);e.parent=this,Mt.ignoreChildTypes.includes(e.type)||this.children.push(e)}matchesSelector(t){var e,{node:r}=this;if("function"==typeof r.matches)return r.matches(t);var i=null===(e=r.getAttribute)||void 0===e?void 0:e.call(r,"class");return!(!i||""===i)&&i.split(" ").some((e=>".".concat(e)===t))}addStylesFromStyleDefinition(){var{styles:t,stylesSpecificity:e}=this.document;for(var r in t)if(!r.startsWith("@")&&this.matchesSelector(r)){var i=t[r],n=e[r];if(i)for(var s in i){var a=this.stylesSpecificity[s];void 0===a&&(a="000"),n>=a&&(this.styles[s]=i[s],this.stylesSpecificity[s]=n)}}}removeStyles(t,e){return e.reduce(((e,r)=>{var i=t.getStyle(r);if(!i.hasValue())return e;var n=i.getString();return i.setValue(""),[...e,[r,n]]}),[])}restoreStyles(t,e){e.forEach((e=>{var[r,i]=e;t.getStyle(r,!0).setValue(i)}))}isFirstChild(){var t;return 0===(null===(t=this.parent)||void 0===t?void 0:t.children.indexOf(this))}}Mt.ignoreChildTypes=["title"];class Rt extends Mt{constructor(t,e,r){super(t,e,r)}}function _t(t){var e=t.trim();return/^('|")/.test(e)?e:'"'.concat(e,'"')}function Vt(t){if(!t)return"";var e=t.trim().toLowerCase();switch(e){case"normal":case"italic":case"oblique":case"inherit":case"initial":case"unset":return e;default:return/^oblique\s+(-|)\d+deg$/.test(e)?e:""}}function kt(t){if(!t)return"";var e=t.trim().toLowerCase();switch(e){case"normal":case"bold":case"lighter":case"bolder":case"inherit":case"initial":case"unset":return e;default:return/^[\d.]+$/.test(e)?e:""}}class It{constructor(t,e,r,i,n,s){var a=s?"string"==typeof s?It.parse(s):s:{};this.fontFamily=n||a.fontFamily,this.fontSize=i||a.fontSize,this.fontStyle=t||a.fontStyle,this.fontWeight=r||a.fontWeight,this.fontVariant=e||a.fontVariant}static parse(){var t=arguments.length>1?arguments[1]:void 0,e="",r="",i="",n="",s="",a=B(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").trim().split(" "),o={fontSize:!1,fontStyle:!1,fontWeight:!1,fontVariant:!1};return a.forEach((t=>{switch(!0){case!o.fontStyle&&It.styles.includes(t):"inherit"!==t&&(e=t),o.fontStyle=!0;break;case!o.fontVariant&&It.variants.includes(t):"inherit"!==t&&(r=t),o.fontStyle=!0,o.fontVariant=!0;break;case!o.fontWeight&&It.weights.includes(t):"inherit"!==t&&(i=t),o.fontStyle=!0,o.fontVariant=!0,o.fontWeight=!0;break;case!o.fontSize:"inherit"!==t&&([n]=t.split("/")),o.fontStyle=!0,o.fontVariant=!0,o.fontWeight=!0,o.fontSize=!0;break;default:"inherit"!==t&&(s+=t)}})),new It(e,r,i,n,s,t)}toString(){return[Vt(this.fontStyle),this.fontVariant,kt(this.fontWeight),this.fontSize,(t=this.fontFamily,void 0===L?t:t.trim().split(",").map(_t).join(","))].join(" ").trim();var t}}It.styles="normal|italic|oblique|inherit",It.variants="normal|small-caps|inherit",It.weights="normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900|inherit";class Lt{constructor(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Number.NaN,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.NaN,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.NaN,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:Number.NaN;this.x1=t,this.y1=e,this.x2=r,this.y2=i,this.addPoint(t,e),this.addPoint(r,i)}get x(){return this.x1}get y(){return this.y1}get width(){return this.x2-this.x1}get height(){return this.y2-this.y1}addPoint(t,e){void 0!==t&&((isNaN(this.x1)||isNaN(this.x2))&&(this.x1=t,this.x2=t),tthis.x2&&(this.x2=t)),void 0!==e&&((isNaN(this.y1)||isNaN(this.y2))&&(this.y1=e,this.y2=e),ethis.y2&&(this.y2=e))}addX(t){this.addPoint(t,null)}addY(t){this.addPoint(null,t)}addBoundingBox(t){if(t){var{x1:e,y1:r,x2:i,y2:n}=t;this.addPoint(e,r),this.addPoint(i,n)}}sumCubic(t,e,r,i,n){return Math.pow(1-t,3)*e+3*Math.pow(1-t,2)*t*r+3*(1-t)*Math.pow(t,2)*i+Math.pow(t,3)*n}bezierCurveAdd(t,e,r,i,n){var s=6*e-12*r+6*i,a=-3*e+9*r-9*i+3*n,o=3*r-3*e;if(0!==a){var u=Math.pow(s,2)-4*o*a;if(!(u<0)){var h=(-s+Math.sqrt(u))/(2*a);0=e.length-1}next(){var t=this.commands[++this.i];return this.previousCommand=this.command,this.command=t,t}getPoint(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"x",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"y",r=new pt(this.command[t],this.command[e]);return this.makeAbsolute(r)}getAsControlPoint(t,e){var r=this.getPoint(t,e);return this.control=r,r}getAsCurrentPoint(t,e){var r=this.getPoint(t,e);return this.current=r,r}getReflectedControlPoint(){var t=this.previousCommand.type;if(t!==P.CURVE_TO&&t!==P.SMOOTH_CURVE_TO&&t!==P.QUAD_TO&&t!==P.SMOOTH_QUAD_TO)return this.current;var{current:{x:e,y:r},control:{x:i,y:n}}=this;return new pt(2*e-i,2*r-n)}makeAbsolute(t){if(this.command.relative){var{x:e,y:r}=this.current;t.x+=e,t.y+=r}return t}addMarker(t,e,r){var{points:i,angles:n}=this;r&&n.length>0&&!n[n.length-1]&&(n[n.length-1]=i[i.length-1].angleTo(r)),this.addMarkerAngle(t,e?e.angleTo(t):null)}addMarkerAngle(t,e){this.points.push(t),this.angles.push(e)}getMarkerPoints(){return this.points}getMarkerAngles(){for(var{angles:t}=this,e=t.length,r=0;r1&&void 0!==arguments[1]&&arguments[1];if(!e){var r=this.getStyle("fill"),i=this.getStyle("fill-opacity"),n=this.getStyle("stroke"),s=this.getStyle("stroke-opacity");if(r.isUrlDefinition()){var a=r.getFillStyleDefinition(this,i);a&&(t.fillStyle=a)}else if(r.hasValue()){"currentColor"===r.getString()&&r.setValue(this.getStyle("color").getColor());var o=r.getColor();"inherit"!==o&&(t.fillStyle="none"===o?"rgba(0,0,0,0)":o)}if(i.hasValue()){var u=new ft(this.document,"fill",t.fillStyle).addOpacity(i).getColor();t.fillStyle=u}if(n.isUrlDefinition()){var h=n.getFillStyleDefinition(this,s);h&&(t.strokeStyle=h)}else if(n.hasValue()){"currentColor"===n.getString()&&n.setValue(this.getStyle("color").getColor());var c=n.getString();"inherit"!==c&&(t.strokeStyle="none"===c?"rgba(0,0,0,0)":c)}if(s.hasValue()){var l=new ft(this.document,"stroke",t.strokeStyle).addOpacity(s).getString();t.strokeStyle=l}var f=this.getStyle("stroke-width");if(f.hasValue()){var g=f.getPixels();t.lineWidth=g||et}var p=this.getStyle("stroke-linecap"),d=this.getStyle("stroke-linejoin"),v=this.getStyle("stroke-miterlimit"),y=this.getStyle("stroke-dasharray"),m=this.getStyle("stroke-dashoffset");if(p.hasValue()&&(t.lineCap=p.getString()),d.hasValue()&&(t.lineJoin=d.getString()),v.hasValue()&&(t.miterLimit=v.getNumber()),y.hasValue()&&"none"!==y.getString()){var x=z(y.getString());void 0!==t.setLineDash?t.setLineDash(x):void 0!==t.webkitLineDash?t.webkitLineDash=x:void 0===t.mozDash||1===x.length&&0===x[0]||(t.mozDash=x);var b=m.getPixels();void 0!==t.lineDashOffset?t.lineDashOffset=b:void 0!==t.webkitLineDashOffset?t.webkitLineDashOffset=b:void 0!==t.mozDashOffset&&(t.mozDashOffset=b)}}if(this.modifiedEmSizeStack=!1,void 0!==t.font){var w=this.getStyle("font"),S=this.getStyle("font-style"),T=this.getStyle("font-variant"),O=this.getStyle("font-weight"),A=this.getStyle("font-size"),C=this.getStyle("font-family"),E=new It(S.getString(),T.getString(),O.getString(),A.hasValue()?"".concat(A.getPixels(!0),"px"):"",C.getString(),It.parse(w.getString(),t.font));S.setValue(E.fontStyle),T.setValue(E.fontVariant),O.setValue(E.fontWeight),A.setValue(E.fontSize),C.setValue(E.fontFamily),t.font=E.toString(),A.isPixels()&&(this.document.emSize=A.getPixels(),this.modifiedEmSizeStack=!0)}e||(this.applyEffects(t),t.globalAlpha=this.calculateOpacity())}clearContext(t){super.clearContext(t),this.modifiedEmSizeStack&&this.document.popEmSize()}}class jt extends Bt{constructor(t,e,r){super(t,e,r),this.type="path",this.pathParser=null,this.pathParser=new Dt(this.getAttribute("d").getString())}path(t){var{pathParser:e}=this,r=new Lt;for(e.reset(),t&&t.beginPath();!e.isEnd();)switch(e.next().type){case Dt.MOVE_TO:this.pathM(t,r);break;case Dt.LINE_TO:this.pathL(t,r);break;case Dt.HORIZ_LINE_TO:this.pathH(t,r);break;case Dt.VERT_LINE_TO:this.pathV(t,r);break;case Dt.CURVE_TO:this.pathC(t,r);break;case Dt.SMOOTH_CURVE_TO:this.pathS(t,r);break;case Dt.QUAD_TO:this.pathQ(t,r);break;case Dt.SMOOTH_QUAD_TO:this.pathT(t,r);break;case Dt.ARC:this.pathA(t,r);break;case Dt.CLOSE_PATH:this.pathZ(t,r)}return r}getBoundingBox(t){return this.path()}getMarkers(){var{pathParser:t}=this,e=t.getMarkerPoints(),r=t.getMarkerAngles(),i=e.map(((t,e)=>[t,r[e]]));return i}renderChildren(t){this.path(t),this.document.screen.mouse.checkPath(this,t);var e=this.getStyle("fill-rule");""!==t.fillStyle&&("inherit"!==e.getString("inherit")?t.fill(e.getString()):t.fill()),""!==t.strokeStyle&&("non-scaling-stroke"===this.getAttribute("vector-effect").getString()?(t.save(),t.setTransform(1,0,0,1,0,0),t.stroke(),t.restore()):t.stroke());var r=this.getMarkers();if(r){var i=r.length-1,n=this.getStyle("marker-start"),s=this.getStyle("marker-mid"),a=this.getStyle("marker-end");if(n.isUrlDefinition()){var o=n.getDefinition(),[u,h]=r[0];o.render(t,u,h)}if(s.isUrlDefinition())for(var c=s.getDefinition(),l=1;l1&&(i*=Math.sqrt(l),n*=Math.sqrt(l));var f=(a===o?-1:1)*Math.sqrt((Math.pow(i,2)*Math.pow(n,2)-Math.pow(i,2)*Math.pow(c.y,2)-Math.pow(n,2)*Math.pow(c.x,2))/(Math.pow(i,2)*Math.pow(c.y,2)+Math.pow(n,2)*Math.pow(c.x,2)));isNaN(f)&&(f=0);var g=new pt(f*i*c.y/n,f*-n*c.x/i),p=new pt((e.x+h.x)/2+Math.cos(u)*g.x-Math.sin(u)*g.y,(e.y+h.y)/2+Math.sin(u)*g.x+Math.cos(u)*g.y),d=nt([1,0],[(c.x-g.x)/i,(c.y-g.y)/n]),v=[(c.x-g.x)/i,(c.y-g.y)/n],y=[(-c.x-g.x)/i,(-c.y-g.y)/n],m=nt(v,y);return it(v,y)<=-1&&(m=Math.PI),it(v,y)>=1&&(m=0),{currentPoint:h,rX:i,rY:n,sweepFlag:o,xAxisRotation:u,centp:p,a1:d,ad:m}}pathA(t,e){var{pathParser:r}=this,{currentPoint:i,rX:n,rY:s,sweepFlag:a,xAxisRotation:o,centp:u,a1:h,ad:c}=jt.pathA(r),l=1-a?1:-1,f=h+l*(c/2),g=new pt(u.x+n*Math.cos(f),u.y+s*Math.sin(f));if(r.addMarkerAngle(g,f-l*Math.PI/2),r.addMarkerAngle(i,f-l*Math.PI),e.addPoint(i.x,i.y),t&&!isNaN(h)&&!isNaN(c)){var p=n>s?n:s,d=n>s?1:n/s,v=n>s?s/n:1;t.translate(u.x,u.y),t.rotate(o),t.scale(d,v),t.arc(0,0,p,h,h+c,Boolean(1-a)),t.scale(1/d,1/v),t.rotate(-o),t.translate(-u.x,-u.y)}}static pathZ(t){t.current=t.start}pathZ(t,e){jt.pathZ(this.pathParser),t&&e.x1!==e.x2&&e.y1!==e.y2&&t.closePath()}}class Ft extends jt{constructor(t,e,r){super(t,e,r),this.type="glyph",this.horizAdvX=this.getAttribute("horiz-adv-x").getNumber(),this.unicode=this.getAttribute("unicode").getString(),this.arabicForm=this.getAttribute("arabic-form").getString()}}class zt extends Bt{constructor(t,e,r){super(t,e,new.target===zt||r),this.type="text",this.x=0,this.y=0,this.measureCache=-1}setContext(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];super.setContext(t,e);var r=this.getStyle("dominant-baseline").getTextBaseline()||this.getStyle("alignment-baseline").getTextBaseline();r&&(t.textBaseline=r)}initializeCoordinates(){this.x=0,this.y=0,this.leafTexts=[],this.textChunkStart=0,this.minX=Number.POSITIVE_INFINITY,this.maxX=Number.NEGATIVE_INFINITY}getBoundingBox(t){if("text"!==this.type)return this.getTElementBoundingBox(t);this.initializeCoordinates(),this.adjustChildCoordinatesRecursive(t);var e=null;return this.children.forEach(((r,i)=>{var n=this.getChildBoundingBox(t,this,this,i);e?e.addBoundingBox(n):e=n})),e}getFontSize(){var{document:t,parent:e}=this,r=It.parse(t.ctx.font).fontSize;return e.getStyle("font-size").getNumber(r)}getTElementBoundingBox(t){var e=this.getFontSize();return new Lt(this.x,this.y-e,this.x+this.measureText(t),this.y)}getGlyph(t,e,r){var i=e[r],n=null;if(t.isArabic){var s=e.length,a=e[r-1],o=e[r+1],u="isolated";if((0===r||" "===a)&&r0&&" "!==a&&r0&&" "!==a&&(r===s-1||" "===o)&&(u="initial"),void 0!==t.glyphs[i]){var h=t.glyphs[i];n=h instanceof Ft?h:h[u]}}else n=t.glyphs[i];return n||(n=t.missingGlyph),n}getText(){return""}getTextFromNode(t){var e=t||this.node,r=Array.from(e.parentNode.childNodes),i=r.indexOf(e),n=r.length-1,s=B(e.textContent||"");return 0===i&&(s=j(s)),i===n&&(s=F(s)),s}renderChildren(t){if("text"===this.type){this.initializeCoordinates(),this.adjustChildCoordinatesRecursive(t),this.children.forEach(((e,r)=>{this.renderChild(t,this,this,r)}));var{mouse:e}=this.document.screen;e.isWorking()&&e.checkBoundingBox(this,this.getBoundingBox(t))}else this.renderTElementChildren(t)}renderTElementChildren(t){var{document:e,parent:r}=this,i=this.getText(),n=r.getStyle("font-family").getDefinition();if(n)for(var{unitsPerEm:s}=n.fontFace,a=It.parse(e.ctx.font),o=r.getStyle("font-size").getNumber(a.fontSize),u=r.getStyle("font-style").getString(a.fontStyle),h=o/s,c=n.isRTL?i.split("").reverse().join(""):i,l=z(r.getAttribute("dx").getString()),f=c.length,g=0;g=this.leafTexts.length)){var t=this.leafTexts[this.textChunkStart],e=t.getStyle("text-anchor").getString("start"),r=0;r="start"===e?t.x-this.minX:"end"===e?t.x-this.maxX:t.x-(this.minX+this.maxX)/2;for(var i=this.textChunkStart;i{this.adjustChildCoordinatesRecursiveCore(t,this,this,r)})),this.applyAnchoring()}adjustChildCoordinatesRecursiveCore(t,e,r,i){var n=r.children[i];n.children.length>0?n.children.forEach(((r,i)=>{e.adjustChildCoordinatesRecursiveCore(t,e,n,i)})):this.adjustChildCoordinates(t,e,r,i)}adjustChildCoordinates(t,e,r,i){var n=r.children[i];if("function"!=typeof n.measureText)return n;t.save(),n.setContext(t,!0);var s=n.getAttribute("x"),a=n.getAttribute("y"),o=n.getAttribute("dx"),u=n.getAttribute("dy"),h=n.getStyle("font-family").getDefinition(),c=Boolean(h)&&h.isRTL;0===i&&(s.hasValue()||s.setValue(n.getInheritedAttribute("x")),a.hasValue()||a.setValue(n.getInheritedAttribute("y")),o.hasValue()||o.setValue(n.getInheritedAttribute("dx")),u.hasValue()||u.setValue(n.getInheritedAttribute("dy")));var l=n.measureText(t);return c&&(e.x-=l),s.hasValue()?(e.applyAnchoring(),n.x=s.getPixels("x"),o.hasValue()&&(n.x+=o.getPixels("x"))):(o.hasValue()&&(e.x+=o.getPixels("x")),n.x=e.x),e.x=n.x,c||(e.x+=l),a.hasValue()?(n.y=a.getPixels("y"),u.hasValue()&&(n.y+=u.getPixels("y"))):(u.hasValue()&&(e.y+=u.getPixels("y")),n.y=e.y),e.y=n.y,e.leafTexts.push(n),e.minX=Math.min(e.minX,n.x,n.x+l),e.maxX=Math.max(e.maxX,n.x,n.x+l),n.clearContext(t),t.restore(),n}getChildBoundingBox(t,e,r,i){var n=r.children[i];if("function"!=typeof n.getBoundingBox)return null;var s=n.getBoundingBox(t);return s?(n.children.forEach(((r,i)=>{var a=e.getChildBoundingBox(t,e,n,i);s.addBoundingBox(a)})),s):null}renderChild(t,e,r,i){var n=r.children[i];n.render(t),n.children.forEach(((r,i)=>{e.renderChild(t,e,n,i)}))}measureText(t){var{measureCache:e}=this;if(~e)return e;var r=this.getText(),i=this.measureTargetText(t,r);return this.measureCache=i,i}measureTargetText(t,e){if(!e.length)return 0;var{parent:r}=this,i=r.getStyle("font-family").getDefinition();if(i){for(var n=this.getFontSize(),s=i.isRTL?e.split("").reverse().join(""):e,a=z(r.getAttribute("dx").getString()),o=s.length,u=0,h=0;h0?"":this.getTextFromNode()}getText(){return this.text}}class Ht extends Ut{constructor(){super(...arguments),this.type="textNode"}}class Xt extends Bt{constructor(){super(...arguments),this.type="svg",this.root=!1}setContext(t){var e,{document:r}=this,{screen:i,window:n}=r,s=t.canvas;if(i.setDefaults(t),s.style&&void 0!==t.font&&n&&void 0!==n.getComputedStyle){t.font=n.getComputedStyle(s).getPropertyValue("font");var a=new ft(r,"fontSize",It.parse(t.font).fontSize);a.hasValue()&&(r.rootEmSize=a.getPixels("y"),r.emSize=r.rootEmSize)}this.getAttribute("x").hasValue()||this.getAttribute("x",!0).setValue(0),this.getAttribute("y").hasValue()||this.getAttribute("y",!0).setValue(0);var{width:o,height:u}=i.viewPort;this.getStyle("width").hasValue()||this.getStyle("width",!0).setValue("100%"),this.getStyle("height").hasValue()||this.getStyle("height",!0).setValue("100%"),this.getStyle("color").hasValue()||this.getStyle("color",!0).setValue("black");var h=this.getAttribute("refX"),c=this.getAttribute("refY"),l=this.getAttribute("viewBox"),f=l.hasValue()?z(l.getString()):null,g=!this.root&&"visible"!==this.getStyle("overflow").getValue("hidden"),p=0,d=0,v=0,y=0;f&&(p=f[0],d=f[1]),this.root||(o=this.getStyle("width").getPixels("x"),u=this.getStyle("height").getPixels("y"),"marker"===this.type&&(v=p,y=d,p=0,d=0)),i.viewPort.setCurrent(o,u),!this.node||this.parent&&"foreignObject"!==(null===(e=this.node.parentNode)||void 0===e?void 0:e.nodeName)||!this.getStyle("transform",!1,!0).hasValue()||this.getStyle("transform-origin",!1,!0).hasValue()||this.getStyle("transform-origin",!0,!0).setValue("50% 50%"),super.setContext(t),t.translate(this.getAttribute("x").getPixels("x"),this.getAttribute("y").getPixels("y")),f&&(o=f[2],u=f[3]),r.setViewBox({ctx:t,aspectRatio:this.getAttribute("preserveAspectRatio").getString(),width:i.viewPort.width,desiredWidth:o,height:i.viewPort.height,desiredHeight:u,minX:p,minY:d,refX:h.getValue(),refY:c.getValue(),clip:g,clipX:v,clipY:y}),f&&(i.viewPort.removeCurrent(),i.viewPort.setCurrent(o,u))}clearContext(t){super.clearContext(t),this.document.screen.viewPort.removeCurrent()}resize(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t,r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=this.getAttribute("width",!0),n=this.getAttribute("height",!0),s=this.getAttribute("viewBox"),a=this.getAttribute("style"),o=i.getNumber(0),u=n.getNumber(0);if(r)if("string"==typeof r)this.getAttribute("preserveAspectRatio",!0).setValue(r);else{var h=this.getAttribute("preserveAspectRatio");h.hasValue()&&h.setValue(h.getString().replace(/^\s*(\S.*\S)\s*$/,"$1"))}if(i.setValue(t),n.setValue(e),s.hasValue()||s.setValue("0 0 ".concat(o||t," ").concat(u||e)),a.hasValue()){var c=this.getStyle("width"),l=this.getStyle("height");c.hasValue()&&c.setValue("".concat(t,"px")),l.hasValue()&&l.setValue("".concat(e,"px"))}}}class Yt extends jt{constructor(){super(...arguments),this.type="rect"}path(t){var e=this.getAttribute("x").getPixels("x"),r=this.getAttribute("y").getPixels("y"),i=this.getStyle("width",!1,!0).getPixels("x"),n=this.getStyle("height",!1,!0).getPixels("y"),s=this.getAttribute("rx"),a=this.getAttribute("ry"),o=s.getPixels("x"),u=a.getPixels("y");if(s.hasValue()&&!a.hasValue()&&(u=o),a.hasValue()&&!s.hasValue()&&(o=u),o=Math.min(o,i/2),u=Math.min(u,n/2),t){var h=(Math.sqrt(2)-1)/3*4;t.beginPath(),n>0&&i>0&&(t.moveTo(e+o,r),t.lineTo(e+i-o,r),t.bezierCurveTo(e+i-o+h*o,r,e+i,r+u-h*u,e+i,r+u),t.lineTo(e+i,r+n-u),t.bezierCurveTo(e+i,r+n-u+h*u,e+i-o+h*o,r+n,e+i-o,r+n),t.lineTo(e+o,r+n),t.bezierCurveTo(e+o-h*o,r+n,e,r+n-u+h*u,e,r+n-u),t.lineTo(e,r+u),t.bezierCurveTo(e,r+u-h*u,e+o-h*o,r,e+o,r),t.closePath())}return new Lt(e,r,e+i,r+n)}getMarkers(){return null}}class Wt extends jt{constructor(){super(...arguments),this.type="circle"}path(t){var e=this.getAttribute("cx").getPixels("x"),r=this.getAttribute("cy").getPixels("y"),i=this.getAttribute("r").getPixels();return t&&i>0&&(t.beginPath(),t.arc(e,r,i,0,2*Math.PI,!1),t.closePath()),new Lt(e-i,r-i,e+i,r+i)}getMarkers(){return null}}class qt extends jt{constructor(){super(...arguments),this.type="ellipse"}path(t){var e=(Math.sqrt(2)-1)/3*4,r=this.getAttribute("rx").getPixels("x"),i=this.getAttribute("ry").getPixels("y"),n=this.getAttribute("cx").getPixels("x"),s=this.getAttribute("cy").getPixels("y");return t&&r>0&&i>0&&(t.beginPath(),t.moveTo(n+r,s),t.bezierCurveTo(n+r,s+e*i,n+e*r,s+i,n,s+i),t.bezierCurveTo(n-e*r,s+i,n-r,s+e*i,n-r,s),t.bezierCurveTo(n-r,s-e*i,n-e*r,s-i,n,s-i),t.bezierCurveTo(n+e*r,s-i,n+r,s-e*i,n+r,s),t.closePath()),new Lt(n-r,s-i,n+r,s+i)}getMarkers(){return null}}class Gt extends jt{constructor(){super(...arguments),this.type="line"}getPoints(){return[new pt(this.getAttribute("x1").getPixels("x"),this.getAttribute("y1").getPixels("y")),new pt(this.getAttribute("x2").getPixels("x"),this.getAttribute("y2").getPixels("y"))]}path(t){var[{x:e,y:r},{x:i,y:n}]=this.getPoints();return t&&(t.beginPath(),t.moveTo(e,r),t.lineTo(i,n)),new Lt(e,r,i,n)}getMarkers(){var[t,e]=this.getPoints(),r=t.angleTo(e);return[[t,r],[e,r]]}}class Qt extends jt{constructor(t,e,r){super(t,e,r),this.type="polyline",this.points=[],this.points=pt.parsePath(this.getAttribute("points").getString())}path(t){var{points:e}=this,[{x:r,y:i}]=e,n=new Lt(r,i);return t&&(t.beginPath(),t.moveTo(r,i)),e.forEach((e=>{var{x:r,y:i}=e;n.addPoint(r,i),t&&t.lineTo(r,i)})),n}getMarkers(){var{points:t}=this,e=t.length-1,r=[];return t.forEach(((i,n)=>{n!==e&&r.push([i,i.angleTo(t[n+1])])})),r.length>0&&r.push([t[t.length-1],r[r.length-1][1]]),r}}class $t extends Qt{constructor(){super(...arguments),this.type="polygon"}path(t){var e=super.path(t),[{x:r,y:i}]=this.points;return t&&(t.lineTo(r,i),t.closePath()),e}}class Zt extends Mt{constructor(){super(...arguments),this.type="pattern"}createPattern(t,e,r){var i=this.getStyle("width").getPixels("x",!0),n=this.getStyle("height").getPixels("y",!0),s=new Xt(this.document,null);s.attributes.viewBox=new ft(this.document,"viewBox",this.getAttribute("viewBox").getValue()),s.attributes.width=new ft(this.document,"width","".concat(i,"px")),s.attributes.height=new ft(this.document,"height","".concat(n,"px")),s.attributes.transform=new ft(this.document,"transform",this.getAttribute("patternTransform").getValue()),s.children=this.children;var a=this.document.createCanvas(i,n),o=a.getContext("2d"),u=this.getAttribute("x"),h=this.getAttribute("y");u.hasValue()&&h.hasValue()&&o.translate(u.getPixels("x",!0),h.getPixels("y",!0)),r.hasValue()?this.styles["fill-opacity"]=r:Reflect.deleteProperty(this.styles,"fill-opacity");for(var c=-1;c<=1;c++)for(var l=-1;l<=1;l++)o.save(),s.attributes.x=new ft(this.document,"x",c*a.width),s.attributes.y=new ft(this.document,"y",l*a.height),s.render(o),o.restore();return t.createPattern(a,"repeat")}}class Kt extends Mt{constructor(){super(...arguments),this.type="marker"}render(t,e,r){if(e){var{x:i,y:n}=e,s=this.getAttribute("orient").getString("auto"),a=this.getAttribute("markerUnits").getString("strokeWidth");t.translate(i,n),"auto"===s&&t.rotate(r),"strokeWidth"===a&&t.scale(t.lineWidth,t.lineWidth),t.save();var o=new Xt(this.document,null);o.type=this.type,o.attributes.viewBox=new ft(this.document,"viewBox",this.getAttribute("viewBox").getValue()),o.attributes.refX=new ft(this.document,"refX",this.getAttribute("refX").getValue()),o.attributes.refY=new ft(this.document,"refY",this.getAttribute("refY").getValue()),o.attributes.width=new ft(this.document,"width",this.getAttribute("markerWidth").getValue()),o.attributes.height=new ft(this.document,"height",this.getAttribute("markerHeight").getValue()),o.attributes.overflow=new ft(this.document,"overflow",this.getAttribute("overflow").getValue()),o.attributes.fill=new ft(this.document,"fill",this.getAttribute("fill").getColor("black")),o.attributes.stroke=new ft(this.document,"stroke",this.getAttribute("stroke").getValue("none")),o.children=this.children,o.render(t),t.restore(),"strokeWidth"===a&&t.scale(1/t.lineWidth,1/t.lineWidth),"auto"===s&&t.rotate(-r),t.translate(-i,-n)}}}class Jt extends Mt{constructor(){super(...arguments),this.type="defs"}render(){}}class te extends Bt{constructor(){super(...arguments),this.type="g"}getBoundingBox(t){var e=new Lt;return this.children.forEach((r=>{e.addBoundingBox(r.getBoundingBox(t))})),e}}class ee extends Mt{constructor(t,e,r){super(t,e,r),this.attributesToInherit=["gradientUnits"],this.stops=[];var{stops:i,children:n}=this;n.forEach((t=>{"stop"===t.type&&i.push(t)}))}getGradientUnits(){return this.getAttribute("gradientUnits").getString("objectBoundingBox")}createGradient(t,e,r){var i=this;this.getHrefAttribute().hasValue()&&(i=this.getHrefAttribute().getDefinition(),this.inheritStopContainer(i));var{stops:n}=i,s=this.getGradient(t,e);if(!s)return this.addParentOpacity(r,n[n.length-1].color);if(n.forEach((t=>{s.addColorStop(t.offset,this.addParentOpacity(r,t.color))})),this.getAttribute("gradientTransform").hasValue()){var{document:a}=this,{MAX_VIRTUAL_PIXELS:o,viewPort:u}=a.screen,[h]=u.viewPorts,c=new Yt(a,null);c.attributes.x=new ft(a,"x",-o/3),c.attributes.y=new ft(a,"y",-o/3),c.attributes.width=new ft(a,"width",o),c.attributes.height=new ft(a,"height",o);var l=new te(a,null);l.attributes.transform=new ft(a,"transform",this.getAttribute("gradientTransform").getValue()),l.children=[c];var f=new Xt(a,null);f.attributes.x=new ft(a,"x",0),f.attributes.y=new ft(a,"y",0),f.attributes.width=new ft(a,"width",h.width),f.attributes.height=new ft(a,"height",h.height),f.children=[l];var g=a.createCanvas(h.width,h.height),p=g.getContext("2d");return p.fillStyle=s,f.render(p),p.createPattern(g,"no-repeat")}return s}inheritStopContainer(t){this.attributesToInherit.forEach((e=>{!this.getAttribute(e).hasValue()&&t.getAttribute(e).hasValue()&&this.getAttribute(e,!0).setValue(t.getAttribute(e).getValue())}))}addParentOpacity(t,e){return t.hasValue()?new ft(this.document,"color",e).addOpacity(t).getColor():e}}class re extends ee{constructor(t,e,r){super(t,e,r),this.type="linearGradient",this.attributesToInherit.push("x1","y1","x2","y2")}getGradient(t,e){var r="objectBoundingBox"===this.getGradientUnits(),i=r?e.getBoundingBox(t):null;if(r&&!i)return null;this.getAttribute("x1").hasValue()||this.getAttribute("y1").hasValue()||this.getAttribute("x2").hasValue()||this.getAttribute("y2").hasValue()||(this.getAttribute("x1",!0).setValue(0),this.getAttribute("y1",!0).setValue(0),this.getAttribute("x2",!0).setValue(1),this.getAttribute("y2",!0).setValue(0));var n=r?i.x+i.width*this.getAttribute("x1").getNumber():this.getAttribute("x1").getPixels("x"),s=r?i.y+i.height*this.getAttribute("y1").getNumber():this.getAttribute("y1").getPixels("y"),a=r?i.x+i.width*this.getAttribute("x2").getNumber():this.getAttribute("x2").getPixels("x"),o=r?i.y+i.height*this.getAttribute("y2").getNumber():this.getAttribute("y2").getPixels("y");return n===a&&s===o?null:t.createLinearGradient(n,s,a,o)}}class ie extends ee{constructor(t,e,r){super(t,e,r),this.type="radialGradient",this.attributesToInherit.push("cx","cy","r","fx","fy","fr")}getGradient(t,e){var r="objectBoundingBox"===this.getGradientUnits(),i=e.getBoundingBox(t);if(r&&!i)return null;this.getAttribute("cx").hasValue()||this.getAttribute("cx",!0).setValue("50%"),this.getAttribute("cy").hasValue()||this.getAttribute("cy",!0).setValue("50%"),this.getAttribute("r").hasValue()||this.getAttribute("r",!0).setValue("50%");var n=r?i.x+i.width*this.getAttribute("cx").getNumber():this.getAttribute("cx").getPixels("x"),s=r?i.y+i.height*this.getAttribute("cy").getNumber():this.getAttribute("cy").getPixels("y"),a=n,o=s;this.getAttribute("fx").hasValue()&&(a=r?i.x+i.width*this.getAttribute("fx").getNumber():this.getAttribute("fx").getPixels("x")),this.getAttribute("fy").hasValue()&&(o=r?i.y+i.height*this.getAttribute("fy").getNumber():this.getAttribute("fy").getPixels("y"));var u=r?(i.width+i.height)/2*this.getAttribute("r").getNumber():this.getAttribute("r").getPixels(),h=this.getAttribute("fr").getPixels();return t.createRadialGradient(a,o,h,n,s,u)}}class ne extends Mt{constructor(t,e,r){super(t,e,r),this.type="stop";var i=Math.max(0,Math.min(1,this.getAttribute("offset").getNumber())),n=this.getStyle("stop-opacity"),s=this.getStyle("stop-color",!0);""===s.getString()&&s.setValue("#000"),n.hasValue()&&(s=s.addOpacity(n)),this.offset=i,this.color=s.getColor()}}class se extends Mt{constructor(t,e,r){super(t,e,r),this.type="animate",this.duration=0,this.initialValue=null,this.initialUnits="",this.removed=!1,this.frozen=!1,t.screen.animations.push(this),this.begin=this.getAttribute("begin").getMilliseconds(),this.maxDuration=this.begin+this.getAttribute("dur").getMilliseconds(),this.from=this.getAttribute("from"),this.to=this.getAttribute("to"),this.values=new ft(t,"values",null);var i=this.getAttribute("values");i.hasValue()&&this.values.setValue(i.getString().split(";"))}getProperty(){var t=this.getAttribute("attributeType").getString(),e=this.getAttribute("attributeName").getString();return"CSS"===t?this.parent.getStyle(e,!0):this.parent.getAttribute(e,!0)}calcValue(){var{initialUnits:t}=this,{progress:e,from:r,to:i}=this.getProgress(),n=r.getNumber()+(i.getNumber()-r.getNumber())*e;return"%"===t&&(n*=100),"".concat(n).concat(t)}update(t){var{parent:e}=this,r=this.getProperty();if(this.initialValue||(this.initialValue=r.getString(),this.initialUnits=r.getUnits()),this.duration>this.maxDuration){var i=this.getAttribute("fill").getString("remove");if("indefinite"===this.getAttribute("repeatCount").getString()||"indefinite"===this.getAttribute("repeatDur").getString())this.duration=0;else if("freeze"!==i||this.frozen){if("remove"===i&&!this.removed)return this.removed=!0,r.setValue(e.animationFrozen?e.animationFrozenValue:this.initialValue),!0}else this.frozen=!0,e.animationFrozen=!0,e.animationFrozenValue=r.getString();return!1}this.duration+=t;var n=!1;if(this.begine+(n[r]-e)*t)).join(" ");return s}}class ue extends Mt{constructor(t,e,r){super(t,e,r),this.type="font",this.glyphs={},this.horizAdvX=this.getAttribute("horiz-adv-x").getNumber();var{definitions:i}=t,{children:n}=this;for(var s of n)switch(s.type){case"font-face":this.fontFace=s;var a=s.getStyle("font-family");a.hasValue()&&(i[a.getString()]=this);break;case"missing-glyph":this.missingGlyph=s;break;case"glyph":var o=s;o.arabicForm?(this.isRTL=!0,this.isArabic=!0,void 0===this.glyphs[o.unicode]&&(this.glyphs[o.unicode]={}),this.glyphs[o.unicode][o.arabicForm]=o):this.glyphs[o.unicode]=o}}render(){}}class he extends Mt{constructor(t,e,r){super(t,e,r),this.type="font-face",this.ascent=this.getAttribute("ascent").getNumber(),this.descent=this.getAttribute("descent").getNumber(),this.unitsPerEm=this.getAttribute("units-per-em").getNumber()}}class ce extends jt{constructor(){super(...arguments),this.type="missing-glyph",this.horizAdvX=0}}class le extends zt{constructor(){super(...arguments),this.type="tref"}getText(){var t=this.getHrefAttribute().getDefinition();if(t){var e=t.children[0];if(e)return e.getText()}return""}}class fe extends zt{constructor(t,e,r){super(t,e,r),this.type="a";var{childNodes:i}=e,n=i[0],s=i.length>0&&Array.from(i).every((t=>3===t.nodeType));this.hasText=s,this.text=s?this.getTextFromNode(n):""}getText(){return this.text}renderChildren(t){if(this.hasText){super.renderChildren(t);var{document:e,x:r,y:i}=this,{mouse:n}=e.screen,s=new ft(e,"fontSize",It.parse(e.ctx.font).fontSize);n.isWorking()&&n.checkBoundingBox(this,new Lt(r,i-s.getPixels("y"),r+this.measureText(t),i))}else if(this.children.length>0){var a=new te(this.document,null);a.children=this.children,a.parent=this,a.render(t)}}onClick(){var{window:t}=this.document;t&&t.open(this.getHrefAttribute().getString())}onMouseMove(){this.document.ctx.canvas.style.cursor="pointer"}}function ge(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,i)}return r}function pe(t){for(var e=1;e{var{type:r,points:i}=e;switch(r){case Dt.LINE_TO:t&&t.lineTo(i[0],i[1]);break;case Dt.MOVE_TO:t&&t.moveTo(i[0],i[1]);break;case Dt.CURVE_TO:t&&t.bezierCurveTo(i[0],i[1],i[2],i[3],i[4],i[5]);break;case Dt.QUAD_TO:t&&t.quadraticCurveTo(i[0],i[1],i[2],i[3]);break;case Dt.ARC:var[n,s,a,o,u,h,c,l]=i,f=a>o?a:o,g=a>o?1:a/o,p=a>o?o/a:1;t&&(t.translate(n,s),t.rotate(c),t.scale(g,p),t.arc(0,0,f,u,u+h,Boolean(1-l)),t.scale(1/g,1/p),t.rotate(-c),t.translate(-n,-s));break;case Dt.CLOSE_PATH:t&&t.closePath()}}))}renderChildren(t){this.setTextData(t),t.save();var e=this.parent.getStyle("text-decoration").getString(),r=this.getFontSize(),{glyphInfo:i}=this,n=t.fillStyle;"underline"===e&&t.beginPath(),i.forEach(((i,n)=>{var{p0:s,p1:a,rotation:o,text:u}=i;t.save(),t.translate(s.x,s.y),t.rotate(o),t.fillStyle&&t.fillText(u,0,0),t.strokeStyle&&t.strokeText(u,0,0),t.restore(),"underline"===e&&(0===n&&t.moveTo(s.x,s.y+r/8),t.lineTo(a.x,a.y+r/5))})),"underline"===e&&(t.lineWidth=r/20,t.strokeStyle=n,t.stroke(),t.closePath()),t.restore()}getLetterSpacingAt(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return this.letterSpacingCache[t]||0}findSegmentToFitChar(t,e,r,i,n,s,a,o,u){var h=s,c=this.measureText(t,o);" "===o&&"justify"===e&&r-1&&(h+=this.getLetterSpacingAt(u));var l=this.textHeight/20,f=this.getEquidistantPointOnPath(h,l,0),g=this.getEquidistantPointOnPath(h+c,l,0),p={p0:f,p1:g},d=f&&g?Math.atan2(g.y-f.y,g.x-f.x):0;if(a){var v=Math.cos(Math.PI/2+d)*a,y=Math.cos(-d)*a;p.p0=pe(pe({},f),{},{x:f.x+v,y:f.y+y}),p.p1=pe(pe({},g),{},{x:g.x+v,y:g.y+y})}return{offset:h+=c,segment:p,rotation:d}}measureText(t,e){var{measuresCache:r}=this,i=e||this.getText();if(r.has(i))return r.get(i);var n=this.measureTargetText(t,i);return r.set(i,n),n}setTextData(t){if(!this.glyphInfo){var e=this.getText(),r=e.split(""),i=e.split(" ").length-1,n=this.parent.getAttribute("dx").split().map((t=>t.getPixels("x"))),s=this.parent.getAttribute("dy").getPixels("y"),a=this.parent.getStyle("text-anchor").getString("start"),o=this.getStyle("letter-spacing"),u=this.parent.getStyle("letter-spacing"),h=0;o.hasValue()&&"inherit"!==o.getValue()?o.hasValue()&&"initial"!==o.getValue()&&"unset"!==o.getValue()&&(h=o.getPixels()):h=u.getPixels();var c=[],l=e.length;this.letterSpacingCache=c;for(var f=0;f0===r?0:t+e||0),0),p=this.measureText(t),d=Math.max(p+g,0);this.textWidth=p,this.textHeight=this.getFontSize(),this.glyphInfo=[];var v=this.getPathLength(),y=this.getStyle("startOffset").getNumber(0)*v,m=0;"middle"!==a&&"center"!==a||(m=-d/2),"end"!==a&&"right"!==a||(m=-d),m+=y,r.forEach(((e,n)=>{var{offset:o,segment:u,rotation:h}=this.findSegmentToFitChar(t,a,d,v,i,m,s,e,n);m=o,u.p0&&u.p1&&this.glyphInfo.push({text:r[n],p0:u.p0,p1:u.p1,rotation:h})}))}}parsePathData(t){if(this.pathLength=-1,!t)return[];var e=[],{pathParser:r}=t;for(r.reset();!r.isEnd();){var{current:i}=r,n=i?i.x:0,s=i?i.y:0,a=r.next(),o=a.type,u=[];switch(a.type){case Dt.MOVE_TO:this.pathM(r,u);break;case Dt.LINE_TO:o=this.pathL(r,u);break;case Dt.HORIZ_LINE_TO:o=this.pathH(r,u);break;case Dt.VERT_LINE_TO:o=this.pathV(r,u);break;case Dt.CURVE_TO:this.pathC(r,u);break;case Dt.SMOOTH_CURVE_TO:o=this.pathS(r,u);break;case Dt.QUAD_TO:this.pathQ(r,u);break;case Dt.SMOOTH_QUAD_TO:o=this.pathT(r,u);break;case Dt.ARC:u=this.pathA(r);break;case Dt.CLOSE_PATH:jt.pathZ(r)}a.type!==Dt.CLOSE_PATH?e.push({type:o,points:u,start:{x:n,y:s},pathLength:this.calcLength(n,s,o,u)}):e.push({type:Dt.CLOSE_PATH,points:[],pathLength:0})}return e}pathM(t,e){var{x:r,y:i}=jt.pathM(t).point;e.push(r,i)}pathL(t,e){var{x:r,y:i}=jt.pathL(t).point;return e.push(r,i),Dt.LINE_TO}pathH(t,e){var{x:r,y:i}=jt.pathH(t).point;return e.push(r,i),Dt.LINE_TO}pathV(t,e){var{x:r,y:i}=jt.pathV(t).point;return e.push(r,i),Dt.LINE_TO}pathC(t,e){var{point:r,controlPoint:i,currentPoint:n}=jt.pathC(t);e.push(r.x,r.y,i.x,i.y,n.x,n.y)}pathS(t,e){var{point:r,controlPoint:i,currentPoint:n}=jt.pathS(t);return e.push(r.x,r.y,i.x,i.y,n.x,n.y),Dt.CURVE_TO}pathQ(t,e){var{controlPoint:r,currentPoint:i}=jt.pathQ(t);e.push(r.x,r.y,i.x,i.y)}pathT(t,e){var{controlPoint:r,currentPoint:i}=jt.pathT(t);return e.push(r.x,r.y,i.x,i.y),Dt.QUAD_TO}pathA(t){var{rX:e,rY:r,sweepFlag:i,xAxisRotation:n,centp:s,a1:a,ad:o}=jt.pathA(t);return 0===i&&o>0&&(o-=2*Math.PI),1===i&&o<0&&(o+=2*Math.PI),[s.x,s.y,e,r,a,o,n,i]}calcLength(t,e,r,i){var n=0,s=null,a=null,o=0;switch(r){case Dt.LINE_TO:return this.getLineLength(t,e,i[0],i[1]);case Dt.CURVE_TO:for(n=0,s=this.getPointOnCubicBezier(0,t,e,i[0],i[1],i[2],i[3],i[4],i[5]),o=.01;o<=1;o+=.01)a=this.getPointOnCubicBezier(o,t,e,i[0],i[1],i[2],i[3],i[4],i[5]),n+=this.getLineLength(s.x,s.y,a.x,a.y),s=a;return n;case Dt.QUAD_TO:for(n=0,s=this.getPointOnQuadraticBezier(0,t,e,i[0],i[1],i[2],i[3]),o=.01;o<=1;o+=.01)a=this.getPointOnQuadraticBezier(o,t,e,i[0],i[1],i[2],i[3]),n+=this.getLineLength(s.x,s.y,a.x,a.y),s=a;return n;case Dt.ARC:n=0;var u=i[4],h=i[5],c=i[4]+h,l=Math.PI/180;if(Math.abs(u-c)c;o-=l)a=this.getPointOnEllipticalArc(i[0],i[1],i[2],i[3],o,0),n+=this.getLineLength(s.x,s.y,a.x,a.y),s=a;else for(o=u+l;o5&&void 0!==arguments[5]?arguments[5]:e,a=arguments.length>6&&void 0!==arguments[6]?arguments[6]:r,o=(n-r)/(i-e+et),u=Math.sqrt(t*t/(1+o*o));ie)return null;var{dataArray:n}=this;for(var s of n){if(!s||!(s.pathLength<5e-5||r+s.pathLength+5e-5=0&&o>c)break;i=this.getPointOnEllipticalArc(s.points[0],s.points[1],s.points[2],s.points[3],o,s.points[6]);break;case Dt.CURVE_TO:(o=a/s.pathLength)>1&&(o=1),i=this.getPointOnCubicBezier(o,s.start.x,s.start.y,s.points[0],s.points[1],s.points[2],s.points[3],s.points[4],s.points[5]);break;case Dt.QUAD_TO:(o=a/s.pathLength)>1&&(o=1),i=this.getPointOnQuadraticBezier(o,s.start.x,s.start.y,s.points[0],s.points[1],s.points[2],s.points[3])}if(i)return i;break}r+=s.pathLength}return null}getLineLength(t,e,r,i){return Math.sqrt((r-t)*(r-t)+(i-e)*(i-e))}getPathLength(){return-1===this.pathLength&&(this.pathLength=this.dataArray.reduce(((t,e)=>e.pathLength>0?t+e.pathLength:t),0)),this.pathLength}getPointOnCubicBezier(t,e,r,i,n,s,a,o,u){return{x:o*st(t)+s*at(t)+i*ot(t)+e*ut(t),y:u*st(t)+a*at(t)+n*ot(t)+r*ut(t)}}getPointOnQuadraticBezier(t,e,r,i,n,s,a){return{x:s*ht(t)+i*ct(t)+e*lt(t),y:a*ht(t)+n*ct(t)+r*lt(t)}}getPointOnEllipticalArc(t,e,r,i,n,s){var a=Math.cos(s),o=Math.sin(s),u=r*Math.cos(n),h=i*Math.sin(n);return{x:t+(u*a-h*o),y:e+(u*o+h*a)}}buildEquidistantCache(t,e){var r=this.getPathLength(),i=e||.25,n=t||r/100;if(!this.equidistantCache||this.equidistantCache.step!==n||this.equidistantCache.precision!==i){this.equidistantCache={step:n,precision:i,points:[]};for(var s=0,a=0;a<=r;a+=i){var o=this.getPointOnPath(a),u=this.getPointOnPath(a+i);o&&u&&((s+=this.getLineLength(o.x,o.y,u.x,u.y))>=n&&(this.equidistantCache.points.push({x:o.x,y:o.y,distance:a}),s-=n))}}}getEquidistantPointOnPath(t,e,r){if(this.buildEquidistantCache(e,r),t<0||t-this.getPathLength()>5e-5)return null;var i=Math.round(t/this.getPathLength()*(this.equidistantCache.points.length-1));return this.equidistantCache.points[i]||null}}var ve=/^\s*data:(([^/,;]+\/[^/,;]+)(?:;([^,;=]+=[^,;=]+))?)?(?:;(base64))?,(.*)$/i;class ye extends Bt{constructor(t,e,r){super(t,e,r),this.type="image",this.loaded=!1;var i=this.getHrefAttribute().getString();if(i){var n=i.endsWith(".svg")||/^\s*data:image\/svg\+xml/i.test(i);t.images.push(this),n?this.loadSvg(i):this.loadImage(i),this.isSvg=n}}loadImage(t){var e=this;return n((function*(){try{var r=yield e.document.createImage(t);e.image=r}catch(e){console.error('Error while loading image "'.concat(t,'":'),e)}e.loaded=!0}))()}loadSvg(t){var e=this;return n((function*(){var r=ve.exec(t);if(r){var i=r[5];"base64"===r[4]?e.image=atob(i):e.image=decodeURIComponent(i)}else try{var n=yield e.document.fetch(t),s=yield n.text();e.image=s}catch(e){console.error('Error while loading image "'.concat(t,'":'),e)}e.loaded=!0}))()}renderChildren(t){var{document:e,image:r,loaded:i}=this,n=this.getAttribute("x").getPixels("x"),s=this.getAttribute("y").getPixels("y"),a=this.getStyle("width").getPixels("x"),o=this.getStyle("height").getPixels("y");if(i&&r&&a&&o){if(t.save(),t.translate(n,s),this.isSvg){var u=e.canvg.forkString(t,this.image,{ignoreMouse:!0,ignoreAnimation:!0,ignoreDimensions:!0,ignoreClear:!0,offsetX:0,offsetY:0,scaleWidth:a,scaleHeight:o});u.document.documentElement.parent=this,u.render()}else{var h=this.image;e.setViewBox({ctx:t,aspectRatio:this.getAttribute("preserveAspectRatio").getString(),width:a,desiredWidth:h.width,height:o,desiredHeight:h.height}),this.loaded&&(void 0===h.complete||h.complete)&&t.drawImage(h,0,0)}t.restore()}}getBoundingBox(){var t=this.getAttribute("x").getPixels("x"),e=this.getAttribute("y").getPixels("y"),r=this.getStyle("width").getPixels("x"),i=this.getStyle("height").getPixels("y");return new Lt(t,e,t+r,e+i)}}class me extends Bt{constructor(){super(...arguments),this.type="symbol"}render(t){}}class xe{constructor(t){this.document=t,this.loaded=!1,t.fonts.push(this)}load(t,e){var r=this;return n((function*(){try{var{document:i}=r,n=(yield i.canvg.parser.load(e)).getElementsByTagName("font");Array.from(n).forEach((e=>{var r=i.createElement(e);i.definitions[t]=r}))}catch(t){console.error('Error while loading font "'.concat(e,'":'),t)}r.loaded=!0}))()}}class be extends Mt{constructor(t,e,r){super(t,e,r),this.type="style";var i=B(Array.from(e.childNodes).map((t=>t.textContent)).join("").replace(/(\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+\/)|(^[\s]*\/\/.*)/gm,"").replace(/@import.*;/g,""));i.split("}").forEach((e=>{var r=e.trim();if(r){var i=r.split("{"),n=i[0].split(","),s=i[1].split(";");n.forEach((e=>{var r=e.trim();if(r){var i=t.styles[r]||{};if(s.forEach((e=>{var r=e.indexOf(":"),n=e.substr(0,r).trim(),s=e.substr(r+1,e.length-r).trim();n&&s&&(i[n]=new ft(t,n,s))})),t.styles[r]=i,t.stylesSpecificity[r]=tt(r),"@font-face"===r){var n=i["font-family"].getString().replace(/"|'/g,"");i.src.getString().split(",").forEach((e=>{if(e.indexOf('format("svg")')>0){var r=X(e);r&&new xe(t).load(n,r)}}))}}}))}}))}}be.parseExternalUrl=X;class we extends Bt{constructor(){super(...arguments),this.type="use"}setContext(t){super.setContext(t);var e=this.getAttribute("x"),r=this.getAttribute("y");e.hasValue()&&t.translate(e.getPixels("x"),0),r.hasValue()&&t.translate(0,r.getPixels("y"))}path(t){var{element:e}=this;e&&e.path(t)}renderChildren(t){var{document:e,element:r}=this;if(r){var i=r;if("symbol"===r.type&&((i=new Xt(e,null)).attributes.viewBox=new ft(e,"viewBox",r.getAttribute("viewBox").getString()),i.attributes.preserveAspectRatio=new ft(e,"preserveAspectRatio",r.getAttribute("preserveAspectRatio").getString()),i.attributes.overflow=new ft(e,"overflow",r.getAttribute("overflow").getString()),i.children=r.children,r.styles.opacity=new ft(e,"opacity",this.calculateOpacity())),"svg"===i.type){var n=this.getStyle("width",!1,!0),s=this.getStyle("height",!1,!0);n.hasValue()&&(i.attributes.width=new ft(e,"width",n.getString())),s.hasValue()&&(i.attributes.height=new ft(e,"height",s.getString()))}var a=i.parent;i.parent=this,i.render(t),i.parent=a}}getBoundingBox(t){var{element:e}=this;return e?e.getBoundingBox(t):null}elementTransform(){var{document:t,element:e}=this;return Nt.fromElement(t,e)}get element(){return this.cachedElement||(this.cachedElement=this.getHrefAttribute().getDefinition()),this.cachedElement}}function Se(t,e,r,i,n,s){return t[r*i*4+4*e+s]}function Te(t,e,r,i,n,s,a){t[r*i*4+4*e+s]=a}function Oe(t,e,r){return t[e]*r}function Ae(t,e,r,i){return e+Math.cos(t)*r+Math.sin(t)*i}class Ce extends Mt{constructor(t,e,r){super(t,e,r),this.type="feColorMatrix";var i=z(this.getAttribute("values").getString());switch(this.getAttribute("type").getString("matrix")){case"saturate":var n=i[0];i=[.213+.787*n,.715-.715*n,.072-.072*n,0,0,.213-.213*n,.715+.285*n,.072-.072*n,0,0,.213-.213*n,.715-.715*n,.072+.928*n,0,0,0,0,0,1,0,0,0,0,0,1];break;case"hueRotate":var s=i[0]*Math.PI/180;i=[Ae(s,.213,.787,-.213),Ae(s,.715,-.715,-.715),Ae(s,.072,-.072,.928),0,0,Ae(s,.213,-.213,.143),Ae(s,.715,.285,.14),Ae(s,.072,-.072,-.283),0,0,Ae(s,.213,-.213,-.787),Ae(s,.715,-.715,.715),Ae(s,.072,.928,.072),0,0,0,0,0,1,0,0,0,0,0,1];break;case"luminanceToAlpha":i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,.2125,.7154,.0721,0,0,0,0,0,0,1]}this.matrix=i,this.includeOpacity=this.getAttribute("includeOpacity").hasValue()}apply(t,e,r,i,n){for(var{includeOpacity:s,matrix:a}=this,o=t.getImageData(0,0,i,n),u=0;u{o.addBoundingBox(e.getBoundingBox(t))})),i=Math.floor(o.x1),n=Math.floor(o.y1),s=Math.floor(o.width),a=Math.floor(o.height)}var u=this.removeStyles(e,Ee.ignoreStyles),h=r.createCanvas(i+s,n+a),c=h.getContext("2d");r.screen.setDefaults(c),this.renderChildren(c),new Ce(r,{nodeType:1,childNodes:[],attributes:[{nodeName:"type",value:"luminanceToAlpha"},{nodeName:"includeOpacity",value:"true"}]}).apply(c,0,0,i+s,n+a);var l=r.createCanvas(i+s,n+a),f=l.getContext("2d");r.screen.setDefaults(f),e.render(f),f.globalCompositeOperation="destination-in",f.fillStyle=c.createPattern(h,"no-repeat"),f.fillRect(0,0,i+s,n+a),t.fillStyle=f.createPattern(l,"no-repeat"),t.fillRect(0,0,i+s,n+a),this.restoreStyles(e,u)}render(t){}}Ee.ignoreStyles=["mask","transform","clip-path"];var Pe=()=>{};class Ne extends Mt{constructor(){super(...arguments),this.type="clipPath"}apply(t){var{document:e}=this,r=Reflect.getPrototypeOf(t),{beginPath:i,closePath:n}=t;r&&(r.beginPath=Pe,r.closePath=Pe),Reflect.apply(i,t,[]),this.children.forEach((i=>{if(void 0!==i.path){var s=void 0!==i.elementTransform?i.elementTransform():null;s||(s=Nt.fromElement(e,i)),s&&s.apply(t),i.path(t),r&&(r.closePath=n),s&&s.unapply(t)}})),Reflect.apply(n,t,[]),t.clip(),r&&(r.beginPath=i,r.closePath=n)}render(t){}}class Me extends Mt{constructor(){super(...arguments),this.type="filter"}apply(t,e){var{document:r,children:i}=this,n=e.getBoundingBox(t);if(n){var s=0,a=0;i.forEach((t=>{var e=t.extraFilterDistance||0;s=Math.max(s,e),a=Math.max(a,e)}));var o=Math.floor(n.width),u=Math.floor(n.height),h=o+2*s,c=u+2*a;if(!(h<1||c<1)){var l=Math.floor(n.x),f=Math.floor(n.y),g=this.removeStyles(e,Me.ignoreStyles),p=r.createCanvas(h,c),d=p.getContext("2d");r.screen.setDefaults(d),d.translate(-l+s,-f+a),e.render(d),i.forEach((t=>{"function"==typeof t.apply&&t.apply(d,0,0,h,c)})),t.drawImage(p,0,0,h,c,l-s,f-a,h,c),this.restoreStyles(e,g)}}}render(t){}}Me.ignoreStyles=["filter","transform","clip-path"];class Re extends Mt{constructor(t,e,r){super(t,e,r),this.type="feDropShadow",this.addStylesFromStyleDefinition()}apply(t,e,r,i,n){}}class _e extends Mt{constructor(){super(...arguments),this.type="feMorphology"}apply(t,e,r,i,n){}}class Ve extends Mt{constructor(){super(...arguments),this.type="feComposite"}apply(t,e,r,i,n){}}class ke extends Mt{constructor(t,e,r){super(t,e,r),this.type="feGaussianBlur",this.blurRadius=Math.floor(this.getAttribute("stdDeviation").getNumber()),this.extraFilterDistance=this.blurRadius}apply(t,e,r,i,n){var{document:s,blurRadius:a}=this,o=s.window?s.window.document.body:null,u=t.canvas;u.id=s.getUniqueId(),o&&(u.style.display="none",o.appendChild(u)),k(u,e,r,i,n,a),o&&o.removeChild(u)}}class Ie extends Mt{constructor(){super(...arguments),this.type="title"}}class Le extends Mt{constructor(){super(...arguments),this.type="desc"}}var De={svg:Xt,rect:Yt,circle:Wt,ellipse:qt,line:Gt,polyline:Qt,polygon:$t,path:jt,pattern:Zt,marker:Kt,defs:Jt,linearGradient:re,radialGradient:ie,stop:ne,animate:se,animateColor:ae,animateTransform:oe,font:ue,"font-face":he,"missing-glyph":ce,glyph:Ft,text:zt,tspan:Ut,tref:le,a:fe,textPath:de,image:ye,g:te,symbol:me,style:be,use:we,mask:Ee,clipPath:Ne,filter:Me,feDropShadow:Re,feMorphology:_e,feComposite:Ve,feColorMatrix:Ce,feGaussianBlur:ke,title:Ie,desc:Le};function Be(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,i)}return r}function je(){return je=n((function*(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=document.createElement("img");return e&&(r.crossOrigin="Anonymous"),new Promise(((e,i)=>{r.onload=()=>{e(r)},r.onerror=(t,e,r,n,s)=>{i(s)},r.src=t}))})),je.apply(this,arguments)}class Fe{constructor(t){var{rootEmSize:e=12,emSize:r=12,createCanvas:i=Fe.createCanvas,createImage:n=Fe.createImage,anonymousCrossOrigin:s}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.canvg=t,this.definitions={},this.styles={},this.stylesSpecificity={},this.images=[],this.fonts=[],this.emSizeStack=[],this.uniqueId=0,this.screen=t.screen,this.rootEmSize=e,this.emSize=r,this.createCanvas=i,this.createImage=this.bindCreateImage(n,s),this.screen.wait(this.isImagesLoaded.bind(this)),this.screen.wait(this.isFontsLoaded.bind(this))}bindCreateImage(t,e){return"boolean"==typeof e?(r,i)=>t(r,"boolean"==typeof i?i:e):t}get window(){return this.screen.window}get fetch(){return this.screen.fetch}get ctx(){return this.screen.ctx}get emSize(){var{emSizeStack:t}=this;return t[t.length-1]}set emSize(t){var{emSizeStack:e}=this;e.push(t)}popEmSize(){var{emSizeStack:t}=this;t.pop()}getUniqueId(){return"canvg".concat(++this.uniqueId)}isImagesLoaded(){return this.images.every((t=>t.loaded))}isFontsLoaded(){return this.fonts.every((t=>t.loaded))}createDocumentElement(t){var e=this.createElement(t.documentElement);return e.root=!0,e.addStylesFromStyleDefinition(),this.documentElement=e,e}createElement(t){var e=t.nodeName.replace(/^[^:]+:/,""),r=Fe.elementTypes[e];return void 0!==r?new r(this,t):new Rt(this,t)}createTextNode(t){return new Ht(this,t)}setViewBox(t){this.screen.setViewBox(function(t){for(var e=1;e2&&void 0!==arguments[2]?arguments[2]:{};this.parser=new wt(r),this.screen=new mt(t,r),this.options=r;var i=new Fe(this,r),n=i.createDocumentElement(e);this.document=i,this.documentElement=n}static from(t,e){var r=arguments;return n((function*(){var i=r.length>2&&void 0!==r[2]?r[2]:{},n=new wt(i),s=yield n.parse(e);return new He(t,s,i)}))()}static fromString(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=new wt(r).parseFromString(e);return new He(t,i,r)}fork(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return He.from(t,e,Ue(Ue({},this.options),r))}forkString(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return He.fromString(t,e,Ue(Ue({},this.options),r))}ready(){return this.screen.ready()}isReady(){return this.screen.isReady()}render(){var t=arguments,e=this;return n((function*(){var r=t.length>0&&void 0!==t[0]?t[0]:{};e.start(Ue({enableRedraw:!0,ignoreAnimation:!0,ignoreMouse:!0},r)),yield e.ready(),e.stop()}))()}start(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{documentElement:e,screen:r,options:i}=this;r.start(e,Ue(Ue({enableRedraw:!0},i),t))}stop(){this.screen.stop()}resize(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t,r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];this.documentElement.resize(t,e,r)}}}}]); -//# sourceMappingURL=332.js.map \ No newline at end of file diff --git a/public/js/332.js.map b/public/js/332.js.map deleted file mode 100644 index aceb82d..0000000 --- a/public/js/332.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"js/332.js","mappings":"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AK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAClwCC,EAAW,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI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","sources":["webpack:///./node_modules/performance-now/lib/performance-now.js","webpack:///./node_modules/raf/index.js","webpack:///./node_modules/rgbcolor/index.js","webpack:///./node_modules/core-js/internals/a-callable.js","webpack:///./node_modules/core-js/internals/a-constructor.js","webpack:///./node_modules/core-js/internals/a-possible-prototype.js","webpack:///./node_modules/core-js/internals/add-to-unscopables.js","webpack:///./node_modules/core-js/internals/advance-string-index.js","webpack:///./node_modules/core-js/internals/an-instance.js","webpack:///./node_modules/core-js/internals/an-object.js","webpack:///./node_modules/core-js/internals/array-includes.js","webpack:///./node_modules/core-js/internals/array-method-is-strict.js","webpack:///./node_modules/core-js/internals/array-reduce.js","webpack:///./node_modules/core-js/internals/array-slice.js","webpack:///./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:///./node_modules/core-js/internals/classof-raw.js","webpack:///./node_modules/core-js/internals/classof.js","webpack:///./node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/core-js/internals/correct-is-regexp-logic.js","webpack:///./node_modules/core-js/internals/correct-prototype-getter.js","webpack:///./node_modules/core-js/internals/create-iter-result-object.js","webpack:///./node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///./node_modules/core-js/internals/create-property-descriptor.js","webpack:///./node_modules/core-js/internals/define-built-in-accessor.js","webpack:///./node_modules/core-js/internals/define-built-in.js","webpack:///./node_modules/core-js/internals/define-global-property.js","webpack:///./node_modules/core-js/internals/descriptors.js","webpack:///./node_modules/core-js/internals/document-create-element.js","webpack:///./node_modules/core-js/internals/dom-iterables.js","webpack:///./node_modules/core-js/internals/dom-token-list-prototype.js","webpack:///./node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/core-js/internals/environment-is-ios-pebble.js","webpack:///./node_modules/core-js/internals/environment-is-ios.js","webpack:///./node_modules/core-js/internals/environment-is-node.js","webpack:///./node_modules/core-js/internals/environment-is-webos-webkit.js","webpack:///./node_modules/core-js/internals/environment-user-agent.js","webpack:///./node_modules/core-js/internals/environment-v8-version.js","webpack:///./node_modules/core-js/internals/environment.js","webpack:///./node_modules/core-js/internals/export.js","webpack:///./node_modules/core-js/internals/fails.js","webpack:///./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack:///./node_modules/core-js/internals/function-apply.js","webpack:///./node_modules/core-js/internals/function-bind-context.js","webpack:///./node_modules/core-js/internals/function-bind-native.js","webpack:///./node_modules/core-js/internals/function-call.js","webpack:///./node_modules/core-js/internals/function-name.js","webpack:///./node_modules/core-js/internals/function-uncurry-this-accessor.js","webpack:///./node_modules/core-js/internals/function-uncurry-this-clause.js","webpack:///./node_modules/core-js/internals/function-uncurry-this.js","webpack:///./node_modules/core-js/internals/get-built-in.js","webpack:///./node_modules/core-js/internals/get-iterator-method.js","webpack:///./node_modules/core-js/internals/get-iterator.js","webpack:///./node_modules/core-js/internals/get-method.js","webpack:///./node_modules/core-js/internals/get-substitution.js","webpack:///./node_modules/core-js/internals/global-this.js","webpack:///./node_modules/core-js/internals/has-own-property.js","webpack:///./node_modules/core-js/internals/hidden-keys.js","webpack:///./node_modules/core-js/internals/host-report-errors.js","webpack:///./node_modules/core-js/internals/html.js","webpack:///./node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/core-js/internals/indexed-object.js","webpack:///./node_modules/core-js/internals/inspect-source.js","webpack:///./node_modules/core-js/internals/internal-state.js","webpack:///./node_modules/core-js/internals/is-array-iterator-method.js","webpack:///./node_modules/core-js/internals/is-array.js","webpack:///./node_modules/core-js/internals/is-callable.js","webpack:///./node_modules/core-js/internals/is-constructor.js","webpack:///./node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/core-js/internals/is-null-or-undefined.js","webpack:///./node_modules/core-js/internals/is-object.js","webpack:///./node_modules/core-js/internals/is-possible-prototype.js","webpack:///./node_modules/core-js/internals/is-pure.js","webpack:///./node_modules/core-js/internals/is-regexp.js","webpack:///./node_modules/core-js/internals/is-symbol.js","webpack:///./node_modules/core-js/internals/iterate.js","webpack:///./node_modules/core-js/internals/iterator-close.js","webpack:///./node_modules/core-js/internals/iterator-create-constructor.js","webpack:///./node_modules/core-js/internals/iterator-define.js","webpack:///./node_modules/core-js/internals/iterators-core.js","webpack:///./node_modules/core-js/internals/iterators.js","webpack:///./node_modules/core-js/internals/length-of-array-like.js","webpack:///./node_modules/core-js/internals/make-built-in.js","webpack:///./node_modules/core-js/internals/math-trunc.js","webpack:///./node_modules/core-js/internals/microtask.js","webpack:///./node_modules/core-js/internals/new-promise-capability.js","webpack:///./node_modules/core-js/internals/not-a-regexp.js","webpack:///./node_modules/core-js/internals/object-create.js","webpack:///./node_modules/core-js/internals/object-define-properties.js","webpack:///./node_modules/core-js/internals/object-define-property.js","webpack:///./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names.js","webpack:///./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/core-js/internals/object-get-prototype-of.js","webpack:///./node_modules/core-js/internals/object-is-prototype-of.js","webpack:///./node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/core-js/internals/object-keys.js","webpack:///./node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./node_modules/core-js/internals/object-set-prototype-of.js","webpack:///./node_modules/core-js/internals/ordinary-to-primitive.js","webpack:///./node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/core-js/internals/perform.js","webpack:///./node_modules/core-js/internals/promise-constructor-detection.js","webpack:///./node_modules/core-js/internals/promise-native-constructor.js","webpack:///./node_modules/core-js/internals/promise-resolve.js","webpack:///./node_modules/core-js/internals/promise-statics-incorrect-iteration.js","webpack:///./node_modules/core-js/internals/queue.js","webpack:///./node_modules/core-js/internals/regexp-exec-abstract.js","webpack:///./node_modules/core-js/internals/regexp-exec.js","webpack:///./node_modules/core-js/internals/regexp-flags.js","webpack:///./node_modules/core-js/internals/regexp-get-flags.js","webpack:///./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack:///./node_modules/core-js/internals/regexp-unsupported-dot-all.js","webpack:///./node_modules/core-js/internals/regexp-unsupported-ncg.js","webpack:///./node_modules/core-js/internals/require-object-coercible.js","webpack:///./node_modules/core-js/internals/safe-get-built-in.js","webpack:///./node_modules/core-js/internals/set-species.js","webpack:///./node_modules/core-js/internals/set-to-string-tag.js","webpack:///./node_modules/core-js/internals/shared-key.js","webpack:///./node_modules/core-js/internals/shared-store.js","webpack:///./node_modules/core-js/internals/shared.js","webpack:///./node_modules/core-js/internals/species-constructor.js","webpack:///./node_modules/core-js/internals/string-multibyte.js","webpack:///./node_modules/core-js/internals/string-trim-forced.js","webpack:///./node_modules/core-js/internals/string-trim.js","webpack:///./node_modules/core-js/internals/symbol-constructor-detection.js","webpack:///./node_modules/core-js/internals/task.js","webpack:///./node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/core-js/internals/to-indexed-object.js","webpack:///./node_modules/core-js/internals/to-integer-or-infinity.js","webpack:///./node_modules/core-js/internals/to-length.js","webpack:///./node_modules/core-js/internals/to-object.js","webpack:///./node_modules/core-js/internals/to-primitive.js","webpack:///./node_modules/core-js/internals/to-property-key.js","webpack:///./node_modules/core-js/internals/to-string-tag-support.js","webpack:///./node_modules/core-js/internals/to-string.js","webpack:///./node_modules/core-js/internals/try-to-string.js","webpack:///./node_modules/core-js/internals/uid.js","webpack:///./node_modules/core-js/internals/use-symbol-as-uid.js","webpack:///./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack:///./node_modules/core-js/internals/validate-arguments-length.js","webpack:///./node_modules/core-js/internals/weak-map-basic-detection.js","webpack:///./node_modules/core-js/internals/well-known-symbol.js","webpack:///./node_modules/core-js/internals/whitespaces.js","webpack:///./node_modules/core-js/modules/es.array.index-of.js","webpack:///./node_modules/core-js/modules/es.array.iterator.js","webpack:///./node_modules/core-js/modules/es.array.reduce.js","webpack:///./node_modules/core-js/modules/es.array.reverse.js","webpack:///./node_modules/core-js/modules/es.promise.all.js","webpack:///./node_modules/core-js/modules/es.promise.catch.js","webpack:///./node_modules/core-js/modules/es.promise.constructor.js","webpack:///./node_modules/core-js/modules/es.promise.js","webpack:///./node_modules/core-js/modules/es.promise.race.js","webpack:///./node_modules/core-js/modules/es.promise.reject.js","webpack:///./node_modules/core-js/modules/es.promise.resolve.js","webpack:///./node_modules/core-js/modules/es.regexp.exec.js","webpack:///./node_modules/core-js/modules/es.regexp.to-string.js","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/core-js/modules/es.string.includes.js","webpack:///./node_modules/core-js/modules/es.string.match.js","webpack:///./node_modules/core-js/modules/es.string.replace.js","webpack:///./node_modules/core-js/modules/es.string.split.js","webpack:///./node_modules/core-js/modules/es.string.starts-with.js","webpack:///./node_modules/core-js/modules/es.string.trim.js","webpack:///./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./node_modules/svg-pathdata/lib/SVGPathData.module.js","webpack:///./node_modules/stackblur-canvas/dist/stackblur-es.js","webpack:///./node_modules/canvg/lib/index.es.js"],"sourcesContent":["// Generated by CoffeeScript 1.12.2\n(function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","/*\n\tBased on rgbcolor.js by Stoyan Stefanov \n\thttp://www.phpied.com/rgb-color-parser-in-javascript/\n*/\n\nmodule.exports = function(color_string) {\n this.ok = false;\n this.alpha = 1.0;\n\n // strip any leading #\n if (color_string.charAt(0) == '#') { // remove # if any\n color_string = color_string.substr(1,6);\n }\n\n color_string = color_string.replace(/ /g,'');\n color_string = color_string.toLowerCase();\n\n // before getting into regexps, try simple matches\n // and overwrite the input\n var simple_colors = {\n aliceblue: 'f0f8ff',\n antiquewhite: 'faebd7',\n aqua: '00ffff',\n aquamarine: '7fffd4',\n azure: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '000000',\n blanchedalmond: 'ffebcd',\n blue: '0000ff',\n blueviolet: '8a2be2',\n brown: 'a52a2a',\n burlywood: 'deb887',\n cadetblue: '5f9ea0',\n chartreuse: '7fff00',\n chocolate: 'd2691e',\n coral: 'ff7f50',\n cornflowerblue: '6495ed',\n cornsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: '00ffff',\n darkblue: '00008b',\n darkcyan: '008b8b',\n darkgoldenrod: 'b8860b',\n darkgray: 'a9a9a9',\n darkgreen: '006400',\n darkkhaki: 'bdb76b',\n darkmagenta: '8b008b',\n darkolivegreen: '556b2f',\n darkorange: 'ff8c00',\n darkorchid: '9932cc',\n darkred: '8b0000',\n darksalmon: 'e9967a',\n darkseagreen: '8fbc8f',\n darkslateblue: '483d8b',\n darkslategray: '2f4f4f',\n darkturquoise: '00ced1',\n darkviolet: '9400d3',\n deeppink: 'ff1493',\n deepskyblue: '00bfff',\n dimgray: '696969',\n dodgerblue: '1e90ff',\n feldspar: 'd19275',\n firebrick: 'b22222',\n floralwhite: 'fffaf0',\n forestgreen: '228b22',\n fuchsia: 'ff00ff',\n gainsboro: 'dcdcdc',\n ghostwhite: 'f8f8ff',\n gold: 'ffd700',\n goldenrod: 'daa520',\n gray: '808080',\n green: '008000',\n greenyellow: 'adff2f',\n honeydew: 'f0fff0',\n hotpink: 'ff69b4',\n indianred : 'cd5c5c',\n indigo : '4b0082',\n ivory: 'fffff0',\n khaki: 'f0e68c',\n lavender: 'e6e6fa',\n lavenderblush: 'fff0f5',\n lawngreen: '7cfc00',\n lemonchiffon: 'fffacd',\n lightblue: 'add8e6',\n lightcoral: 'f08080',\n lightcyan: 'e0ffff',\n lightgoldenrodyellow: 'fafad2',\n lightgrey: 'd3d3d3',\n lightgreen: '90ee90',\n lightpink: 'ffb6c1',\n lightsalmon: 'ffa07a',\n lightseagreen: '20b2aa',\n lightskyblue: '87cefa',\n lightslateblue: '8470ff',\n lightslategray: '778899',\n lightsteelblue: 'b0c4de',\n lightyellow: 'ffffe0',\n lime: '00ff00',\n limegreen: '32cd32',\n linen: 'faf0e6',\n magenta: 'ff00ff',\n maroon: '800000',\n mediumaquamarine: '66cdaa',\n mediumblue: '0000cd',\n mediumorchid: 'ba55d3',\n mediumpurple: '9370d8',\n mediumseagreen: '3cb371',\n mediumslateblue: '7b68ee',\n mediumspringgreen: '00fa9a',\n mediumturquoise: '48d1cc',\n mediumvioletred: 'c71585',\n midnightblue: '191970',\n mintcream: 'f5fffa',\n mistyrose: 'ffe4e1',\n moccasin: 'ffe4b5',\n navajowhite: 'ffdead',\n navy: '000080',\n oldlace: 'fdf5e6',\n olive: '808000',\n olivedrab: '6b8e23',\n orange: 'ffa500',\n orangered: 'ff4500',\n orchid: 'da70d6',\n palegoldenrod: 'eee8aa',\n palegreen: '98fb98',\n paleturquoise: 'afeeee',\n palevioletred: 'd87093',\n papayawhip: 'ffefd5',\n peachpuff: 'ffdab9',\n peru: 'cd853f',\n pink: 'ffc0cb',\n plum: 'dda0dd',\n powderblue: 'b0e0e6',\n purple: '800080',\n rebeccapurple: '663399',\n red: 'ff0000',\n rosybrown: 'bc8f8f',\n royalblue: '4169e1',\n saddlebrown: '8b4513',\n salmon: 'fa8072',\n sandybrown: 'f4a460',\n seagreen: '2e8b57',\n seashell: 'fff5ee',\n sienna: 'a0522d',\n silver: 'c0c0c0',\n skyblue: '87ceeb',\n slateblue: '6a5acd',\n slategray: '708090',\n snow: 'fffafa',\n springgreen: '00ff7f',\n steelblue: '4682b4',\n tan: 'd2b48c',\n teal: '008080',\n thistle: 'd8bfd8',\n tomato: 'ff6347',\n turquoise: '40e0d0',\n violet: 'ee82ee',\n violetred: 'd02090',\n wheat: 'f5deb3',\n white: 'ffffff',\n whitesmoke: 'f5f5f5',\n yellow: 'ffff00',\n yellowgreen: '9acd32'\n };\n color_string = simple_colors[color_string] || color_string;\n // emd of simple type-in colors\n\n // array of color definition objects\n var color_defs = [\n {\n re: /^rgba\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3}),\\s*((?:\\d?\\.)?\\d)\\)$/,\n example: ['rgba(123, 234, 45, 0.8)', 'rgba(255,234,245,1.0)'],\n process: function (bits){\n return [\n parseInt(bits[1]),\n parseInt(bits[2]),\n parseInt(bits[3]),\n parseFloat(bits[4])\n ];\n }\n },\n {\n re: /^rgb\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,\n example: ['rgb(123, 234, 45)', 'rgb(255,234,245)'],\n process: function (bits){\n return [\n parseInt(bits[1]),\n parseInt(bits[2]),\n parseInt(bits[3])\n ];\n }\n },\n {\n re: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n example: ['#00ff00', '336699'],\n process: function (bits){\n return [\n parseInt(bits[1], 16),\n parseInt(bits[2], 16),\n parseInt(bits[3], 16)\n ];\n }\n },\n {\n re: /^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n example: ['#fb0', 'f0f'],\n process: function (bits){\n return [\n parseInt(bits[1] + bits[1], 16),\n parseInt(bits[2] + bits[2], 16),\n parseInt(bits[3] + bits[3], 16)\n ];\n }\n }\n ];\n\n // search through the definitions to find a match\n for (var i = 0; i < color_defs.length; i++) {\n var re = color_defs[i].re;\n var processor = color_defs[i].process;\n var bits = re.exec(color_string);\n if (bits) {\n var channels = processor(bits);\n this.r = channels[0];\n this.g = channels[1];\n this.b = channels[2];\n if (channels.length > 3) {\n this.alpha = channels[3];\n }\n this.ok = true;\n }\n\n }\n\n // validate/cleanup values\n this.r = (this.r < 0 || isNaN(this.r)) ? 0 : ((this.r > 255) ? 255 : this.r);\n this.g = (this.g < 0 || isNaN(this.g)) ? 0 : ((this.g > 255) ? 255 : this.g);\n this.b = (this.b < 0 || isNaN(this.b)) ? 0 : ((this.b > 255) ? 255 : this.b);\n this.alpha = (this.alpha < 0) ? 0 : ((this.alpha > 1.0 || isNaN(this.alpha)) ? 1.0 : this.alpha);\n\n // some getters\n this.toRGB = function () {\n return 'rgb(' + this.r + ', ' + this.g + ', ' + this.b + ')';\n }\n this.toRGBA = function () {\n return 'rgba(' + this.r + ', ' + this.g + ', ' + this.b + ', ' + this.alpha + ')';\n }\n this.toHex = function () {\n var r = this.r.toString(16);\n var g = this.g.toString(16);\n var b = this.b.toString(16);\n if (r.length == 1) r = '0' + r;\n if (g.length == 1) g = '0' + g;\n if (b.length == 1) b = '0' + b;\n return '#' + r + g + b;\n }\n\n // help\n this.getHelpXML = function () {\n\n var examples = new Array();\n // add regexps\n for (var i = 0; i < color_defs.length; i++) {\n var example = color_defs[i].example;\n for (var j = 0; j < example.length; j++) {\n examples[examples.length] = example[j];\n }\n }\n // add type-in colors\n for (var sc in simple_colors) {\n examples[examples.length] = sc;\n }\n\n var xml = document.createElement('ul');\n xml.setAttribute('id', 'rgbcolor-examples');\n for (var i = 0; i < examples.length; i++) {\n try {\n var list_item = document.createElement('li');\n var list_color = new RGBColor(examples[i]);\n var example_div = document.createElement('div');\n example_div.style.cssText =\n 'margin: 3px; '\n + 'border: 1px solid black; '\n + 'background:' + list_color.toHex() + '; '\n + 'color:' + list_color.toHex()\n ;\n example_div.appendChild(document.createTextNode('test'));\n var list_item_value = document.createTextNode(\n ' ' + examples[i] + ' -> ' + list_color.toRGB() + ' -> ' + list_color.toHex()\n );\n list_item.appendChild(example_div);\n list_item.appendChild(list_item_value);\n xml.appendChild(list_item);\n\n } catch(e){}\n }\n return xml;\n\n }\n\n}\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\nvar isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","'use strict';\nvar isPossiblePrototype = require('../internals/is-possible-prototype');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (isPossiblePrototype(argument)) return argument;\n throw new $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] === undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","'use strict';\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw new $TypeError('Incorrect invocation');\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n if (length === 0) return !IS_INCLUDES && -1;\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el !== el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call -- required for testing\n method.call(null, argument || function () { return 1; }, 1);\n });\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar $TypeError = TypeError;\n\nvar REDUCE_EMPTY = 'Reduce of empty array with no initial value';\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = lengthOfArrayLike(O);\n aCallable(callbackfn);\n if (length === 0 && argumentsLength < 2) throw new $TypeError(REDUCE_EMPTY);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw new $TypeError(REDUCE_EMPTY);\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n try {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n } catch (error) { return false; } // workaround of old WebKit + `eval` bug\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\n// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","'use strict';\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(globalThis, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n globalThis[key] = value;\n } return value;\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isObject = require('../internals/is-object');\n\nvar document = globalThis.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\n// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","'use strict';\n// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","'use strict';\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","'use strict';\nvar userAgent = require('../internals/environment-user-agent');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && typeof Pebble != 'undefined';\n","'use strict';\nvar userAgent = require('../internals/environment-user-agent');\n\n// eslint-disable-next-line redos/no-vulnerable -- safe\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","'use strict';\nvar ENVIRONMENT = require('../internals/environment');\n\nmodule.exports = ENVIRONMENT === 'NODE';\n","'use strict';\nvar userAgent = require('../internals/environment-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\nvar navigator = globalThis.navigator;\nvar userAgent = navigator && navigator.userAgent;\n\nmodule.exports = userAgent ? String(userAgent) : '';\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar userAgent = require('../internals/environment-user-agent');\n\nvar process = globalThis.process;\nvar Deno = globalThis.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","'use strict';\n/* global Bun, Deno -- detection */\nvar globalThis = require('../internals/global-this');\nvar userAgent = require('../internals/environment-user-agent');\nvar classof = require('../internals/classof-raw');\n\nvar userAgentStartsWith = function (string) {\n return userAgent.slice(0, string.length) === string;\n};\n\nmodule.exports = (function () {\n if (userAgentStartsWith('Bun/')) return 'BUN';\n if (userAgentStartsWith('Cloudflare-Workers')) return 'CLOUDFLARE';\n if (userAgentStartsWith('Deno/')) return 'DENO';\n if (userAgentStartsWith('Node.js/')) return 'NODE';\n if (globalThis.Bun && typeof Bun.version == 'string') return 'BUN';\n if (globalThis.Deno && typeof Deno.version == 'object') return 'DENO';\n if (classof(globalThis.process) === 'process') return 'NODE';\n if (globalThis.window && globalThis.document) return 'BROWSER';\n return 'REST';\n})();\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = globalThis;\n } else if (STATIC) {\n target = globalThis[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = globalThis[TARGET] && globalThis[TARGET].prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (KEY, exec, FORCED, SHAM) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegExp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) !== 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () {\n execCalled = true;\n return null;\n };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n FORCED\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var $exec = regexp.exec;\n if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: call(nativeRegExpMethod, regexp, str, arg2) };\n }\n return { done: true, value: call(nativeMethod, str, regexp, arg2) };\n }\n return { done: false };\n });\n\n defineBuiltIn(String.prototype, KEY, methods[0]);\n defineBuiltIn(RegExpPrototype, SYMBOL, methods[1]);\n }\n\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-function-prototype-bind, es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n// eslint-disable-next-line es/no-function-prototype-bind -- safe\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","'use strict';\nvar classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\n// eslint-disable-next-line es/no-function-prototype-bind -- safe\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(globalThis[namespace]) : globalThis[namespace] && globalThis[namespace][method];\n};\n","'use strict';\nvar classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw new $TypeError(tryToString(argument) + ' is not iterable');\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n// eslint-disable-next-line redos/no-vulnerable -- safe\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","'use strict';\nvar check = function (it) {\n return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n check(typeof this == 'object' && this) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nmodule.exports = function (a, b) {\n try {\n // eslint-disable-next-line no-console -- safe\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n } catch (error) { /* empty */ }\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","'use strict';\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar globalThis = require('../internals/global-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = globalThis.TypeError;\nvar WeakMap = globalThis.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw new TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","'use strict';\nvar classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) === 'Array';\n};\n","'use strict';\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar documentAll = typeof document == 'object' && document.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nmodule.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.test(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, [], argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value === POLYFILL ? true\n : value === NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nmodule.exports = function (argument) {\n return isObject(argument) || argument === null;\n};\n","'use strict';\nmodule.exports = false;\n","'use strict';\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) === 'RegExp');\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw new $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND && KIND in IterablePrototype) return IterablePrototype[KIND];\n\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n }\n\n return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME === 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT === VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\).*$/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar safeGetBuiltIn = require('../internals/safe-get-built-in');\nvar bind = require('../internals/function-bind-context');\nvar macrotask = require('../internals/task').set;\nvar Queue = require('../internals/queue');\nvar IS_IOS = require('../internals/environment-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/environment-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/environment-is-webos-webkit');\nvar IS_NODE = require('../internals/environment-is-node');\n\nvar MutationObserver = globalThis.MutationObserver || globalThis.WebKitMutationObserver;\nvar document = globalThis.document;\nvar process = globalThis.process;\nvar Promise = globalThis.Promise;\nvar microtask = safeGetBuiltIn('queueMicrotask');\nvar notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!microtask) {\n var queue = new Queue();\n\n var flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (fn = queue.get()) try {\n fn();\n } catch (error) {\n if (queue.head) notify();\n throw error;\n }\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessage\n // - onreadystatechange\n // - setTimeout\n } else {\n // `webpack` dev server bug on IE global methods - use bind(fn, global)\n macrotask = bind(macrotask, globalThis);\n notify = function () {\n macrotask(flush);\n };\n }\n\n microtask = function (fn) {\n if (!queue.head) notify();\n queue.add(fn);\n };\n}\n\nmodule.exports = microtask;\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw new $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar isRegExp = require('../internals/is-regexp');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw new $TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","'use strict';\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n // eslint-disable-next-line no-useless-assignment -- avoid memory leak\n activeXDocument = null;\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\n/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar isObject = require('../internals/is-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n requireObjectCoercible(O);\n aPossiblePrototype(proto);\n if (!isObject(O)) return O;\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw new $TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar ENVIRONMENT = require('../internals/environment');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/environment-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(globalThis.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n } return !GLOBAL_CORE_JS_PROMISE && (ENVIRONMENT === 'BROWSER' || ENVIRONMENT === 'DENO') && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\nmodule.exports = globalThis.Promise;\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","'use strict';\nvar Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n var tail = this.tail;\n if (tail) tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n var next = this.head = entry.next;\n if (next === null) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar regexpExec = require('../internals/regexp-exec');\n\nvar $TypeError = TypeError;\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (isCallable(exec)) {\n var result = call(exec, R, S);\n if (result !== null) anObject(result);\n return result;\n }\n if (classof(R) === 'RegExp') return call(regexpExec, R, S);\n throw new $TypeError('RegExp#exec called on incompatible receiver');\n};\n","'use strict';\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\nvar nativeExec = RegExp.prototype.exec;\nvar patchedExec = nativeExec;\nvar charAt = uncurryThis(''.charAt);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n call(nativeExec, re1, 'a');\n call(nativeExec, re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n patchedExec = function exec(string) {\n var re = this;\n var state = getInternalState(re);\n var str = toString(string);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = call(patchedExec, raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = call(regexpFlags, re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = replace(flags, 'y', '');\n if (indexOf(flags, 'g') === -1) {\n flags += 'g';\n }\n\n strCopy = stringSlice(str, re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = stringSlice(match.input, charsAdded);\n match[0] = stringSlice(match[0], charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/\n call(nativeReplace, match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\n }\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n ? call(regExpFlags, R) : flags;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = globalThis.RegExp;\n\nvar UNSUPPORTED_Y = fails(function () {\n var re = $RegExp('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') !== null;\n});\n\n// UC Browser bug\n// https://github.com/zloirock/core-js/issues/1008\nvar MISSED_STICKY = UNSUPPORTED_Y || fails(function () {\n return !$RegExp('a', 'y').sticky;\n});\n\nvar BROKEN_CARET = UNSUPPORTED_Y || fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = $RegExp('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') !== null;\n});\n\nmodule.exports = {\n BROKEN_CARET: BROKEN_CARET,\n MISSED_STICKY: MISSED_STICKY,\n UNSUPPORTED_Y: UNSUPPORTED_Y\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = globalThis.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('.', 's');\n return !(re.dotAll && re.test('\\n') && re.flags === 's');\n});\n","'use strict';\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?b)', 'g') -> /(?b)/g and it causes SyntaxError\nvar $RegExp = globalThis.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$c') !== 'bc';\n});\n","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar DESCRIPTORS = require('../internals/descriptors');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Avoid NodeJS experimental warning\nmodule.exports = function (name) {\n if (!DESCRIPTORS) return globalThis[name];\n var descriptor = getOwnPropertyDescriptor(globalThis, name);\n return descriptor && descriptor.value;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineBuiltInAccessor(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","'use strict';\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar globalThis = require('../internals/global-this');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});\n\n(store.versions || (store.versions = [])).push({\n version: '3.40.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2025 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.40.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\nvar store = require('../internals/shared-store');\n\nmodule.exports = function (key, value) {\n return store[key] || (store[key] = value || {});\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar ltrim = RegExp('^[' + whitespaces + ']+');\nvar rtrim = RegExp('(^|[^' + whitespaces + '])[' + whitespaces + ']+$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '$1');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/environment-v8-version');\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\nvar $String = globalThis.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/environment-is-ios');\nvar IS_NODE = require('../internals/environment-is-node');\n\nvar set = globalThis.setImmediate;\nvar clear = globalThis.clearImmediate;\nvar process = globalThis.process;\nvar Dispatch = globalThis.Dispatch;\nvar Function = globalThis.Function;\nvar MessageChannel = globalThis.MessageChannel;\nvar String = globalThis.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\n\nfails(function () {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n $location = globalThis.location;\n});\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar eventListener = function (event) {\n run(event.data);\n};\n\nvar globalPostMessageDefer = function (id) {\n // old engines have not location.origin\n globalThis.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = eventListener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n globalThis.addEventListener &&\n isCallable(globalThis.postMessage) &&\n !globalThis.importScripts &&\n $location && $location.protocol !== 'file:' &&\n !fails(globalPostMessageDefer)\n ) {\n defer = globalPostMessageDefer;\n globalThis.addEventListener('message', eventListener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","'use strict';\nvar trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n var len = toIntegerOrInfinity(argument);\n return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw new $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","'use strict';\nvar classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL &&\n !Symbol.sham &&\n typeof Symbol.iterator == 'symbol';\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype !== 42;\n});\n","'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw new $TypeError('Not enough arguments');\n return passed;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = globalThis.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = globalThis.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\n// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","'use strict';\n/* eslint-disable es/no-array-prototype-indexof -- required for testing */\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeIndexOf = uncurryThis([].indexOf);\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / nativeIndexOf([1], 1, -0) < 0;\nvar FORCED = NEGATIVE_ZERO || !arrayMethodIsStrict('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: FORCED }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n var fromIndex = arguments.length > 1 ? arguments[1] : undefined;\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf(this, searchElement, fromIndex) || 0\n : $indexOf(this, searchElement, fromIndex);\n }\n});\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = null;\n return createIterResultObject(undefined, true);\n }\n switch (state.kind) {\n case 'keys': return createIterResultObject(index, false);\n case 'values': return createIterResultObject(target[index], false);\n } return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/environment-v8-version');\nvar IS_NODE = require('../internals/environment-is-node');\n\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\nvar FORCED = CHROME_BUG || !arrayMethodIsStrict('reduce');\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: FORCED }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isArray = require('../internals/is-array');\n\nvar nativeReverse = uncurryThis([].reverse);\nvar test = [1, 2];\n\n// `Array.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-array.prototype.reverse\n// fix for Safari 12.0 bug\n// https://bugs.webkit.org/show_bug.cgi?id=188794\n$({ target: 'Array', proto: true, forced: String(test) === String(test.reverse()) }, {\n reverse: function reverse() {\n // eslint-disable-next-line no-self-assign -- dirty hack\n if (isArray(this)) this.length = this.length;\n return nativeReverse(this);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n if (NativePromisePrototype['catch'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/environment-is-node');\nvar globalThis = require('../internals/global-this');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = globalThis.TypeError;\nvar document = globalThis.document;\nvar process = globalThis.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && globalThis.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state === FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(new TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n globalThis.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = globalThis['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, globalThis, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, globalThis, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw new TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: null\n });\n };\n\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state === PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n// `Promise` constructor\n// https://tc39.es/ecma262/#sec-promise-executor\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.promise.constructor');\nrequire('../modules/es.promise.all');\nrequire('../modules/es.promise.catch');\nrequire('../modules/es.promise.race');\nrequire('../modules/es.promise.reject');\nrequire('../modules/es.promise.resolve');\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n var capabilityReject = capability.reject;\n capabilityReject(r);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar defineBuiltIn = require('../internals/define-built-in');\nvar anObject = require('../internals/an-object');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) !== '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name !== TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n defineBuiltIn(RegExpPrototype, TO_STRING, function toString() {\n var R = anObject(this);\n var pattern = $toString(R.source);\n var flags = $toString(getRegExpFlags(R));\n return '/' + pattern + '/' + flags;\n }, { unsafe: true });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar slice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = that.length;\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = toString(searchString);\n return slice(that, end - search.length, end) === search;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~stringIndexOf(\n toString(requireObjectCoercible(this)),\n toString(notARegExp(searchString)),\n arguments.length > 1 ? arguments[1] : undefined\n );\n }\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar getMethod = require('../internals/get-method');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.es/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, MATCH);\n return matcher ? call(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeMatch, rx, S);\n\n if (res.done) return res.value;\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = toString(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getMethod = require('../internals/get-method');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar max = Math.max;\nvar min = Math.min;\nvar concat = uncurryThis([].concat);\nvar push = uncurryThis([].push);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive\n return ''.replace(re, '$') !== '7';\n});\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = isNullOrUndefined(searchValue) ? undefined : getMethod(searchValue, REPLACE);\n return replacer\n ? call(replacer, searchValue, O, replaceValue)\n : call(nativeReplace, toString(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (string, replaceValue) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (\n typeof replaceValue == 'string' &&\n stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 &&\n stringIndexOf(replaceValue, '$<') === -1\n ) {\n var res = maybeCallNative(nativeReplace, rx, S, replaceValue);\n if (res.done) return res.value;\n }\n\n var functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n\n var global = rx.global;\n var fullUnicode;\n if (global) {\n fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n\n var results = [];\n var result;\n while (true) {\n result = regExpExec(rx, S);\n if (result === null) break;\n\n push(results, result);\n if (!global) break;\n\n var matchStr = toString(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = toString(result[0]);\n var position = max(min(toIntegerOrInfinity(result.index), S.length), 0);\n var captures = [];\n var replacement;\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = concat([matched], captures, position, S);\n if (namedCaptures !== undefined) push(replacerArgs, namedCaptures);\n replacement = toString(apply(replaceValue, undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n\n return accumulatedResult + stringSlice(S, nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","'use strict';\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar fails = require('../internals/fails');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar MAX_UINT32 = 0xFFFFFFFF;\nvar min = Math.min;\nvar push = uncurryThis([].push);\nvar stringSlice = uncurryThis(''.slice);\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\nvar BUGGY = 'abbc'.split(/(b)*/)[1] === 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length !== 4 ||\n 'ab'.split(/(?:ab)*/).length !== 2 ||\n '.'.split(/(.?)(.?)/).length !== 4 ||\n // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length;\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit = '0'.split(undefined, 0).length ? function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : call(nativeSplit, this, separator, limit);\n } : nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = isNullOrUndefined(separator) ? undefined : getMethod(separator, SPLIT);\n return splitter\n ? call(splitter, separator, O, limit)\n : call(internalSplit, toString(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (string, limit) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (!BUGGY) {\n var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n }\n\n var C = speciesConstructor(rx, RegExp);\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (UNSUPPORTED_Y ? 'g' : 'y');\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return regExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n var z = regExpExec(splitter, UNSUPPORTED_Y ? stringSlice(S, q) : S);\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n push(A, stringSlice(S, p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n push(A, z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n push(A, stringSlice(S, p));\n return A;\n }\n ];\n}, BUGGY || !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar stringSlice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = toString(searchString);\n return stringSlice(that, index, index + search.length) === search;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n setToStringTag(CollectionPrototype, COLLECTION_NAME, true);\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(globalThis[COLLECTION_NAME] && globalThis[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nexport { _asyncToGenerator as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\nvar t=function(r,e){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var e in r)Object.prototype.hasOwnProperty.call(r,e)&&(t[e]=r[e])})(r,e)};function r(r,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Class extends value \"+String(e)+\" is not a constructor or null\");function i(){this.constructor=r}t(r,e),r.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}function e(t){var r=\"\";Array.isArray(t)||(t=[t]);for(var e=0;et.phi1&&(t.phi2-=2*n),1===t.sweepFlag&&t.phi2i)return[];if(0===i)return[[t*e/(t*t+r*r),r*e/(t*t+r*r)]];var n=Math.sqrt(i);return[[(t*e+r*n)/(t*t+r*r),(r*e-t*n)/(t*t+r*r)],[(t*e-r*n)/(t*t+r*r),(r*e+t*n)/(t*t+r*r)]]}var u,h=Math.PI/180;function c(t,r,e){return(1-e)*t+e*r}function y(t,r,e,i){return t+Math.cos(i/180*n)*r+Math.sin(i/180*n)*e}function p(t,r,e,i){var a=1e-6,n=r-t,o=e-r,s=3*n+3*(i-e)-6*o,u=6*(o-n),h=3*n;return Math.abs(s)T&&(a.sweepFlag=+!a.sweepFlag),a}))}function l(){return function(t){var r={};for(var e in t)r[e]=t[e];return r}}t.ROUND=function(t){function r(r){return Math.round(r*t)/t}return void 0===t&&(t=1e13),a(t),function(t){return void 0!==t.x1&&(t.x1=r(t.x1)),void 0!==t.y1&&(t.y1=r(t.y1)),void 0!==t.x2&&(t.x2=r(t.x2)),void 0!==t.y2&&(t.y2=r(t.y2)),void 0!==t.x&&(t.x=r(t.x)),void 0!==t.y&&(t.y=r(t.y)),void 0!==t.rX&&(t.rX=r(t.rX)),void 0!==t.rY&&(t.rY=r(t.rY)),t}},t.TO_ABS=r,t.TO_REL=function(){return u((function(t,r,e){return t.relative||(void 0!==t.x1&&(t.x1-=r),void 0!==t.y1&&(t.y1-=e),void 0!==t.x2&&(t.x2-=r),void 0!==t.y2&&(t.y2-=e),void 0!==t.x&&(t.x-=r),void 0!==t.y&&(t.y-=e),t.relative=!0),t}))},t.NORMALIZE_HVZ=function(t,r,e){return void 0===t&&(t=!0),void 0===r&&(r=!0),void 0===e&&(e=!0),u((function(i,a,n,o,s){if(isNaN(o)&&!(i.type&_.MOVE_TO))throw new Error(\"path must start with moveto\");return r&&i.type&_.HORIZ_LINE_TO&&(i.type=_.LINE_TO,i.y=i.relative?0:n),e&&i.type&_.VERT_LINE_TO&&(i.type=_.LINE_TO,i.x=i.relative?0:a),t&&i.type&_.CLOSE_PATH&&(i.type=_.LINE_TO,i.x=i.relative?o-a:o,i.y=i.relative?s-n:s),i.type&_.ARC&&(0===i.rX||0===i.rY)&&(i.type=_.LINE_TO,delete i.rX,delete i.rY,delete i.xRot,delete i.lArcFlag,delete i.sweepFlag),i}))},t.NORMALIZE_ST=e,t.QT_TO_C=n,t.INFO=u,t.SANITIZE=function(t){void 0===t&&(t=0),a(t);var r=NaN,e=NaN,i=NaN,n=NaN;return u((function(a,o,s,u,h){var c=Math.abs,y=!1,p=0,m=0;if(a.type&_.SMOOTH_CURVE_TO&&(p=isNaN(r)?0:o-r,m=isNaN(e)?0:s-e),a.type&(_.CURVE_TO|_.SMOOTH_CURVE_TO)?(r=a.relative?o+a.x2:a.x2,e=a.relative?s+a.y2:a.y2):(r=NaN,e=NaN),a.type&_.SMOOTH_QUAD_TO?(i=isNaN(i)?o:2*o-i,n=isNaN(n)?s:2*s-n):a.type&_.QUAD_TO?(i=a.relative?o+a.x1:a.x1,n=a.relative?s+a.y1:a.y2):(i=NaN,n=NaN),a.type&_.LINE_COMMANDS||a.type&_.ARC&&(0===a.rX||0===a.rY||!a.lArcFlag)||a.type&_.CURVE_TO||a.type&_.SMOOTH_CURVE_TO||a.type&_.QUAD_TO||a.type&_.SMOOTH_QUAD_TO){var O=void 0===a.x?0:a.relative?a.x:a.x-o,l=void 0===a.y?0:a.relative?a.y:a.y-s;p=isNaN(i)?void 0===a.x1?p:a.relative?a.x:a.x1-o:i-o,m=isNaN(n)?void 0===a.y1?m:a.relative?a.y:a.y1-s:n-s;var T=void 0===a.x2?0:a.relative?a.x:a.x2-o,v=void 0===a.y2?0:a.relative?a.y:a.y2-s;c(O)<=t&&c(l)<=t&&c(p)<=t&&c(m)<=t&&c(T)<=t&&c(v)<=t&&(y=!0)}return a.type&_.CLOSE_PATH&&c(o-u)<=t&&c(s-h)<=t&&(y=!0),y?[]:a}))},t.MATRIX=O,t.ROTATE=function(t,r,e){void 0===r&&(r=0),void 0===e&&(e=0),a(t,r,e);var i=Math.sin(t),n=Math.cos(t);return O(n,i,-i,n,r-r*n+e*i,e-r*i-e*n)},t.TRANSLATE=function(t,r){return void 0===r&&(r=0),a(t,r),O(1,0,0,1,t,r)},t.SCALE=function(t,r){return void 0===r&&(r=t),a(t,r),O(t,0,0,r,0,0)},t.SKEW_X=function(t){return a(t),O(1,0,Math.atan(t),1,0,0)},t.SKEW_Y=function(t){return a(t),O(1,Math.atan(t),0,1,0,0)},t.X_AXIS_SYMMETRY=function(t){return void 0===t&&(t=0),a(t),O(-1,0,0,1,t,0)},t.Y_AXIS_SYMMETRY=function(t){return void 0===t&&(t=0),a(t),O(1,0,0,-1,0,t)},t.A_TO_C=function(){return u((function(t,r,e){return _.ARC===t.type?function(t,r,e){var a,n,s,u;t.cX||o(t,r,e);for(var y=Math.min(t.phi1,t.phi2),p=Math.max(t.phi1,t.phi2)-y,m=Math.ceil(p/90),O=new Array(m),l=r,T=e,v=0;vc.maxX&&(c.maxX=t),tc.maxY&&(c.maxY=t),tw&&O(m(e,u.x1,u.x2,u.x,w))}for(var f=0,N=p(n,u.y1,u.y2,u.y);fw&&l(m(n,u.y1,u.y2,u.y,w))}}if(u.type&_.ARC){O(u.x),l(u.y),o(u,e,n);for(var x=u.xRot/180*Math.PI,d=Math.cos(x)*u.rX,E=Math.sin(x)*u.rX,A=-Math.sin(x)*u.rY,C=Math.cos(x)*u.rY,M=u.phi1u.phi2?[u.phi2+360,u.phi1+360]:[u.phi2,u.phi1],R=M[0],g=M[1],I=function(t){var r=t[0],e=t[1],i=180*Math.atan2(e,r)/Math.PI;return iR&&wR&&wu)throw new SyntaxError('Expected positive number, got \"'+u+'\" at index \"'+a+'\"')}else if((3===this.curArgs.length||4===this.curArgs.length)&&\"0\"!==this.curNumber&&\"1\"!==this.curNumber)throw new SyntaxError('Expected a flag, got \"'+this.curNumber+'\" at index \"'+a+'\"');this.curArgs.push(u),this.curArgs.length===N[this.curCommandType]&&(_.HORIZ_LINE_TO===this.curCommandType?i({type:_.HORIZ_LINE_TO,relative:this.curCommandRelative,x:u}):_.VERT_LINE_TO===this.curCommandType?i({type:_.VERT_LINE_TO,relative:this.curCommandRelative,y:u}):this.curCommandType===_.MOVE_TO||this.curCommandType===_.LINE_TO||this.curCommandType===_.SMOOTH_QUAD_TO?(i({type:this.curCommandType,relative:this.curCommandRelative,x:this.curArgs[0],y:this.curArgs[1]}),_.MOVE_TO===this.curCommandType&&(this.curCommandType=_.LINE_TO)):this.curCommandType===_.CURVE_TO?i({type:_.CURVE_TO,relative:this.curCommandRelative,x1:this.curArgs[0],y1:this.curArgs[1],x2:this.curArgs[2],y2:this.curArgs[3],x:this.curArgs[4],y:this.curArgs[5]}):this.curCommandType===_.SMOOTH_CURVE_TO?i({type:_.SMOOTH_CURVE_TO,relative:this.curCommandRelative,x2:this.curArgs[0],y2:this.curArgs[1],x:this.curArgs[2],y:this.curArgs[3]}):this.curCommandType===_.QUAD_TO?i({type:_.QUAD_TO,relative:this.curCommandRelative,x1:this.curArgs[0],y1:this.curArgs[1],x:this.curArgs[2],y:this.curArgs[3]}):this.curCommandType===_.ARC&&i({type:_.ARC,relative:this.curCommandRelative,rX:this.curArgs[0],rY:this.curArgs[1],xRot:this.curArgs[2],lArcFlag:this.curArgs[3],sweepFlag:this.curArgs[4],x:this.curArgs[5],y:this.curArgs[6]})),this.curNumber=\"\",this.curNumberHasExpDigits=!1,this.curNumberHasExp=!1,this.curNumberHasDecimal=!1,this.canParseCommandOrComma=!0}if(!T(n))if(\",\"===n&&this.canParseCommandOrComma)this.canParseCommandOrComma=!1;else if(\"+\"!==n&&\"-\"!==n&&\".\"!==n)if(s)this.curNumber=n,this.curNumberHasDecimal=!1;else{if(0!==this.curArgs.length)throw new SyntaxError(\"Unterminated command at index \"+a+\".\");if(!this.canParseCommandOrComma)throw new SyntaxError('Unexpected character \"'+n+'\" at index '+a+\". Command cannot follow comma\");if(this.canParseCommandOrComma=!1,\"z\"!==n&&\"Z\"!==n)if(\"h\"===n||\"H\"===n)this.curCommandType=_.HORIZ_LINE_TO,this.curCommandRelative=\"h\"===n;else if(\"v\"===n||\"V\"===n)this.curCommandType=_.VERT_LINE_TO,this.curCommandRelative=\"v\"===n;else if(\"m\"===n||\"M\"===n)this.curCommandType=_.MOVE_TO,this.curCommandRelative=\"m\"===n;else if(\"l\"===n||\"L\"===n)this.curCommandType=_.LINE_TO,this.curCommandRelative=\"l\"===n;else if(\"c\"===n||\"C\"===n)this.curCommandType=_.CURVE_TO,this.curCommandRelative=\"c\"===n;else if(\"s\"===n||\"S\"===n)this.curCommandType=_.SMOOTH_CURVE_TO,this.curCommandRelative=\"s\"===n;else if(\"q\"===n||\"Q\"===n)this.curCommandType=_.QUAD_TO,this.curCommandRelative=\"q\"===n;else if(\"t\"===n||\"T\"===n)this.curCommandType=_.SMOOTH_QUAD_TO,this.curCommandRelative=\"t\"===n;else{if(\"a\"!==n&&\"A\"!==n)throw new SyntaxError('Unexpected character \"'+n+'\" at index '+a+\".\");this.curCommandType=_.ARC,this.curCommandRelative=\"a\"===n}else r.push({type:_.CLOSE_PATH}),this.canParseCommandOrComma=!0,this.curCommandType=-1}else this.curNumber=n,this.curNumberHasDecimal=\".\"===n}else this.curNumber+=n,this.curNumberHasDecimal=!0;else this.curNumber+=n;else this.curNumber+=n,this.curNumberHasExp=!0;else this.curNumber+=n,this.curNumberHasExpDigits=this.curNumberHasExp}return r},e.prototype.transform=function(t){return Object.create(this,{parse:{value:function(r,e){void 0===e&&(e=[]);for(var i=0,a=Object.getPrototypeOf(this).parse.call(this,r);i>> shgSum;\n pixels[yi + 3] = paInitial;\n\n if (paInitial !== 0) {\n var _a2 = 255 / paInitial;\n\n pixels[yi] = (rSum * mulSum >>> shgSum) * _a2;\n pixels[yi + 1] = (gSum * mulSum >>> shgSum) * _a2;\n pixels[yi + 2] = (bSum * mulSum >>> shgSum) * _a2;\n } else {\n pixels[yi] = pixels[yi + 1] = pixels[yi + 2] = 0;\n }\n\n rSum -= rOutSum;\n gSum -= gOutSum;\n bSum -= bOutSum;\n aSum -= aOutSum;\n rOutSum -= stackIn.r;\n gOutSum -= stackIn.g;\n bOutSum -= stackIn.b;\n aOutSum -= stackIn.a;\n\n var _p = x + radius + 1;\n\n _p = yw + (_p < widthMinus1 ? _p : widthMinus1) << 2;\n rInSum += stackIn.r = pixels[_p];\n gInSum += stackIn.g = pixels[_p + 1];\n bInSum += stackIn.b = pixels[_p + 2];\n aInSum += stackIn.a = pixels[_p + 3];\n rSum += rInSum;\n gSum += gInSum;\n bSum += bInSum;\n aSum += aInSum;\n stackIn = stackIn.next;\n var _stackOut = stackOut,\n _r = _stackOut.r,\n _g = _stackOut.g,\n _b = _stackOut.b,\n _a = _stackOut.a;\n rOutSum += _r;\n gOutSum += _g;\n bOutSum += _b;\n aOutSum += _a;\n rInSum -= _r;\n gInSum -= _g;\n bInSum -= _b;\n aInSum -= _a;\n stackOut = stackOut.next;\n yi += 4;\n }\n\n yw += width;\n }\n\n for (var _x = 0; _x < width; _x++) {\n yi = _x << 2;\n\n var _pr = pixels[yi],\n _pg = pixels[yi + 1],\n _pb = pixels[yi + 2],\n _pa = pixels[yi + 3],\n _rOutSum = radiusPlus1 * _pr,\n _gOutSum = radiusPlus1 * _pg,\n _bOutSum = radiusPlus1 * _pb,\n _aOutSum = radiusPlus1 * _pa,\n _rSum = sumFactor * _pr,\n _gSum = sumFactor * _pg,\n _bSum = sumFactor * _pb,\n _aSum = sumFactor * _pa;\n\n stack = stackStart;\n\n for (var _i3 = 0; _i3 < radiusPlus1; _i3++) {\n stack.r = _pr;\n stack.g = _pg;\n stack.b = _pb;\n stack.a = _pa;\n stack = stack.next;\n }\n\n var yp = width;\n var _gInSum = 0,\n _bInSum = 0,\n _aInSum = 0,\n _rInSum = 0;\n\n for (var _i4 = 1; _i4 <= radius; _i4++) {\n yi = yp + _x << 2;\n\n var _rbs = radiusPlus1 - _i4;\n\n _rSum += (stack.r = _pr = pixels[yi]) * _rbs;\n _gSum += (stack.g = _pg = pixels[yi + 1]) * _rbs;\n _bSum += (stack.b = _pb = pixels[yi + 2]) * _rbs;\n _aSum += (stack.a = _pa = pixels[yi + 3]) * _rbs;\n _rInSum += _pr;\n _gInSum += _pg;\n _bInSum += _pb;\n _aInSum += _pa;\n stack = stack.next;\n\n if (_i4 < heightMinus1) {\n yp += width;\n }\n }\n\n yi = _x;\n stackIn = stackStart;\n stackOut = stackEnd;\n\n for (var _y = 0; _y < height; _y++) {\n var _p2 = yi << 2;\n\n pixels[_p2 + 3] = _pa = _aSum * mulSum >>> shgSum;\n\n if (_pa > 0) {\n _pa = 255 / _pa;\n pixels[_p2] = (_rSum * mulSum >>> shgSum) * _pa;\n pixels[_p2 + 1] = (_gSum * mulSum >>> shgSum) * _pa;\n pixels[_p2 + 2] = (_bSum * mulSum >>> shgSum) * _pa;\n } else {\n pixels[_p2] = pixels[_p2 + 1] = pixels[_p2 + 2] = 0;\n }\n\n _rSum -= _rOutSum;\n _gSum -= _gOutSum;\n _bSum -= _bOutSum;\n _aSum -= _aOutSum;\n _rOutSum -= stackIn.r;\n _gOutSum -= stackIn.g;\n _bOutSum -= stackIn.b;\n _aOutSum -= stackIn.a;\n _p2 = _x + ((_p2 = _y + radiusPlus1) < heightMinus1 ? _p2 : heightMinus1) * width << 2;\n _rSum += _rInSum += stackIn.r = pixels[_p2];\n _gSum += _gInSum += stackIn.g = pixels[_p2 + 1];\n _bSum += _bInSum += stackIn.b = pixels[_p2 + 2];\n _aSum += _aInSum += stackIn.a = pixels[_p2 + 3];\n stackIn = stackIn.next;\n _rOutSum += _pr = stackOut.r;\n _gOutSum += _pg = stackOut.g;\n _bOutSum += _pb = stackOut.b;\n _aOutSum += _pa = stackOut.a;\n _rInSum -= _pr;\n _gInSum -= _pg;\n _bInSum -= _pb;\n _aInSum -= _pa;\n stackOut = stackOut.next;\n yi += width;\n }\n }\n\n return imageData;\n}\n/**\n * @param {HTMLCanvasElement} canvas\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {undefined}\n */\n\n\nfunction processCanvasRGB(canvas, topX, topY, width, height, radius) {\n if (isNaN(radius) || radius < 1) {\n return;\n }\n\n radius |= 0;\n var imageData = getImageDataFromCanvas(canvas, topX, topY, width, height);\n imageData = processImageDataRGB(imageData, topX, topY, width, height, radius);\n canvas.getContext('2d').putImageData(imageData, topX, topY);\n}\n/**\n * @param {ImageData} imageData\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {ImageData}\n */\n\n\nfunction processImageDataRGB(imageData, topX, topY, width, height, radius) {\n var pixels = imageData.data;\n var div = 2 * radius + 1; // const w4 = width << 2;\n\n var widthMinus1 = width - 1;\n var heightMinus1 = height - 1;\n var radiusPlus1 = radius + 1;\n var sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2;\n var stackStart = new BlurStack();\n var stack = stackStart;\n var stackEnd;\n\n for (var i = 1; i < div; i++) {\n stack = stack.next = new BlurStack();\n\n if (i === radiusPlus1) {\n stackEnd = stack;\n }\n }\n\n stack.next = stackStart;\n var stackIn = null;\n var stackOut = null;\n var mulSum = mulTable[radius];\n var shgSum = shgTable[radius];\n var p, rbs;\n var yw = 0,\n yi = 0;\n\n for (var y = 0; y < height; y++) {\n var pr = pixels[yi],\n pg = pixels[yi + 1],\n pb = pixels[yi + 2],\n rOutSum = radiusPlus1 * pr,\n gOutSum = radiusPlus1 * pg,\n bOutSum = radiusPlus1 * pb,\n rSum = sumFactor * pr,\n gSum = sumFactor * pg,\n bSum = sumFactor * pb;\n stack = stackStart;\n\n for (var _i5 = 0; _i5 < radiusPlus1; _i5++) {\n stack.r = pr;\n stack.g = pg;\n stack.b = pb;\n stack = stack.next;\n }\n\n var rInSum = 0,\n gInSum = 0,\n bInSum = 0;\n\n for (var _i6 = 1; _i6 < radiusPlus1; _i6++) {\n p = yi + ((widthMinus1 < _i6 ? widthMinus1 : _i6) << 2);\n rSum += (stack.r = pr = pixels[p]) * (rbs = radiusPlus1 - _i6);\n gSum += (stack.g = pg = pixels[p + 1]) * rbs;\n bSum += (stack.b = pb = pixels[p + 2]) * rbs;\n rInSum += pr;\n gInSum += pg;\n bInSum += pb;\n stack = stack.next;\n }\n\n stackIn = stackStart;\n stackOut = stackEnd;\n\n for (var x = 0; x < width; x++) {\n pixels[yi] = rSum * mulSum >>> shgSum;\n pixels[yi + 1] = gSum * mulSum >>> shgSum;\n pixels[yi + 2] = bSum * mulSum >>> shgSum;\n rSum -= rOutSum;\n gSum -= gOutSum;\n bSum -= bOutSum;\n rOutSum -= stackIn.r;\n gOutSum -= stackIn.g;\n bOutSum -= stackIn.b;\n p = yw + ((p = x + radius + 1) < widthMinus1 ? p : widthMinus1) << 2;\n rInSum += stackIn.r = pixels[p];\n gInSum += stackIn.g = pixels[p + 1];\n bInSum += stackIn.b = pixels[p + 2];\n rSum += rInSum;\n gSum += gInSum;\n bSum += bInSum;\n stackIn = stackIn.next;\n rOutSum += pr = stackOut.r;\n gOutSum += pg = stackOut.g;\n bOutSum += pb = stackOut.b;\n rInSum -= pr;\n gInSum -= pg;\n bInSum -= pb;\n stackOut = stackOut.next;\n yi += 4;\n }\n\n yw += width;\n }\n\n for (var _x2 = 0; _x2 < width; _x2++) {\n yi = _x2 << 2;\n\n var _pr2 = pixels[yi],\n _pg2 = pixels[yi + 1],\n _pb2 = pixels[yi + 2],\n _rOutSum2 = radiusPlus1 * _pr2,\n _gOutSum2 = radiusPlus1 * _pg2,\n _bOutSum2 = radiusPlus1 * _pb2,\n _rSum2 = sumFactor * _pr2,\n _gSum2 = sumFactor * _pg2,\n _bSum2 = sumFactor * _pb2;\n\n stack = stackStart;\n\n for (var _i7 = 0; _i7 < radiusPlus1; _i7++) {\n stack.r = _pr2;\n stack.g = _pg2;\n stack.b = _pb2;\n stack = stack.next;\n }\n\n var _rInSum2 = 0,\n _gInSum2 = 0,\n _bInSum2 = 0;\n\n for (var _i8 = 1, yp = width; _i8 <= radius; _i8++) {\n yi = yp + _x2 << 2;\n _rSum2 += (stack.r = _pr2 = pixels[yi]) * (rbs = radiusPlus1 - _i8);\n _gSum2 += (stack.g = _pg2 = pixels[yi + 1]) * rbs;\n _bSum2 += (stack.b = _pb2 = pixels[yi + 2]) * rbs;\n _rInSum2 += _pr2;\n _gInSum2 += _pg2;\n _bInSum2 += _pb2;\n stack = stack.next;\n\n if (_i8 < heightMinus1) {\n yp += width;\n }\n }\n\n yi = _x2;\n stackIn = stackStart;\n stackOut = stackEnd;\n\n for (var _y2 = 0; _y2 < height; _y2++) {\n p = yi << 2;\n pixels[p] = _rSum2 * mulSum >>> shgSum;\n pixels[p + 1] = _gSum2 * mulSum >>> shgSum;\n pixels[p + 2] = _bSum2 * mulSum >>> shgSum;\n _rSum2 -= _rOutSum2;\n _gSum2 -= _gOutSum2;\n _bSum2 -= _bOutSum2;\n _rOutSum2 -= stackIn.r;\n _gOutSum2 -= stackIn.g;\n _bOutSum2 -= stackIn.b;\n p = _x2 + ((p = _y2 + radiusPlus1) < heightMinus1 ? p : heightMinus1) * width << 2;\n _rSum2 += _rInSum2 += stackIn.r = pixels[p];\n _gSum2 += _gInSum2 += stackIn.g = pixels[p + 1];\n _bSum2 += _bInSum2 += stackIn.b = pixels[p + 2];\n stackIn = stackIn.next;\n _rOutSum2 += _pr2 = stackOut.r;\n _gOutSum2 += _pg2 = stackOut.g;\n _bOutSum2 += _pb2 = stackOut.b;\n _rInSum2 -= _pr2;\n _gInSum2 -= _pg2;\n _bInSum2 -= _pb2;\n stackOut = stackOut.next;\n yi += width;\n }\n }\n\n return imageData;\n}\n/**\n *\n */\n\n\nvar BlurStack =\n/**\n * Set properties.\n */\nfunction BlurStack() {\n _classCallCheck(this, BlurStack);\n\n this.r = 0;\n this.g = 0;\n this.b = 0;\n this.a = 0;\n this.next = null;\n};\n\nexport { BlurStack, processCanvasRGB as canvasRGB, processCanvasRGBA as canvasRGBA, processImage as image, processImageDataRGB as imageDataRGB, processImageDataRGBA as imageDataRGBA };\n","import 'core-js/modules/es.promise.js';\nimport _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';\nimport 'core-js/modules/es.string.match.js';\nimport 'core-js/modules/es.string.replace.js';\nimport 'core-js/modules/es.string.starts-with.js';\nimport 'core-js/modules/es.array.iterator.js';\nimport 'core-js/modules/web.dom-collections.iterator.js';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport 'core-js/modules/es.array.reduce.js';\nimport 'core-js/modules/es.string.ends-with.js';\nimport 'core-js/modules/es.string.split.js';\nimport requestAnimationFrame from 'raf';\nimport 'core-js/modules/es.string.trim.js';\nimport RGBColor from 'rgbcolor';\nimport 'core-js/modules/es.array.index-of.js';\nimport 'core-js/modules/es.string.includes.js';\nimport 'core-js/modules/es.array.reverse.js';\nimport { SVGPathData } from 'svg-pathdata';\nimport 'core-js/modules/es.regexp.to-string.js';\nimport { canvasRGBA } from 'stackblur-canvas';\n\n/**\r\n * Options preset for `OffscreenCanvas`.\r\n * @param config - Preset requirements.\r\n * @param config.DOMParser - XML/HTML parser from string into DOM Document.\r\n * @returns Preset object.\r\n */\nfunction offscreen() {\n var {\n DOMParser: DOMParserFallback\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var preset = {\n window: null,\n ignoreAnimation: true,\n ignoreMouse: true,\n DOMParser: DOMParserFallback,\n\n createCanvas(width, height) {\n return new OffscreenCanvas(width, height);\n },\n\n createImage(url) {\n return _asyncToGenerator(function* () {\n var response = yield fetch(url);\n var blob = yield response.blob();\n var img = yield createImageBitmap(blob);\n return img;\n })();\n }\n\n };\n\n if (typeof DOMParser !== 'undefined' || typeof DOMParserFallback === 'undefined') {\n Reflect.deleteProperty(preset, 'DOMParser');\n }\n\n return preset;\n}\n\n/**\r\n * Options preset for `node-canvas`.\r\n * @param config - Preset requirements.\r\n * @param config.DOMParser - XML/HTML parser from string into DOM Document.\r\n * @param config.canvas - `node-canvas` exports.\r\n * @param config.fetch - WHATWG-compatible `fetch` function.\r\n * @returns Preset object.\r\n */\nfunction node(_ref) {\n var {\n DOMParser,\n canvas,\n fetch\n } = _ref;\n return {\n window: null,\n ignoreAnimation: true,\n ignoreMouse: true,\n DOMParser,\n fetch,\n createCanvas: canvas.createCanvas,\n createImage: canvas.loadImage\n };\n}\n\nvar index = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\toffscreen: offscreen,\n\tnode: node\n});\n\n/**\r\n * HTML-safe compress white-spaces.\r\n * @param str - String to compress.\r\n * @returns String.\r\n */\nfunction compressSpaces(str) {\n return str.replace(/(?!\\u3000)\\s+/gm, ' ');\n}\n/**\r\n * HTML-safe left trim.\r\n * @param str - String to trim.\r\n * @returns String.\r\n */\n\nfunction trimLeft(str) {\n return str.replace(/^[\\n \\t]+/, '');\n}\n/**\r\n * HTML-safe right trim.\r\n * @param str - String to trim.\r\n * @returns String.\r\n */\n\nfunction trimRight(str) {\n return str.replace(/[\\n \\t]+$/, '');\n}\n/**\r\n * String to numbers array.\r\n * @param str - Numbers string.\r\n * @returns Numbers array.\r\n */\n\nfunction toNumbers(str) {\n var matches = (str || '').match(/-?(\\d+(?:\\.\\d*(?:[eE][+-]?\\d+)?)?|\\.\\d+)(?=\\D|$)/gm) || [];\n return matches.map(parseFloat);\n} // Microsoft Edge fix\n\nvar allUppercase = /^[A-Z-]+$/;\n/**\r\n * Normalize attribute name.\r\n * @param name - Attribute name.\r\n * @returns Normalized attribute name.\r\n */\n\nfunction normalizeAttributeName(name) {\n if (allUppercase.test(name)) {\n return name.toLowerCase();\n }\n\n return name;\n}\n/**\r\n * Parse external URL.\r\n * @param url - CSS url string.\r\n * @returns Parsed URL.\r\n */\n\nfunction parseExternalUrl(url) {\n // single quotes [2]\n // v double quotes [3]\n // v v no quotes [4]\n // v v v\n var urlMatch = /url\\(('([^']+)'|\"([^\"]+)\"|([^'\")]+))\\)/.exec(url) || [];\n return urlMatch[2] || urlMatch[3] || urlMatch[4];\n}\n/**\r\n * Transform floats to integers in rgb colors.\r\n * @param color - Color to normalize.\r\n * @returns Normalized color.\r\n */\n\nfunction normalizeColor(color) {\n if (!color.startsWith('rgb')) {\n return color;\n }\n\n var rgbParts = 3;\n var normalizedColor = color.replace(/\\d+(\\.\\d+)?/g, (num, isFloat) => rgbParts-- && isFloat ? String(Math.round(parseFloat(num))) : num);\n return normalizedColor;\n}\n\n// slightly modified version of https://github.com/keeganstreet/specificity/blob/master/specificity.js\nvar attributeRegex = /(\\[[^\\]]+\\])/g;\nvar idRegex = /(#[^\\s+>~.[:]+)/g;\nvar classRegex = /(\\.[^\\s+>~.[:]+)/g;\nvar pseudoElementRegex = /(::[^\\s+>~.[:]+|:first-line|:first-letter|:before|:after)/gi;\nvar pseudoClassWithBracketsRegex = /(:[\\w-]+\\([^)]*\\))/gi;\nvar pseudoClassRegex = /(:[^\\s+>~.[:]+)/g;\nvar elementRegex = /([^\\s+>~.[:]+)/g;\n\nfunction findSelectorMatch(selector, regex) {\n var matches = regex.exec(selector);\n\n if (!matches) {\n return [selector, 0];\n }\n\n return [selector.replace(regex, ' '), matches.length];\n}\n/**\r\n * Measure selector specificity.\r\n * @param selector - Selector to measure.\r\n * @returns Specificity.\r\n */\n\n\nfunction getSelectorSpecificity(selector) {\n var specificity = [0, 0, 0];\n var currentSelector = selector.replace(/:not\\(([^)]*)\\)/g, ' $1 ').replace(/{[\\s\\S]*/gm, ' ');\n var delta = 0;\n [currentSelector, delta] = findSelectorMatch(currentSelector, attributeRegex);\n specificity[1] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, idRegex);\n specificity[0] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, classRegex);\n specificity[1] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, pseudoElementRegex);\n specificity[2] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, pseudoClassWithBracketsRegex);\n specificity[1] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, pseudoClassRegex);\n specificity[1] += delta;\n currentSelector = currentSelector.replace(/[*\\s+>~]/g, ' ').replace(/[#.]/g, ' ');\n [currentSelector, delta] = findSelectorMatch(currentSelector, elementRegex); // lgtm [js/useless-assignment-to-local]\n\n specificity[2] += delta;\n return specificity.join('');\n}\n\nvar PSEUDO_ZERO = .00000001;\n/**\r\n * Vector magnitude.\r\n * @param v\r\n * @returns Number result.\r\n */\n\nfunction vectorMagnitude(v) {\n return Math.sqrt(Math.pow(v[0], 2) + Math.pow(v[1], 2));\n}\n/**\r\n * Ratio between two vectors.\r\n * @param u\r\n * @param v\r\n * @returns Number result.\r\n */\n\nfunction vectorsRatio(u, v) {\n return (u[0] * v[0] + u[1] * v[1]) / (vectorMagnitude(u) * vectorMagnitude(v));\n}\n/**\r\n * Angle between two vectors.\r\n * @param u\r\n * @param v\r\n * @returns Number result.\r\n */\n\nfunction vectorsAngle(u, v) {\n return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(vectorsRatio(u, v));\n}\nfunction CB1(t) {\n return t * t * t;\n}\nfunction CB2(t) {\n return 3 * t * t * (1 - t);\n}\nfunction CB3(t) {\n return 3 * t * (1 - t) * (1 - t);\n}\nfunction CB4(t) {\n return (1 - t) * (1 - t) * (1 - t);\n}\nfunction QB1(t) {\n return t * t;\n}\nfunction QB2(t) {\n return 2 * t * (1 - t);\n}\nfunction QB3(t) {\n return (1 - t) * (1 - t);\n}\n\nclass Property {\n constructor(document, name, value) {\n this.document = document;\n this.name = name;\n this.value = value;\n this.isNormalizedColor = false;\n }\n\n static empty(document) {\n return new Property(document, 'EMPTY', '');\n }\n\n split() {\n var separator = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ' ';\n var {\n document,\n name\n } = this;\n return compressSpaces(this.getString()).trim().split(separator).map(value => new Property(document, name, value));\n }\n\n hasValue(zeroIsValue) {\n var {\n value\n } = this;\n return value !== null && value !== '' && (zeroIsValue || value !== 0) && typeof value !== 'undefined';\n }\n\n isString(regexp) {\n var {\n value\n } = this;\n var result = typeof value === 'string';\n\n if (!result || !regexp) {\n return result;\n }\n\n return regexp.test(value);\n }\n\n isUrlDefinition() {\n return this.isString(/^url\\(/);\n }\n\n isPixels() {\n if (!this.hasValue()) {\n return false;\n }\n\n var asString = this.getString();\n\n switch (true) {\n case asString.endsWith('px'):\n case /^[0-9]+$/.test(asString):\n return true;\n\n default:\n return false;\n }\n }\n\n setValue(value) {\n this.value = value;\n return this;\n }\n\n getValue(def) {\n if (typeof def === 'undefined' || this.hasValue()) {\n return this.value;\n }\n\n return def;\n }\n\n getNumber(def) {\n if (!this.hasValue()) {\n if (typeof def === 'undefined') {\n return 0;\n }\n\n return parseFloat(def);\n }\n\n var {\n value\n } = this;\n var n = parseFloat(value);\n\n if (this.isString(/%$/)) {\n n /= 100.0;\n }\n\n return n;\n }\n\n getString(def) {\n if (typeof def === 'undefined' || this.hasValue()) {\n return typeof this.value === 'undefined' ? '' : String(this.value);\n }\n\n return String(def);\n }\n\n getColor(def) {\n var color = this.getString(def);\n\n if (this.isNormalizedColor) {\n return color;\n }\n\n this.isNormalizedColor = true;\n color = normalizeColor(color);\n this.value = color;\n return color;\n }\n\n getDpi() {\n return 96.0; // TODO: compute?\n }\n\n getRem() {\n return this.document.rootEmSize;\n }\n\n getEm() {\n return this.document.emSize;\n }\n\n getUnits() {\n return this.getString().replace(/[0-9.-]/g, '');\n }\n\n getPixels(axisOrIsFontSize) {\n var processPercent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!this.hasValue()) {\n return 0;\n }\n\n var [axis, isFontSize] = typeof axisOrIsFontSize === 'boolean' ? [undefined, axisOrIsFontSize] : [axisOrIsFontSize];\n var {\n viewPort\n } = this.document.screen;\n\n switch (true) {\n case this.isString(/vmin$/):\n return this.getNumber() / 100.0 * Math.min(viewPort.computeSize('x'), viewPort.computeSize('y'));\n\n case this.isString(/vmax$/):\n return this.getNumber() / 100.0 * Math.max(viewPort.computeSize('x'), viewPort.computeSize('y'));\n\n case this.isString(/vw$/):\n return this.getNumber() / 100.0 * viewPort.computeSize('x');\n\n case this.isString(/vh$/):\n return this.getNumber() / 100.0 * viewPort.computeSize('y');\n\n case this.isString(/rem$/):\n return this.getNumber() * this.getRem();\n\n case this.isString(/em$/):\n return this.getNumber() * this.getEm();\n\n case this.isString(/ex$/):\n return this.getNumber() * this.getEm() / 2.0;\n\n case this.isString(/px$/):\n return this.getNumber();\n\n case this.isString(/pt$/):\n return this.getNumber() * this.getDpi() * (1.0 / 72.0);\n\n case this.isString(/pc$/):\n return this.getNumber() * 15;\n\n case this.isString(/cm$/):\n return this.getNumber() * this.getDpi() / 2.54;\n\n case this.isString(/mm$/):\n return this.getNumber() * this.getDpi() / 25.4;\n\n case this.isString(/in$/):\n return this.getNumber() * this.getDpi();\n\n case this.isString(/%$/) && isFontSize:\n return this.getNumber() * this.getEm();\n\n case this.isString(/%$/):\n return this.getNumber() * viewPort.computeSize(axis);\n\n default:\n {\n var n = this.getNumber();\n\n if (processPercent && n < 1.0) {\n return n * viewPort.computeSize(axis);\n }\n\n return n;\n }\n }\n }\n\n getMilliseconds() {\n if (!this.hasValue()) {\n return 0;\n }\n\n if (this.isString(/ms$/)) {\n return this.getNumber();\n }\n\n return this.getNumber() * 1000;\n }\n\n getRadians() {\n if (!this.hasValue()) {\n return 0;\n }\n\n switch (true) {\n case this.isString(/deg$/):\n return this.getNumber() * (Math.PI / 180.0);\n\n case this.isString(/grad$/):\n return this.getNumber() * (Math.PI / 200.0);\n\n case this.isString(/rad$/):\n return this.getNumber();\n\n default:\n return this.getNumber() * (Math.PI / 180.0);\n }\n }\n\n getDefinition() {\n var asString = this.getString();\n var name = /#([^)'\"]+)/.exec(asString);\n\n if (name) {\n name = name[1];\n }\n\n if (!name) {\n name = asString;\n }\n\n return this.document.definitions[name];\n }\n\n getFillStyleDefinition(element, opacity) {\n var def = this.getDefinition();\n\n if (!def) {\n return null;\n } // gradient\n\n\n if (typeof def.createGradient === 'function') {\n return def.createGradient(this.document.ctx, element, opacity);\n } // pattern\n\n\n if (typeof def.createPattern === 'function') {\n if (def.getHrefAttribute().hasValue()) {\n var patternTransform = def.getAttribute('patternTransform');\n def = def.getHrefAttribute().getDefinition();\n\n if (patternTransform.hasValue()) {\n def.getAttribute('patternTransform', true).setValue(patternTransform.value);\n }\n }\n\n return def.createPattern(this.document.ctx, element, opacity);\n }\n\n return null;\n }\n\n getTextBaseline() {\n if (!this.hasValue()) {\n return null;\n }\n\n return Property.textBaselineMapping[this.getString()];\n }\n\n addOpacity(opacity) {\n var value = this.getColor();\n var len = value.length;\n var commas = 0; // Simulate old RGBColor version, which can't parse rgba.\n\n for (var i = 0; i < len; i++) {\n if (value[i] === ',') {\n commas++;\n }\n\n if (commas === 3) {\n break;\n }\n }\n\n if (opacity.hasValue() && this.isString() && commas !== 3) {\n var color = new RGBColor(value);\n\n if (color.ok) {\n color.alpha = opacity.getNumber();\n value = color.toRGBA();\n }\n }\n\n return new Property(this.document, this.name, value);\n }\n\n}\nProperty.textBaselineMapping = {\n 'baseline': 'alphabetic',\n 'before-edge': 'top',\n 'text-before-edge': 'top',\n 'middle': 'middle',\n 'central': 'middle',\n 'after-edge': 'bottom',\n 'text-after-edge': 'bottom',\n 'ideographic': 'ideographic',\n 'alphabetic': 'alphabetic',\n 'hanging': 'hanging',\n 'mathematical': 'alphabetic'\n};\n\nclass ViewPort {\n constructor() {\n this.viewPorts = [];\n }\n\n clear() {\n this.viewPorts = [];\n }\n\n setCurrent(width, height) {\n this.viewPorts.push({\n width,\n height\n });\n }\n\n removeCurrent() {\n this.viewPorts.pop();\n }\n\n getCurrent() {\n var {\n viewPorts\n } = this;\n return viewPorts[viewPorts.length - 1];\n }\n\n get width() {\n return this.getCurrent().width;\n }\n\n get height() {\n return this.getCurrent().height;\n }\n\n computeSize(d) {\n if (typeof d === 'number') {\n return d;\n }\n\n if (d === 'x') {\n return this.width;\n }\n\n if (d === 'y') {\n return this.height;\n }\n\n return Math.sqrt(Math.pow(this.width, 2) + Math.pow(this.height, 2)) / Math.sqrt(2);\n }\n\n}\n\nclass Point {\n constructor(x, y) {\n this.x = x;\n this.y = y;\n }\n\n static parse(point) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var [x = defaultValue, y = defaultValue] = toNumbers(point);\n return new Point(x, y);\n }\n\n static parseScale(scale) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var [x = defaultValue, y = x] = toNumbers(scale);\n return new Point(x, y);\n }\n\n static parsePath(path) {\n var points = toNumbers(path);\n var len = points.length;\n var pathPoints = [];\n\n for (var i = 0; i < len; i += 2) {\n pathPoints.push(new Point(points[i], points[i + 1]));\n }\n\n return pathPoints;\n }\n\n angleTo(point) {\n return Math.atan2(point.y - this.y, point.x - this.x);\n }\n\n applyTransform(transform) {\n var {\n x,\n y\n } = this;\n var xp = x * transform[0] + y * transform[2] + transform[4];\n var yp = x * transform[1] + y * transform[3] + transform[5];\n this.x = xp;\n this.y = yp;\n }\n\n}\n\nclass Mouse {\n constructor(screen) {\n this.screen = screen;\n this.working = false;\n this.events = [];\n this.eventElements = []; // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\n this.onClick = this.onClick.bind(this); // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\n this.onMouseMove = this.onMouseMove.bind(this);\n }\n\n isWorking() {\n return this.working;\n }\n\n start() {\n if (this.working) {\n return;\n }\n\n var {\n screen,\n onClick,\n onMouseMove\n } = this;\n var canvas = screen.ctx.canvas;\n canvas.onclick = onClick;\n canvas.onmousemove = onMouseMove;\n this.working = true;\n }\n\n stop() {\n if (!this.working) {\n return;\n }\n\n var canvas = this.screen.ctx.canvas;\n this.working = false;\n canvas.onclick = null;\n canvas.onmousemove = null;\n }\n\n hasEvents() {\n return this.working && this.events.length > 0;\n }\n\n runEvents() {\n if (!this.working) {\n return;\n }\n\n var {\n screen: document,\n events,\n eventElements\n } = this;\n var {\n style\n } = document.ctx.canvas;\n\n if (style) {\n style.cursor = '';\n }\n\n events.forEach((_ref, i) => {\n var {\n run\n } = _ref;\n var element = eventElements[i];\n\n while (element) {\n run(element);\n element = element.parent;\n }\n }); // done running, clear\n\n this.events = [];\n this.eventElements = [];\n }\n\n checkPath(element, ctx) {\n if (!this.working || !ctx) {\n return;\n }\n\n var {\n events,\n eventElements\n } = this;\n events.forEach((_ref2, i) => {\n var {\n x,\n y\n } = _ref2;\n\n if (!eventElements[i] && ctx.isPointInPath && ctx.isPointInPath(x, y)) {\n eventElements[i] = element;\n }\n });\n }\n\n checkBoundingBox(element, boundingBox) {\n if (!this.working || !boundingBox) {\n return;\n }\n\n var {\n events,\n eventElements\n } = this;\n events.forEach((_ref3, i) => {\n var {\n x,\n y\n } = _ref3;\n\n if (!eventElements[i] && boundingBox.isPointInBox(x, y)) {\n eventElements[i] = element;\n }\n });\n }\n\n mapXY(x, y) {\n var {\n window,\n ctx\n } = this.screen;\n var point = new Point(x, y);\n var element = ctx.canvas;\n\n while (element) {\n point.x -= element.offsetLeft;\n point.y -= element.offsetTop;\n element = element.offsetParent;\n }\n\n if (window.scrollX) {\n point.x += window.scrollX;\n }\n\n if (window.scrollY) {\n point.y += window.scrollY;\n }\n\n return point;\n }\n\n onClick(event) {\n var {\n x,\n y\n } = this.mapXY(event.clientX, event.clientY);\n this.events.push({\n type: 'onclick',\n x,\n y,\n\n run(eventTarget) {\n if (eventTarget.onClick) {\n eventTarget.onClick();\n }\n }\n\n });\n }\n\n onMouseMove(event) {\n var {\n x,\n y\n } = this.mapXY(event.clientX, event.clientY);\n this.events.push({\n type: 'onmousemove',\n x,\n y,\n\n run(eventTarget) {\n if (eventTarget.onMouseMove) {\n eventTarget.onMouseMove();\n }\n }\n\n });\n }\n\n}\n\nvar defaultWindow = typeof window !== 'undefined' ? window : null;\nvar defaultFetch$1 = typeof fetch !== 'undefined' ? fetch.bind(undefined) // `fetch` depends on context: `someObject.fetch(...)` will throw error.\n: null;\nclass Screen {\n constructor(ctx) {\n var {\n fetch = defaultFetch$1,\n window = defaultWindow\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.ctx = ctx;\n this.FRAMERATE = 30;\n this.MAX_VIRTUAL_PIXELS = 30000;\n this.CLIENT_WIDTH = 800;\n this.CLIENT_HEIGHT = 600;\n this.viewPort = new ViewPort();\n this.mouse = new Mouse(this);\n this.animations = [];\n this.waits = [];\n this.frameDuration = 0;\n this.isReadyLock = false;\n this.isFirstRender = true;\n this.intervalId = null;\n this.window = window;\n this.fetch = fetch;\n }\n\n wait(checker) {\n this.waits.push(checker);\n }\n\n ready() {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n if (!this.readyPromise) {\n return Promise.resolve();\n }\n\n return this.readyPromise;\n }\n\n isReady() {\n if (this.isReadyLock) {\n return true;\n }\n\n var isReadyLock = this.waits.every(_ => _());\n\n if (isReadyLock) {\n this.waits = [];\n\n if (this.resolveReady) {\n this.resolveReady();\n }\n }\n\n this.isReadyLock = isReadyLock;\n return isReadyLock;\n }\n\n setDefaults(ctx) {\n // initial values and defaults\n ctx.strokeStyle = 'rgba(0,0,0,0)';\n ctx.lineCap = 'butt';\n ctx.lineJoin = 'miter';\n ctx.miterLimit = 4;\n }\n\n setViewBox(_ref) {\n var {\n document,\n ctx,\n aspectRatio,\n width,\n desiredWidth,\n height,\n desiredHeight,\n minX = 0,\n minY = 0,\n refX,\n refY,\n clip = false,\n clipX = 0,\n clipY = 0\n } = _ref;\n // aspect ratio - http://www.w3.org/TR/SVG/coords.html#PreserveAspectRatioAttribute\n var cleanAspectRatio = compressSpaces(aspectRatio).replace(/^defer\\s/, ''); // ignore defer\n\n var [aspectRatioAlign, aspectRatioMeetOrSlice] = cleanAspectRatio.split(' ');\n var align = aspectRatioAlign || 'xMidYMid';\n var meetOrSlice = aspectRatioMeetOrSlice || 'meet'; // calculate scale\n\n var scaleX = width / desiredWidth;\n var scaleY = height / desiredHeight;\n var scaleMin = Math.min(scaleX, scaleY);\n var scaleMax = Math.max(scaleX, scaleY);\n var finalDesiredWidth = desiredWidth;\n var finalDesiredHeight = desiredHeight;\n\n if (meetOrSlice === 'meet') {\n finalDesiredWidth *= scaleMin;\n finalDesiredHeight *= scaleMin;\n }\n\n if (meetOrSlice === 'slice') {\n finalDesiredWidth *= scaleMax;\n finalDesiredHeight *= scaleMax;\n }\n\n var refXProp = new Property(document, 'refX', refX);\n var refYProp = new Property(document, 'refY', refY);\n var hasRefs = refXProp.hasValue() && refYProp.hasValue();\n\n if (hasRefs) {\n ctx.translate(-scaleMin * refXProp.getPixels('x'), -scaleMin * refYProp.getPixels('y'));\n }\n\n if (clip) {\n var scaledClipX = scaleMin * clipX;\n var scaledClipY = scaleMin * clipY;\n ctx.beginPath();\n ctx.moveTo(scaledClipX, scaledClipY);\n ctx.lineTo(width, scaledClipY);\n ctx.lineTo(width, height);\n ctx.lineTo(scaledClipX, height);\n ctx.closePath();\n ctx.clip();\n }\n\n if (!hasRefs) {\n var isMeetMinY = meetOrSlice === 'meet' && scaleMin === scaleY;\n var isSliceMaxY = meetOrSlice === 'slice' && scaleMax === scaleY;\n var isMeetMinX = meetOrSlice === 'meet' && scaleMin === scaleX;\n var isSliceMaxX = meetOrSlice === 'slice' && scaleMax === scaleX;\n\n if (align.startsWith('xMid') && (isMeetMinY || isSliceMaxY)) {\n ctx.translate(width / 2.0 - finalDesiredWidth / 2.0, 0);\n }\n\n if (align.endsWith('YMid') && (isMeetMinX || isSliceMaxX)) {\n ctx.translate(0, height / 2.0 - finalDesiredHeight / 2.0);\n }\n\n if (align.startsWith('xMax') && (isMeetMinY || isSliceMaxY)) {\n ctx.translate(width - finalDesiredWidth, 0);\n }\n\n if (align.endsWith('YMax') && (isMeetMinX || isSliceMaxX)) {\n ctx.translate(0, height - finalDesiredHeight);\n }\n } // scale\n\n\n switch (true) {\n case align === 'none':\n ctx.scale(scaleX, scaleY);\n break;\n\n case meetOrSlice === 'meet':\n ctx.scale(scaleMin, scaleMin);\n break;\n\n case meetOrSlice === 'slice':\n ctx.scale(scaleMax, scaleMax);\n break;\n } // translate\n\n\n ctx.translate(-minX, -minY);\n }\n\n start(element) {\n var {\n enableRedraw = false,\n ignoreMouse = false,\n ignoreAnimation = false,\n ignoreDimensions = false,\n ignoreClear = false,\n forceRedraw,\n scaleWidth,\n scaleHeight,\n offsetX,\n offsetY\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n FRAMERATE,\n mouse\n } = this;\n var frameDuration = 1000 / FRAMERATE;\n this.frameDuration = frameDuration;\n this.readyPromise = new Promise(resolve => {\n this.resolveReady = resolve;\n });\n\n if (this.isReady()) {\n this.render(element, ignoreDimensions, ignoreClear, scaleWidth, scaleHeight, offsetX, offsetY);\n }\n\n if (!enableRedraw) {\n return;\n }\n\n var now = Date.now();\n var then = now;\n var delta = 0;\n\n var tick = () => {\n now = Date.now();\n delta = now - then;\n\n if (delta >= frameDuration) {\n then = now - delta % frameDuration;\n\n if (this.shouldUpdate(ignoreAnimation, forceRedraw)) {\n this.render(element, ignoreDimensions, ignoreClear, scaleWidth, scaleHeight, offsetX, offsetY);\n mouse.runEvents();\n }\n }\n\n this.intervalId = requestAnimationFrame(tick);\n };\n\n if (!ignoreMouse) {\n mouse.start();\n }\n\n this.intervalId = requestAnimationFrame(tick);\n }\n\n stop() {\n if (this.intervalId) {\n requestAnimationFrame.cancel(this.intervalId);\n this.intervalId = null;\n }\n\n this.mouse.stop();\n }\n\n shouldUpdate(ignoreAnimation, forceRedraw) {\n // need update from animations?\n if (!ignoreAnimation) {\n var {\n frameDuration\n } = this;\n var shouldUpdate = this.animations.reduce((shouldUpdate, animation) => animation.update(frameDuration) || shouldUpdate, false);\n\n if (shouldUpdate) {\n return true;\n }\n } // need update from redraw?\n\n\n if (typeof forceRedraw === 'function' && forceRedraw()) {\n return true;\n }\n\n if (!this.isReadyLock && this.isReady()) {\n return true;\n } // need update from mouse events?\n\n\n if (this.mouse.hasEvents()) {\n return true;\n }\n\n return false;\n }\n\n render(element, ignoreDimensions, ignoreClear, scaleWidth, scaleHeight, offsetX, offsetY) {\n var {\n CLIENT_WIDTH,\n CLIENT_HEIGHT,\n viewPort,\n ctx,\n isFirstRender\n } = this;\n var canvas = ctx.canvas;\n viewPort.clear();\n\n if (canvas.width && canvas.height) {\n viewPort.setCurrent(canvas.width, canvas.height);\n } else {\n viewPort.setCurrent(CLIENT_WIDTH, CLIENT_HEIGHT);\n }\n\n var widthStyle = element.getStyle('width');\n var heightStyle = element.getStyle('height');\n\n if (!ignoreDimensions && (isFirstRender || typeof scaleWidth !== 'number' && typeof scaleHeight !== 'number')) {\n // set canvas size\n if (widthStyle.hasValue()) {\n canvas.width = widthStyle.getPixels('x');\n\n if (canvas.style) {\n canvas.style.width = \"\".concat(canvas.width, \"px\");\n }\n }\n\n if (heightStyle.hasValue()) {\n canvas.height = heightStyle.getPixels('y');\n\n if (canvas.style) {\n canvas.style.height = \"\".concat(canvas.height, \"px\");\n }\n }\n }\n\n var cWidth = canvas.clientWidth || canvas.width;\n var cHeight = canvas.clientHeight || canvas.height;\n\n if (ignoreDimensions && widthStyle.hasValue() && heightStyle.hasValue()) {\n cWidth = widthStyle.getPixels('x');\n cHeight = heightStyle.getPixels('y');\n }\n\n viewPort.setCurrent(cWidth, cHeight);\n\n if (typeof offsetX === 'number') {\n element.getAttribute('x', true).setValue(offsetX);\n }\n\n if (typeof offsetY === 'number') {\n element.getAttribute('y', true).setValue(offsetY);\n }\n\n if (typeof scaleWidth === 'number' || typeof scaleHeight === 'number') {\n var viewBox = toNumbers(element.getAttribute('viewBox').getString());\n var xRatio = 0;\n var yRatio = 0;\n\n if (typeof scaleWidth === 'number') {\n var _widthStyle = element.getStyle('width');\n\n if (_widthStyle.hasValue()) {\n xRatio = _widthStyle.getPixels('x') / scaleWidth;\n } else if (!isNaN(viewBox[2])) {\n xRatio = viewBox[2] / scaleWidth;\n }\n }\n\n if (typeof scaleHeight === 'number') {\n var _heightStyle = element.getStyle('height');\n\n if (_heightStyle.hasValue()) {\n yRatio = _heightStyle.getPixels('y') / scaleHeight;\n } else if (!isNaN(viewBox[3])) {\n yRatio = viewBox[3] / scaleHeight;\n }\n }\n\n if (!xRatio) {\n xRatio = yRatio;\n }\n\n if (!yRatio) {\n yRatio = xRatio;\n }\n\n element.getAttribute('width', true).setValue(scaleWidth);\n element.getAttribute('height', true).setValue(scaleHeight);\n var transformStyle = element.getStyle('transform', true, true);\n transformStyle.setValue(\"\".concat(transformStyle.getString(), \" scale(\").concat(1.0 / xRatio, \", \").concat(1.0 / yRatio, \")\"));\n } // clear and render\n\n\n if (!ignoreClear) {\n ctx.clearRect(0, 0, cWidth, cHeight);\n }\n\n element.render(ctx);\n\n if (isFirstRender) {\n this.isFirstRender = false;\n }\n }\n\n}\nScreen.defaultWindow = defaultWindow;\nScreen.defaultFetch = defaultFetch$1;\n\nvar {\n defaultFetch\n} = Screen;\nvar DefaultDOMParser = typeof DOMParser !== 'undefined' ? DOMParser : null;\nclass Parser {\n constructor() {\n var {\n fetch = defaultFetch,\n DOMParser = DefaultDOMParser\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.fetch = fetch;\n this.DOMParser = DOMParser;\n }\n\n parse(resource) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n if (resource.startsWith('<')) {\n return _this.parseFromString(resource);\n }\n\n return _this.load(resource);\n })();\n }\n\n parseFromString(xml) {\n var parser = new this.DOMParser();\n\n try {\n return this.checkDocument(parser.parseFromString(xml, 'image/svg+xml'));\n } catch (err) {\n return this.checkDocument(parser.parseFromString(xml, 'text/xml'));\n }\n }\n\n checkDocument(document) {\n var parserError = document.getElementsByTagName('parsererror')[0];\n\n if (parserError) {\n throw new Error(parserError.textContent);\n }\n\n return document;\n }\n\n load(url) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var response = yield _this2.fetch(url);\n var xml = yield response.text();\n return _this2.parseFromString(xml);\n })();\n }\n\n}\n\nclass Translate {\n constructor(_, point) {\n this.type = 'translate';\n this.point = null;\n this.point = Point.parse(point);\n }\n\n apply(ctx) {\n var {\n x,\n y\n } = this.point;\n ctx.translate(x || 0.0, y || 0.0);\n }\n\n unapply(ctx) {\n var {\n x,\n y\n } = this.point;\n ctx.translate(-1.0 * x || 0.0, -1.0 * y || 0.0);\n }\n\n applyToPoint(point) {\n var {\n x,\n y\n } = this.point;\n point.applyTransform([1, 0, 0, 1, x || 0.0, y || 0.0]);\n }\n\n}\n\nclass Rotate {\n constructor(document, rotate, transformOrigin) {\n this.type = 'rotate';\n this.angle = null;\n this.originX = null;\n this.originY = null;\n this.cx = 0;\n this.cy = 0;\n var numbers = toNumbers(rotate);\n this.angle = new Property(document, 'angle', numbers[0]);\n this.originX = transformOrigin[0];\n this.originY = transformOrigin[1];\n this.cx = numbers[1] || 0;\n this.cy = numbers[2] || 0;\n }\n\n apply(ctx) {\n var {\n cx,\n cy,\n originX,\n originY,\n angle\n } = this;\n var tx = cx + originX.getPixels('x');\n var ty = cy + originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.rotate(angle.getRadians());\n ctx.translate(-tx, -ty);\n }\n\n unapply(ctx) {\n var {\n cx,\n cy,\n originX,\n originY,\n angle\n } = this;\n var tx = cx + originX.getPixels('x');\n var ty = cy + originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.rotate(-1.0 * angle.getRadians());\n ctx.translate(-tx, -ty);\n }\n\n applyToPoint(point) {\n var {\n cx,\n cy,\n angle\n } = this;\n var rad = angle.getRadians();\n point.applyTransform([1, 0, 0, 1, cx || 0.0, cy || 0.0 // this.p.y\n ]);\n point.applyTransform([Math.cos(rad), Math.sin(rad), -Math.sin(rad), Math.cos(rad), 0, 0]);\n point.applyTransform([1, 0, 0, 1, -cx || 0.0, -cy || 0.0 // -this.p.y\n ]);\n }\n\n}\n\nclass Scale {\n constructor(_, scale, transformOrigin) {\n this.type = 'scale';\n this.scale = null;\n this.originX = null;\n this.originY = null;\n var scaleSize = Point.parseScale(scale); // Workaround for node-canvas\n\n if (scaleSize.x === 0 || scaleSize.y === 0) {\n scaleSize.x = PSEUDO_ZERO;\n scaleSize.y = PSEUDO_ZERO;\n }\n\n this.scale = scaleSize;\n this.originX = transformOrigin[0];\n this.originY = transformOrigin[1];\n }\n\n apply(ctx) {\n var {\n scale: {\n x,\n y\n },\n originX,\n originY\n } = this;\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.scale(x, y || x);\n ctx.translate(-tx, -ty);\n }\n\n unapply(ctx) {\n var {\n scale: {\n x,\n y\n },\n originX,\n originY\n } = this;\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.scale(1.0 / x, 1.0 / y || x);\n ctx.translate(-tx, -ty);\n }\n\n applyToPoint(point) {\n var {\n x,\n y\n } = this.scale;\n point.applyTransform([x || 0.0, 0, 0, y || 0.0, 0, 0]);\n }\n\n}\n\nclass Matrix {\n constructor(_, matrix, transformOrigin) {\n this.type = 'matrix';\n this.matrix = [];\n this.originX = null;\n this.originY = null;\n this.matrix = toNumbers(matrix);\n this.originX = transformOrigin[0];\n this.originY = transformOrigin[1];\n }\n\n apply(ctx) {\n var {\n originX,\n originY,\n matrix\n } = this;\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);\n ctx.translate(-tx, -ty);\n }\n\n unapply(ctx) {\n var {\n originX,\n originY,\n matrix\n } = this;\n var a = matrix[0];\n var b = matrix[2];\n var c = matrix[4];\n var d = matrix[1];\n var e = matrix[3];\n var f = matrix[5];\n var g = 0.0;\n var h = 0.0;\n var i = 1.0;\n var det = 1 / (a * (e * i - f * h) - b * (d * i - f * g) + c * (d * h - e * g));\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.transform(det * (e * i - f * h), det * (f * g - d * i), det * (c * h - b * i), det * (a * i - c * g), det * (b * f - c * e), det * (c * d - a * f));\n ctx.translate(-tx, -ty);\n }\n\n applyToPoint(point) {\n point.applyTransform(this.matrix);\n }\n\n}\n\nclass Skew extends Matrix {\n constructor(document, skew, transformOrigin) {\n super(document, skew, transformOrigin);\n this.type = 'skew';\n this.angle = null;\n this.angle = new Property(document, 'angle', skew);\n }\n\n}\n\nclass SkewX extends Skew {\n constructor(document, skew, transformOrigin) {\n super(document, skew, transformOrigin);\n this.type = 'skewX';\n this.matrix = [1, 0, Math.tan(this.angle.getRadians()), 1, 0, 0];\n }\n\n}\n\nclass SkewY extends Skew {\n constructor(document, skew, transformOrigin) {\n super(document, skew, transformOrigin);\n this.type = 'skewY';\n this.matrix = [1, Math.tan(this.angle.getRadians()), 0, 1, 0, 0];\n }\n\n}\n\nfunction parseTransforms(transform) {\n return compressSpaces(transform).trim().replace(/\\)([a-zA-Z])/g, ') $1').replace(/\\)(\\s?,\\s?)/g, ') ').split(/\\s(?=[a-z])/);\n}\n\nfunction parseTransform(transform) {\n var [type, value] = transform.split('(');\n return [type.trim(), value.trim().replace(')', '')];\n}\n\nclass Transform {\n constructor(document, transform, transformOrigin) {\n this.document = document;\n this.transforms = [];\n var data = parseTransforms(transform);\n data.forEach(transform => {\n if (transform === 'none') {\n return;\n }\n\n var [type, value] = parseTransform(transform);\n var TransformType = Transform.transformTypes[type];\n\n if (typeof TransformType !== 'undefined') {\n this.transforms.push(new TransformType(this.document, value, transformOrigin));\n }\n });\n }\n\n static fromElement(document, element) {\n var transformStyle = element.getStyle('transform', false, true);\n var [transformOriginXProperty, transformOriginYProperty = transformOriginXProperty] = element.getStyle('transform-origin', false, true).split();\n var transformOrigin = [transformOriginXProperty, transformOriginYProperty];\n\n if (transformStyle.hasValue()) {\n return new Transform(document, transformStyle.getString(), transformOrigin);\n }\n\n return null;\n }\n\n apply(ctx) {\n var {\n transforms\n } = this;\n var len = transforms.length;\n\n for (var i = 0; i < len; i++) {\n transforms[i].apply(ctx);\n }\n }\n\n unapply(ctx) {\n var {\n transforms\n } = this;\n var len = transforms.length;\n\n for (var i = len - 1; i >= 0; i--) {\n transforms[i].unapply(ctx);\n }\n } // TODO: applyToPoint unused ... remove?\n\n\n applyToPoint(point) {\n var {\n transforms\n } = this;\n var len = transforms.length;\n\n for (var i = 0; i < len; i++) {\n transforms[i].applyToPoint(point);\n }\n }\n\n}\nTransform.transformTypes = {\n translate: Translate,\n rotate: Rotate,\n scale: Scale,\n matrix: Matrix,\n skewX: SkewX,\n skewY: SkewY\n};\n\nclass Element {\n constructor(document, node) {\n var captureTextNodes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n this.document = document;\n this.node = node;\n this.captureTextNodes = captureTextNodes;\n this.attributes = {};\n this.styles = {};\n this.stylesSpecificity = {};\n this.animationFrozen = false;\n this.animationFrozenValue = '';\n this.parent = null;\n this.children = [];\n\n if (!node || node.nodeType !== 1) {\n // ELEMENT_NODE\n return;\n } // add attributes\n\n\n Array.from(node.attributes).forEach(attribute => {\n var nodeName = normalizeAttributeName(attribute.nodeName);\n this.attributes[nodeName] = new Property(document, nodeName, attribute.value);\n });\n this.addStylesFromStyleDefinition(); // add inline styles\n\n if (this.getAttribute('style').hasValue()) {\n var styles = this.getAttribute('style').getString().split(';').map(_ => _.trim());\n styles.forEach(style => {\n if (!style) {\n return;\n }\n\n var [name, value] = style.split(':').map(_ => _.trim());\n this.styles[name] = new Property(document, name, value);\n });\n }\n\n var {\n definitions\n } = document;\n var id = this.getAttribute('id'); // add id\n\n if (id.hasValue()) {\n if (!definitions[id.getString()]) {\n definitions[id.getString()] = this;\n }\n }\n\n Array.from(node.childNodes).forEach(childNode => {\n if (childNode.nodeType === 1) {\n this.addChild(childNode); // ELEMENT_NODE\n } else if (captureTextNodes && (childNode.nodeType === 3 || childNode.nodeType === 4)) {\n var textNode = document.createTextNode(childNode);\n\n if (textNode.getText().length > 0) {\n this.addChild(textNode); // TEXT_NODE\n }\n }\n });\n }\n\n getAttribute(name) {\n var createIfNotExists = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var attr = this.attributes[name];\n\n if (!attr && createIfNotExists) {\n var _attr = new Property(this.document, name, '');\n\n this.attributes[name] = _attr;\n return _attr;\n }\n\n return attr || Property.empty(this.document);\n }\n\n getHrefAttribute() {\n for (var key in this.attributes) {\n if (key === 'href' || key.endsWith(':href')) {\n return this.attributes[key];\n }\n }\n\n return Property.empty(this.document);\n }\n\n getStyle(name) {\n var createIfNotExists = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var skipAncestors = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var style = this.styles[name];\n\n if (style) {\n return style;\n }\n\n var attr = this.getAttribute(name);\n\n if (attr !== null && attr !== void 0 && attr.hasValue()) {\n this.styles[name] = attr; // move up to me to cache\n\n return attr;\n }\n\n if (!skipAncestors) {\n var {\n parent\n } = this;\n\n if (parent) {\n var parentStyle = parent.getStyle(name);\n\n if (parentStyle !== null && parentStyle !== void 0 && parentStyle.hasValue()) {\n return parentStyle;\n }\n }\n }\n\n if (createIfNotExists) {\n var _style = new Property(this.document, name, '');\n\n this.styles[name] = _style;\n return _style;\n }\n\n return style || Property.empty(this.document);\n }\n\n render(ctx) {\n // don't render display=none\n // don't render visibility=hidden\n if (this.getStyle('display').getString() === 'none' || this.getStyle('visibility').getString() === 'hidden') {\n return;\n }\n\n ctx.save();\n\n if (this.getStyle('mask').hasValue()) {\n // mask\n var mask = this.getStyle('mask').getDefinition();\n\n if (mask) {\n this.applyEffects(ctx);\n mask.apply(ctx, this);\n }\n } else if (this.getStyle('filter').getValue('none') !== 'none') {\n // filter\n var filter = this.getStyle('filter').getDefinition();\n\n if (filter) {\n this.applyEffects(ctx);\n filter.apply(ctx, this);\n }\n } else {\n this.setContext(ctx);\n this.renderChildren(ctx);\n this.clearContext(ctx);\n }\n\n ctx.restore();\n }\n\n setContext(_) {// NO RENDER\n }\n\n applyEffects(ctx) {\n // transform\n var transform = Transform.fromElement(this.document, this);\n\n if (transform) {\n transform.apply(ctx);\n } // clip\n\n\n var clipPathStyleProp = this.getStyle('clip-path', false, true);\n\n if (clipPathStyleProp.hasValue()) {\n var clip = clipPathStyleProp.getDefinition();\n\n if (clip) {\n clip.apply(ctx);\n }\n }\n }\n\n clearContext(_) {// NO RENDER\n }\n\n renderChildren(ctx) {\n this.children.forEach(child => {\n child.render(ctx);\n });\n }\n\n addChild(childNode) {\n var child = childNode instanceof Element ? childNode : this.document.createElement(childNode);\n child.parent = this;\n\n if (!Element.ignoreChildTypes.includes(child.type)) {\n this.children.push(child);\n }\n }\n\n matchesSelector(selector) {\n var _node$getAttribute;\n\n var {\n node\n } = this;\n\n if (typeof node.matches === 'function') {\n return node.matches(selector);\n }\n\n var styleClasses = (_node$getAttribute = node.getAttribute) === null || _node$getAttribute === void 0 ? void 0 : _node$getAttribute.call(node, 'class');\n\n if (!styleClasses || styleClasses === '') {\n return false;\n }\n\n return styleClasses.split(' ').some(styleClass => \".\".concat(styleClass) === selector);\n }\n\n addStylesFromStyleDefinition() {\n var {\n styles,\n stylesSpecificity\n } = this.document;\n\n for (var selector in styles) {\n if (!selector.startsWith('@') && this.matchesSelector(selector)) {\n var style = styles[selector];\n var specificity = stylesSpecificity[selector];\n\n if (style) {\n for (var name in style) {\n var existingSpecificity = this.stylesSpecificity[name];\n\n if (typeof existingSpecificity === 'undefined') {\n existingSpecificity = '000';\n }\n\n if (specificity >= existingSpecificity) {\n this.styles[name] = style[name];\n this.stylesSpecificity[name] = specificity;\n }\n }\n }\n }\n }\n }\n\n removeStyles(element, ignoreStyles) {\n var toRestore = ignoreStyles.reduce((toRestore, name) => {\n var styleProp = element.getStyle(name);\n\n if (!styleProp.hasValue()) {\n return toRestore;\n }\n\n var value = styleProp.getString();\n styleProp.setValue('');\n return [...toRestore, [name, value]];\n }, []);\n return toRestore;\n }\n\n restoreStyles(element, styles) {\n styles.forEach(_ref => {\n var [name, value] = _ref;\n element.getStyle(name, true).setValue(value);\n });\n }\n\n isFirstChild() {\n var _this$parent;\n\n return ((_this$parent = this.parent) === null || _this$parent === void 0 ? void 0 : _this$parent.children.indexOf(this)) === 0;\n }\n\n}\nElement.ignoreChildTypes = ['title'];\n\nclass UnknownElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n }\n\n}\n\nfunction wrapFontFamily(fontFamily) {\n var trimmed = fontFamily.trim();\n return /^('|\")/.test(trimmed) ? trimmed : \"\\\"\".concat(trimmed, \"\\\"\");\n}\n\nfunction prepareFontFamily(fontFamily) {\n return typeof process === 'undefined' ? fontFamily : fontFamily.trim().split(',').map(wrapFontFamily).join(',');\n}\n/**\r\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-style\r\n * @param fontStyle\r\n * @returns CSS font style.\r\n */\n\n\nfunction prepareFontStyle(fontStyle) {\n if (!fontStyle) {\n return '';\n }\n\n var targetFontStyle = fontStyle.trim().toLowerCase();\n\n switch (targetFontStyle) {\n case 'normal':\n case 'italic':\n case 'oblique':\n case 'inherit':\n case 'initial':\n case 'unset':\n return targetFontStyle;\n\n default:\n if (/^oblique\\s+(-|)\\d+deg$/.test(targetFontStyle)) {\n return targetFontStyle;\n }\n\n return '';\n }\n}\n/**\r\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight\r\n * @param fontWeight\r\n * @returns CSS font weight.\r\n */\n\n\nfunction prepareFontWeight(fontWeight) {\n if (!fontWeight) {\n return '';\n }\n\n var targetFontWeight = fontWeight.trim().toLowerCase();\n\n switch (targetFontWeight) {\n case 'normal':\n case 'bold':\n case 'lighter':\n case 'bolder':\n case 'inherit':\n case 'initial':\n case 'unset':\n return targetFontWeight;\n\n default:\n if (/^[\\d.]+$/.test(targetFontWeight)) {\n return targetFontWeight;\n }\n\n return '';\n }\n}\n\nclass Font {\n constructor(fontStyle, fontVariant, fontWeight, fontSize, fontFamily, inherit) {\n var inheritFont = inherit ? typeof inherit === 'string' ? Font.parse(inherit) : inherit : {};\n this.fontFamily = fontFamily || inheritFont.fontFamily;\n this.fontSize = fontSize || inheritFont.fontSize;\n this.fontStyle = fontStyle || inheritFont.fontStyle;\n this.fontWeight = fontWeight || inheritFont.fontWeight;\n this.fontVariant = fontVariant || inheritFont.fontVariant;\n }\n\n static parse() {\n var font = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var inherit = arguments.length > 1 ? arguments[1] : undefined;\n var fontStyle = '';\n var fontVariant = '';\n var fontWeight = '';\n var fontSize = '';\n var fontFamily = '';\n var parts = compressSpaces(font).trim().split(' ');\n var set = {\n fontSize: false,\n fontStyle: false,\n fontWeight: false,\n fontVariant: false\n };\n parts.forEach(part => {\n switch (true) {\n case !set.fontStyle && Font.styles.includes(part):\n if (part !== 'inherit') {\n fontStyle = part;\n }\n\n set.fontStyle = true;\n break;\n\n case !set.fontVariant && Font.variants.includes(part):\n if (part !== 'inherit') {\n fontVariant = part;\n }\n\n set.fontStyle = true;\n set.fontVariant = true;\n break;\n\n case !set.fontWeight && Font.weights.includes(part):\n if (part !== 'inherit') {\n fontWeight = part;\n }\n\n set.fontStyle = true;\n set.fontVariant = true;\n set.fontWeight = true;\n break;\n\n case !set.fontSize:\n if (part !== 'inherit') {\n [fontSize] = part.split('/');\n }\n\n set.fontStyle = true;\n set.fontVariant = true;\n set.fontWeight = true;\n set.fontSize = true;\n break;\n\n default:\n if (part !== 'inherit') {\n fontFamily += part;\n }\n\n }\n });\n return new Font(fontStyle, fontVariant, fontWeight, fontSize, fontFamily, inherit);\n }\n\n toString() {\n return [prepareFontStyle(this.fontStyle), this.fontVariant, prepareFontWeight(this.fontWeight), this.fontSize, // Wrap fontFamily only on nodejs and only for canvas.ctx\n prepareFontFamily(this.fontFamily)].join(' ').trim();\n }\n\n}\nFont.styles = 'normal|italic|oblique|inherit';\nFont.variants = 'normal|small-caps|inherit';\nFont.weights = 'normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900|inherit';\n\nclass BoundingBox {\n constructor() {\n var x1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Number.NaN;\n var y1 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.NaN;\n var x2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Number.NaN;\n var y2 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Number.NaN;\n this.x1 = x1;\n this.y1 = y1;\n this.x2 = x2;\n this.y2 = y2;\n this.addPoint(x1, y1);\n this.addPoint(x2, y2);\n }\n\n get x() {\n return this.x1;\n }\n\n get y() {\n return this.y1;\n }\n\n get width() {\n return this.x2 - this.x1;\n }\n\n get height() {\n return this.y2 - this.y1;\n }\n\n addPoint(x, y) {\n if (typeof x !== 'undefined') {\n if (isNaN(this.x1) || isNaN(this.x2)) {\n this.x1 = x;\n this.x2 = x;\n }\n\n if (x < this.x1) {\n this.x1 = x;\n }\n\n if (x > this.x2) {\n this.x2 = x;\n }\n }\n\n if (typeof y !== 'undefined') {\n if (isNaN(this.y1) || isNaN(this.y2)) {\n this.y1 = y;\n this.y2 = y;\n }\n\n if (y < this.y1) {\n this.y1 = y;\n }\n\n if (y > this.y2) {\n this.y2 = y;\n }\n }\n }\n\n addX(x) {\n this.addPoint(x, null);\n }\n\n addY(y) {\n this.addPoint(null, y);\n }\n\n addBoundingBox(boundingBox) {\n if (!boundingBox) {\n return;\n }\n\n var {\n x1,\n y1,\n x2,\n y2\n } = boundingBox;\n this.addPoint(x1, y1);\n this.addPoint(x2, y2);\n }\n\n sumCubic(t, p0, p1, p2, p3) {\n return Math.pow(1 - t, 3) * p0 + 3 * Math.pow(1 - t, 2) * t * p1 + 3 * (1 - t) * Math.pow(t, 2) * p2 + Math.pow(t, 3) * p3;\n }\n\n bezierCurveAdd(forX, p0, p1, p2, p3) {\n var b = 6 * p0 - 12 * p1 + 6 * p2;\n var a = -3 * p0 + 9 * p1 - 9 * p2 + 3 * p3;\n var c = 3 * p1 - 3 * p0;\n\n if (a === 0) {\n if (b === 0) {\n return;\n }\n\n var t = -c / b;\n\n if (0 < t && t < 1) {\n if (forX) {\n this.addX(this.sumCubic(t, p0, p1, p2, p3));\n } else {\n this.addY(this.sumCubic(t, p0, p1, p2, p3));\n }\n }\n\n return;\n }\n\n var b2ac = Math.pow(b, 2) - 4 * c * a;\n\n if (b2ac < 0) {\n return;\n }\n\n var t1 = (-b + Math.sqrt(b2ac)) / (2 * a);\n\n if (0 < t1 && t1 < 1) {\n if (forX) {\n this.addX(this.sumCubic(t1, p0, p1, p2, p3));\n } else {\n this.addY(this.sumCubic(t1, p0, p1, p2, p3));\n }\n }\n\n var t2 = (-b - Math.sqrt(b2ac)) / (2 * a);\n\n if (0 < t2 && t2 < 1) {\n if (forX) {\n this.addX(this.sumCubic(t2, p0, p1, p2, p3));\n } else {\n this.addY(this.sumCubic(t2, p0, p1, p2, p3));\n }\n }\n } // from http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html\n\n\n addBezierCurve(p0x, p0y, p1x, p1y, p2x, p2y, p3x, p3y) {\n this.addPoint(p0x, p0y);\n this.addPoint(p3x, p3y);\n this.bezierCurveAdd(true, p0x, p1x, p2x, p3x);\n this.bezierCurveAdd(false, p0y, p1y, p2y, p3y);\n }\n\n addQuadraticCurve(p0x, p0y, p1x, p1y, p2x, p2y) {\n var cp1x = p0x + 2 / 3 * (p1x - p0x); // CP1 = QP0 + 2/3 *(QP1-QP0)\n\n var cp1y = p0y + 2 / 3 * (p1y - p0y); // CP1 = QP0 + 2/3 *(QP1-QP0)\n\n var cp2x = cp1x + 1 / 3 * (p2x - p0x); // CP2 = CP1 + 1/3 *(QP2-QP0)\n\n var cp2y = cp1y + 1 / 3 * (p2y - p0y); // CP2 = CP1 + 1/3 *(QP2-QP0)\n\n this.addBezierCurve(p0x, p0y, cp1x, cp2x, cp1y, cp2y, p2x, p2y);\n }\n\n isPointInBox(x, y) {\n var {\n x1,\n y1,\n x2,\n y2\n } = this;\n return x1 <= x && x <= x2 && y1 <= y && y <= y2;\n }\n\n}\n\nclass PathParser extends SVGPathData {\n constructor(path) {\n super(path // Fix spaces after signs.\n .replace(/([+\\-.])\\s+/gm, '$1') // Remove invalid part.\n .replace(/[^MmZzLlHhVvCcSsQqTtAae\\d\\s.,+-].*/g, ''));\n this.control = null;\n this.start = null;\n this.current = null;\n this.command = null;\n this.commands = this.commands;\n this.i = -1;\n this.previousCommand = null;\n this.points = [];\n this.angles = [];\n }\n\n reset() {\n this.i = -1;\n this.command = null;\n this.previousCommand = null;\n this.start = new Point(0, 0);\n this.control = new Point(0, 0);\n this.current = new Point(0, 0);\n this.points = [];\n this.angles = [];\n }\n\n isEnd() {\n var {\n i,\n commands\n } = this;\n return i >= commands.length - 1;\n }\n\n next() {\n var command = this.commands[++this.i];\n this.previousCommand = this.command;\n this.command = command;\n return command;\n }\n\n getPoint() {\n var xProp = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'x';\n var yProp = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'y';\n var point = new Point(this.command[xProp], this.command[yProp]);\n return this.makeAbsolute(point);\n }\n\n getAsControlPoint(xProp, yProp) {\n var point = this.getPoint(xProp, yProp);\n this.control = point;\n return point;\n }\n\n getAsCurrentPoint(xProp, yProp) {\n var point = this.getPoint(xProp, yProp);\n this.current = point;\n return point;\n }\n\n getReflectedControlPoint() {\n var previousCommand = this.previousCommand.type;\n\n if (previousCommand !== SVGPathData.CURVE_TO && previousCommand !== SVGPathData.SMOOTH_CURVE_TO && previousCommand !== SVGPathData.QUAD_TO && previousCommand !== SVGPathData.SMOOTH_QUAD_TO) {\n return this.current;\n } // reflect point\n\n\n var {\n current: {\n x: cx,\n y: cy\n },\n control: {\n x: ox,\n y: oy\n }\n } = this;\n var point = new Point(2 * cx - ox, 2 * cy - oy);\n return point;\n }\n\n makeAbsolute(point) {\n if (this.command.relative) {\n var {\n x,\n y\n } = this.current;\n point.x += x;\n point.y += y;\n }\n\n return point;\n }\n\n addMarker(point, from, priorTo) {\n var {\n points,\n angles\n } = this; // if the last angle isn't filled in because we didn't have this point yet ...\n\n if (priorTo && angles.length > 0 && !angles[angles.length - 1]) {\n angles[angles.length - 1] = points[points.length - 1].angleTo(priorTo);\n }\n\n this.addMarkerAngle(point, from ? from.angleTo(point) : null);\n }\n\n addMarkerAngle(point, angle) {\n this.points.push(point);\n this.angles.push(angle);\n }\n\n getMarkerPoints() {\n return this.points;\n }\n\n getMarkerAngles() {\n var {\n angles\n } = this;\n var len = angles.length;\n\n for (var i = 0; i < len; i++) {\n if (!angles[i]) {\n for (var j = i + 1; j < len; j++) {\n if (angles[j]) {\n angles[i] = angles[j];\n break;\n }\n }\n }\n }\n\n return angles;\n }\n\n}\n\nclass RenderedElement extends Element {\n constructor() {\n super(...arguments);\n this.modifiedEmSizeStack = false;\n }\n\n calculateOpacity() {\n var opacity = 1.0; // eslint-disable-next-line @typescript-eslint/no-this-alias, consistent-this\n\n var element = this;\n\n while (element) {\n var opacityStyle = element.getStyle('opacity', false, true); // no ancestors on style call\n\n if (opacityStyle.hasValue(true)) {\n opacity *= opacityStyle.getNumber();\n }\n\n element = element.parent;\n }\n\n return opacity;\n }\n\n setContext(ctx) {\n var fromMeasure = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!fromMeasure) {\n // causes stack overflow when measuring text with gradients\n // fill\n var fillStyleProp = this.getStyle('fill');\n var fillOpacityStyleProp = this.getStyle('fill-opacity');\n var strokeStyleProp = this.getStyle('stroke');\n var strokeOpacityProp = this.getStyle('stroke-opacity');\n\n if (fillStyleProp.isUrlDefinition()) {\n var fillStyle = fillStyleProp.getFillStyleDefinition(this, fillOpacityStyleProp);\n\n if (fillStyle) {\n ctx.fillStyle = fillStyle;\n }\n } else if (fillStyleProp.hasValue()) {\n if (fillStyleProp.getString() === 'currentColor') {\n fillStyleProp.setValue(this.getStyle('color').getColor());\n }\n\n var _fillStyle = fillStyleProp.getColor();\n\n if (_fillStyle !== 'inherit') {\n ctx.fillStyle = _fillStyle === 'none' ? 'rgba(0,0,0,0)' : _fillStyle;\n }\n }\n\n if (fillOpacityStyleProp.hasValue()) {\n var _fillStyle2 = new Property(this.document, 'fill', ctx.fillStyle).addOpacity(fillOpacityStyleProp).getColor();\n\n ctx.fillStyle = _fillStyle2;\n } // stroke\n\n\n if (strokeStyleProp.isUrlDefinition()) {\n var strokeStyle = strokeStyleProp.getFillStyleDefinition(this, strokeOpacityProp);\n\n if (strokeStyle) {\n ctx.strokeStyle = strokeStyle;\n }\n } else if (strokeStyleProp.hasValue()) {\n if (strokeStyleProp.getString() === 'currentColor') {\n strokeStyleProp.setValue(this.getStyle('color').getColor());\n }\n\n var _strokeStyle = strokeStyleProp.getString();\n\n if (_strokeStyle !== 'inherit') {\n ctx.strokeStyle = _strokeStyle === 'none' ? 'rgba(0,0,0,0)' : _strokeStyle;\n }\n }\n\n if (strokeOpacityProp.hasValue()) {\n var _strokeStyle2 = new Property(this.document, 'stroke', ctx.strokeStyle).addOpacity(strokeOpacityProp).getString();\n\n ctx.strokeStyle = _strokeStyle2;\n }\n\n var strokeWidthStyleProp = this.getStyle('stroke-width');\n\n if (strokeWidthStyleProp.hasValue()) {\n var newLineWidth = strokeWidthStyleProp.getPixels();\n ctx.lineWidth = !newLineWidth ? PSEUDO_ZERO // browsers don't respect 0 (or node-canvas? :-)\n : newLineWidth;\n }\n\n var strokeLinecapStyleProp = this.getStyle('stroke-linecap');\n var strokeLinejoinStyleProp = this.getStyle('stroke-linejoin');\n var strokeMiterlimitProp = this.getStyle('stroke-miterlimit'); // NEED TEST\n // const pointOrderStyleProp = this.getStyle('paint-order');\n\n var strokeDasharrayStyleProp = this.getStyle('stroke-dasharray');\n var strokeDashoffsetProp = this.getStyle('stroke-dashoffset');\n\n if (strokeLinecapStyleProp.hasValue()) {\n ctx.lineCap = strokeLinecapStyleProp.getString();\n }\n\n if (strokeLinejoinStyleProp.hasValue()) {\n ctx.lineJoin = strokeLinejoinStyleProp.getString();\n }\n\n if (strokeMiterlimitProp.hasValue()) {\n ctx.miterLimit = strokeMiterlimitProp.getNumber();\n } // NEED TEST\n // if (pointOrderStyleProp.hasValue()) {\n // \t// ?\n // \tctx.paintOrder = pointOrderStyleProp.getValue();\n // }\n\n\n if (strokeDasharrayStyleProp.hasValue() && strokeDasharrayStyleProp.getString() !== 'none') {\n var gaps = toNumbers(strokeDasharrayStyleProp.getString());\n\n if (typeof ctx.setLineDash !== 'undefined') {\n ctx.setLineDash(gaps);\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.webkitLineDash !== 'undefined') {\n // @ts-expect-error Handle browser prefix.\n ctx.webkitLineDash = gaps;\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.mozDash !== 'undefined' && !(gaps.length === 1 && gaps[0] === 0)) {\n // @ts-expect-error Handle browser prefix.\n ctx.mozDash = gaps;\n }\n\n var offset = strokeDashoffsetProp.getPixels();\n\n if (typeof ctx.lineDashOffset !== 'undefined') {\n ctx.lineDashOffset = offset;\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.webkitLineDashOffset !== 'undefined') {\n // @ts-expect-error Handle browser prefix.\n ctx.webkitLineDashOffset = offset;\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.mozDashOffset !== 'undefined') {\n // @ts-expect-error Handle browser prefix.\n ctx.mozDashOffset = offset;\n }\n }\n } // font\n\n\n this.modifiedEmSizeStack = false;\n\n if (typeof ctx.font !== 'undefined') {\n var fontStyleProp = this.getStyle('font');\n var fontStyleStyleProp = this.getStyle('font-style');\n var fontVariantStyleProp = this.getStyle('font-variant');\n var fontWeightStyleProp = this.getStyle('font-weight');\n var fontSizeStyleProp = this.getStyle('font-size');\n var fontFamilyStyleProp = this.getStyle('font-family');\n var font = new Font(fontStyleStyleProp.getString(), fontVariantStyleProp.getString(), fontWeightStyleProp.getString(), fontSizeStyleProp.hasValue() ? \"\".concat(fontSizeStyleProp.getPixels(true), \"px\") : '', fontFamilyStyleProp.getString(), Font.parse(fontStyleProp.getString(), ctx.font));\n fontStyleStyleProp.setValue(font.fontStyle);\n fontVariantStyleProp.setValue(font.fontVariant);\n fontWeightStyleProp.setValue(font.fontWeight);\n fontSizeStyleProp.setValue(font.fontSize);\n fontFamilyStyleProp.setValue(font.fontFamily);\n ctx.font = font.toString();\n\n if (fontSizeStyleProp.isPixels()) {\n this.document.emSize = fontSizeStyleProp.getPixels();\n this.modifiedEmSizeStack = true;\n }\n }\n\n if (!fromMeasure) {\n // effects\n this.applyEffects(ctx); // opacity\n\n ctx.globalAlpha = this.calculateOpacity();\n }\n }\n\n clearContext(ctx) {\n super.clearContext(ctx);\n\n if (this.modifiedEmSizeStack) {\n this.document.popEmSize();\n }\n }\n\n}\n\nclass PathElement extends RenderedElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'path';\n this.pathParser = null;\n this.pathParser = new PathParser(this.getAttribute('d').getString());\n }\n\n path(ctx) {\n var {\n pathParser\n } = this;\n var boundingBox = new BoundingBox();\n pathParser.reset();\n\n if (ctx) {\n ctx.beginPath();\n }\n\n while (!pathParser.isEnd()) {\n switch (pathParser.next().type) {\n case PathParser.MOVE_TO:\n this.pathM(ctx, boundingBox);\n break;\n\n case PathParser.LINE_TO:\n this.pathL(ctx, boundingBox);\n break;\n\n case PathParser.HORIZ_LINE_TO:\n this.pathH(ctx, boundingBox);\n break;\n\n case PathParser.VERT_LINE_TO:\n this.pathV(ctx, boundingBox);\n break;\n\n case PathParser.CURVE_TO:\n this.pathC(ctx, boundingBox);\n break;\n\n case PathParser.SMOOTH_CURVE_TO:\n this.pathS(ctx, boundingBox);\n break;\n\n case PathParser.QUAD_TO:\n this.pathQ(ctx, boundingBox);\n break;\n\n case PathParser.SMOOTH_QUAD_TO:\n this.pathT(ctx, boundingBox);\n break;\n\n case PathParser.ARC:\n this.pathA(ctx, boundingBox);\n break;\n\n case PathParser.CLOSE_PATH:\n this.pathZ(ctx, boundingBox);\n break;\n }\n }\n\n return boundingBox;\n }\n\n getBoundingBox(_) {\n return this.path();\n }\n\n getMarkers() {\n var {\n pathParser\n } = this;\n var points = pathParser.getMarkerPoints();\n var angles = pathParser.getMarkerAngles();\n var markers = points.map((point, i) => [point, angles[i]]);\n return markers;\n }\n\n renderChildren(ctx) {\n this.path(ctx);\n this.document.screen.mouse.checkPath(this, ctx);\n var fillRuleStyleProp = this.getStyle('fill-rule');\n\n if (ctx.fillStyle !== '') {\n if (fillRuleStyleProp.getString('inherit') !== 'inherit') {\n ctx.fill(fillRuleStyleProp.getString());\n } else {\n ctx.fill();\n }\n }\n\n if (ctx.strokeStyle !== '') {\n if (this.getAttribute('vector-effect').getString() === 'non-scaling-stroke') {\n ctx.save();\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.stroke();\n ctx.restore();\n } else {\n ctx.stroke();\n }\n }\n\n var markers = this.getMarkers();\n\n if (markers) {\n var markersLastIndex = markers.length - 1;\n var markerStartStyleProp = this.getStyle('marker-start');\n var markerMidStyleProp = this.getStyle('marker-mid');\n var markerEndStyleProp = this.getStyle('marker-end');\n\n if (markerStartStyleProp.isUrlDefinition()) {\n var marker = markerStartStyleProp.getDefinition();\n var [point, angle] = markers[0];\n marker.render(ctx, point, angle);\n }\n\n if (markerMidStyleProp.isUrlDefinition()) {\n var _marker = markerMidStyleProp.getDefinition();\n\n for (var i = 1; i < markersLastIndex; i++) {\n var [_point, _angle] = markers[i];\n\n _marker.render(ctx, _point, _angle);\n }\n }\n\n if (markerEndStyleProp.isUrlDefinition()) {\n var _marker2 = markerEndStyleProp.getDefinition();\n\n var [_point2, _angle2] = markers[markersLastIndex];\n\n _marker2.render(ctx, _point2, _angle2);\n }\n }\n }\n\n static pathM(pathParser) {\n var point = pathParser.getAsCurrentPoint();\n pathParser.start = pathParser.current;\n return {\n point\n };\n }\n\n pathM(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n point\n } = PathElement.pathM(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.moveTo(x, y);\n }\n }\n\n static pathL(pathParser) {\n var {\n current\n } = pathParser;\n var point = pathParser.getAsCurrentPoint();\n return {\n current,\n point\n };\n }\n\n pathL(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point\n } = PathElement.pathL(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point, current);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n }\n\n static pathH(pathParser) {\n var {\n current,\n command\n } = pathParser;\n var point = new Point((command.relative ? current.x : 0) + command.x, current.y);\n pathParser.current = point;\n return {\n current,\n point\n };\n }\n\n pathH(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point\n } = PathElement.pathH(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point, current);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n }\n\n static pathV(pathParser) {\n var {\n current,\n command\n } = pathParser;\n var point = new Point(current.x, (command.relative ? current.y : 0) + command.y);\n pathParser.current = point;\n return {\n current,\n point\n };\n }\n\n pathV(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point\n } = PathElement.pathV(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point, current);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n }\n\n static pathC(pathParser) {\n var {\n current\n } = pathParser;\n var point = pathParser.getPoint('x1', 'y1');\n var controlPoint = pathParser.getAsControlPoint('x2', 'y2');\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n point,\n controlPoint,\n currentPoint\n };\n }\n\n pathC(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathC(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, point);\n boundingBox.addBezierCurve(current.x, current.y, point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.bezierCurveTo(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathS(pathParser) {\n var {\n current\n } = pathParser;\n var point = pathParser.getReflectedControlPoint();\n var controlPoint = pathParser.getAsControlPoint('x2', 'y2');\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n point,\n controlPoint,\n currentPoint\n };\n }\n\n pathS(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathS(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, point);\n boundingBox.addBezierCurve(current.x, current.y, point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.bezierCurveTo(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathQ(pathParser) {\n var {\n current\n } = pathParser;\n var controlPoint = pathParser.getAsControlPoint('x1', 'y1');\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n controlPoint,\n currentPoint\n };\n }\n\n pathQ(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n controlPoint,\n currentPoint\n } = PathElement.pathQ(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, controlPoint);\n boundingBox.addQuadraticCurve(current.x, current.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.quadraticCurveTo(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathT(pathParser) {\n var {\n current\n } = pathParser;\n var controlPoint = pathParser.getReflectedControlPoint();\n pathParser.control = controlPoint;\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n controlPoint,\n currentPoint\n };\n }\n\n pathT(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n controlPoint,\n currentPoint\n } = PathElement.pathT(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, controlPoint);\n boundingBox.addQuadraticCurve(current.x, current.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.quadraticCurveTo(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathA(pathParser) {\n var {\n current,\n command\n } = pathParser;\n var {\n rX,\n rY,\n xRot,\n lArcFlag,\n sweepFlag\n } = command;\n var xAxisRotation = xRot * (Math.PI / 180.0);\n var currentPoint = pathParser.getAsCurrentPoint(); // Conversion from endpoint to center parameterization\n // http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes\n // x1', y1'\n\n var currp = new Point(Math.cos(xAxisRotation) * (current.x - currentPoint.x) / 2.0 + Math.sin(xAxisRotation) * (current.y - currentPoint.y) / 2.0, -Math.sin(xAxisRotation) * (current.x - currentPoint.x) / 2.0 + Math.cos(xAxisRotation) * (current.y - currentPoint.y) / 2.0); // adjust radii\n\n var l = Math.pow(currp.x, 2) / Math.pow(rX, 2) + Math.pow(currp.y, 2) / Math.pow(rY, 2);\n\n if (l > 1) {\n rX *= Math.sqrt(l);\n rY *= Math.sqrt(l);\n } // cx', cy'\n\n\n var s = (lArcFlag === sweepFlag ? -1 : 1) * Math.sqrt((Math.pow(rX, 2) * Math.pow(rY, 2) - Math.pow(rX, 2) * Math.pow(currp.y, 2) - Math.pow(rY, 2) * Math.pow(currp.x, 2)) / (Math.pow(rX, 2) * Math.pow(currp.y, 2) + Math.pow(rY, 2) * Math.pow(currp.x, 2)));\n\n if (isNaN(s)) {\n s = 0;\n }\n\n var cpp = new Point(s * rX * currp.y / rY, s * -rY * currp.x / rX); // cx, cy\n\n var centp = new Point((current.x + currentPoint.x) / 2.0 + Math.cos(xAxisRotation) * cpp.x - Math.sin(xAxisRotation) * cpp.y, (current.y + currentPoint.y) / 2.0 + Math.sin(xAxisRotation) * cpp.x + Math.cos(xAxisRotation) * cpp.y); // initial angle\n\n var a1 = vectorsAngle([1, 0], [(currp.x - cpp.x) / rX, (currp.y - cpp.y) / rY]); // θ1\n // angle delta\n\n var u = [(currp.x - cpp.x) / rX, (currp.y - cpp.y) / rY];\n var v = [(-currp.x - cpp.x) / rX, (-currp.y - cpp.y) / rY];\n var ad = vectorsAngle(u, v); // Δθ\n\n if (vectorsRatio(u, v) <= -1) {\n ad = Math.PI;\n }\n\n if (vectorsRatio(u, v) >= 1) {\n ad = 0;\n }\n\n return {\n currentPoint,\n rX,\n rY,\n sweepFlag,\n xAxisRotation,\n centp,\n a1,\n ad\n };\n }\n\n pathA(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n currentPoint,\n rX,\n rY,\n sweepFlag,\n xAxisRotation,\n centp,\n a1,\n ad\n } = PathElement.pathA(pathParser); // for markers\n\n var dir = 1 - sweepFlag ? 1.0 : -1.0;\n var ah = a1 + dir * (ad / 2.0);\n var halfWay = new Point(centp.x + rX * Math.cos(ah), centp.y + rY * Math.sin(ah));\n pathParser.addMarkerAngle(halfWay, ah - dir * Math.PI / 2);\n pathParser.addMarkerAngle(currentPoint, ah - dir * Math.PI);\n boundingBox.addPoint(currentPoint.x, currentPoint.y); // TODO: this is too naive, make it better\n\n if (ctx && !isNaN(a1) && !isNaN(ad)) {\n var r = rX > rY ? rX : rY;\n var sx = rX > rY ? 1 : rX / rY;\n var sy = rX > rY ? rY / rX : 1;\n ctx.translate(centp.x, centp.y);\n ctx.rotate(xAxisRotation);\n ctx.scale(sx, sy);\n ctx.arc(0, 0, r, a1, a1 + ad, Boolean(1 - sweepFlag));\n ctx.scale(1 / sx, 1 / sy);\n ctx.rotate(-xAxisRotation);\n ctx.translate(-centp.x, -centp.y);\n }\n }\n\n static pathZ(pathParser) {\n pathParser.current = pathParser.start;\n }\n\n pathZ(ctx, boundingBox) {\n PathElement.pathZ(this.pathParser);\n\n if (ctx) {\n // only close path if it is not a straight line\n if (boundingBox.x1 !== boundingBox.x2 && boundingBox.y1 !== boundingBox.y2) {\n ctx.closePath();\n }\n }\n }\n\n}\n\nclass GlyphElement extends PathElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'glyph';\n this.horizAdvX = this.getAttribute('horiz-adv-x').getNumber();\n this.unicode = this.getAttribute('unicode').getString();\n this.arabicForm = this.getAttribute('arabic-form').getString();\n }\n\n}\n\nclass TextElement extends RenderedElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, new.target === TextElement ? true : captureTextNodes);\n this.type = 'text';\n this.x = 0;\n this.y = 0;\n this.measureCache = -1;\n }\n\n setContext(ctx) {\n var fromMeasure = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n super.setContext(ctx, fromMeasure);\n var textBaseline = this.getStyle('dominant-baseline').getTextBaseline() || this.getStyle('alignment-baseline').getTextBaseline();\n\n if (textBaseline) {\n ctx.textBaseline = textBaseline;\n }\n }\n\n initializeCoordinates() {\n this.x = 0;\n this.y = 0;\n this.leafTexts = [];\n this.textChunkStart = 0;\n this.minX = Number.POSITIVE_INFINITY;\n this.maxX = Number.NEGATIVE_INFINITY;\n }\n\n getBoundingBox(ctx) {\n if (this.type !== 'text') {\n return this.getTElementBoundingBox(ctx);\n } // first, calculate child positions\n\n\n this.initializeCoordinates();\n this.adjustChildCoordinatesRecursive(ctx);\n var boundingBox = null; // then calculate bounding box\n\n this.children.forEach((_, i) => {\n var childBoundingBox = this.getChildBoundingBox(ctx, this, this, i);\n\n if (!boundingBox) {\n boundingBox = childBoundingBox;\n } else {\n boundingBox.addBoundingBox(childBoundingBox);\n }\n });\n return boundingBox;\n }\n\n getFontSize() {\n var {\n document,\n parent\n } = this;\n var inheritFontSize = Font.parse(document.ctx.font).fontSize;\n var fontSize = parent.getStyle('font-size').getNumber(inheritFontSize);\n return fontSize;\n }\n\n getTElementBoundingBox(ctx) {\n var fontSize = this.getFontSize();\n return new BoundingBox(this.x, this.y - fontSize, this.x + this.measureText(ctx), this.y);\n }\n\n getGlyph(font, text, i) {\n var char = text[i];\n var glyph = null;\n\n if (font.isArabic) {\n var len = text.length;\n var prevChar = text[i - 1];\n var nextChar = text[i + 1];\n var arabicForm = 'isolated';\n\n if ((i === 0 || prevChar === ' ') && i < len - 1 && nextChar !== ' ') {\n arabicForm = 'terminal';\n }\n\n if (i > 0 && prevChar !== ' ' && i < len - 1 && nextChar !== ' ') {\n arabicForm = 'medial';\n }\n\n if (i > 0 && prevChar !== ' ' && (i === len - 1 || nextChar === ' ')) {\n arabicForm = 'initial';\n }\n\n if (typeof font.glyphs[char] !== 'undefined') {\n // NEED TEST\n var maybeGlyph = font.glyphs[char];\n glyph = maybeGlyph instanceof GlyphElement ? maybeGlyph : maybeGlyph[arabicForm];\n }\n } else {\n glyph = font.glyphs[char];\n }\n\n if (!glyph) {\n glyph = font.missingGlyph;\n }\n\n return glyph;\n }\n\n getText() {\n return '';\n }\n\n getTextFromNode(node) {\n var textNode = node || this.node;\n var childNodes = Array.from(textNode.parentNode.childNodes);\n var index = childNodes.indexOf(textNode);\n var lastIndex = childNodes.length - 1;\n var text = compressSpaces( // textNode.value\n // || textNode.text\n textNode.textContent || '');\n\n if (index === 0) {\n text = trimLeft(text);\n }\n\n if (index === lastIndex) {\n text = trimRight(text);\n }\n\n return text;\n }\n\n renderChildren(ctx) {\n if (this.type !== 'text') {\n this.renderTElementChildren(ctx);\n return;\n } // first, calculate child positions\n\n\n this.initializeCoordinates();\n this.adjustChildCoordinatesRecursive(ctx); // then render\n\n this.children.forEach((_, i) => {\n this.renderChild(ctx, this, this, i);\n });\n var {\n mouse\n } = this.document.screen; // Do not calc bounding box if mouse is not working.\n\n if (mouse.isWorking()) {\n mouse.checkBoundingBox(this, this.getBoundingBox(ctx));\n }\n }\n\n renderTElementChildren(ctx) {\n var {\n document,\n parent\n } = this;\n var renderText = this.getText();\n var customFont = parent.getStyle('font-family').getDefinition();\n\n if (customFont) {\n var {\n unitsPerEm\n } = customFont.fontFace;\n var ctxFont = Font.parse(document.ctx.font);\n var fontSize = parent.getStyle('font-size').getNumber(ctxFont.fontSize);\n var fontStyle = parent.getStyle('font-style').getString(ctxFont.fontStyle);\n var scale = fontSize / unitsPerEm;\n var text = customFont.isRTL ? renderText.split('').reverse().join('') : renderText;\n var dx = toNumbers(parent.getAttribute('dx').getString());\n var len = text.length;\n\n for (var i = 0; i < len; i++) {\n var glyph = this.getGlyph(customFont, text, i);\n ctx.translate(this.x, this.y);\n ctx.scale(scale, -scale);\n var lw = ctx.lineWidth;\n ctx.lineWidth = ctx.lineWidth * unitsPerEm / fontSize;\n\n if (fontStyle === 'italic') {\n ctx.transform(1, 0, .4, 1, 0, 0);\n }\n\n glyph.render(ctx);\n\n if (fontStyle === 'italic') {\n ctx.transform(1, 0, -.4, 1, 0, 0);\n }\n\n ctx.lineWidth = lw;\n ctx.scale(1 / scale, -1 / scale);\n ctx.translate(-this.x, -this.y);\n this.x += fontSize * (glyph.horizAdvX || customFont.horizAdvX) / unitsPerEm;\n\n if (typeof dx[i] !== 'undefined' && !isNaN(dx[i])) {\n this.x += dx[i];\n }\n }\n\n return;\n }\n\n var {\n x,\n y\n } = this; // NEED TEST\n // if (ctx.paintOrder === 'stroke') {\n // \tif (ctx.strokeStyle) {\n // \t\tctx.strokeText(renderText, x, y);\n // \t}\n // \tif (ctx.fillStyle) {\n // \t\tctx.fillText(renderText, x, y);\n // \t}\n // } else {\n\n if (ctx.fillStyle) {\n ctx.fillText(renderText, x, y);\n }\n\n if (ctx.strokeStyle) {\n ctx.strokeText(renderText, x, y);\n } // }\n\n }\n\n applyAnchoring() {\n if (this.textChunkStart >= this.leafTexts.length) {\n return;\n } // This is basically the \"Apply anchoring\" part of https://www.w3.org/TR/SVG2/text.html#TextLayoutAlgorithm.\n // The difference is that we apply the anchoring as soon as a chunk is finished. This saves some extra looping.\n // Vertical text is not supported.\n\n\n var firstElement = this.leafTexts[this.textChunkStart];\n var textAnchor = firstElement.getStyle('text-anchor').getString('start');\n var isRTL = false; // we treat RTL like LTR\n\n var shift = 0;\n\n if (textAnchor === 'start' && !isRTL || textAnchor === 'end' && isRTL) {\n shift = firstElement.x - this.minX;\n } else if (textAnchor === 'end' && !isRTL || textAnchor === 'start' && isRTL) {\n shift = firstElement.x - this.maxX;\n } else {\n shift = firstElement.x - (this.minX + this.maxX) / 2;\n }\n\n for (var i = this.textChunkStart; i < this.leafTexts.length; i++) {\n this.leafTexts[i].x += shift;\n } // start new chunk\n\n\n this.minX = Number.POSITIVE_INFINITY;\n this.maxX = Number.NEGATIVE_INFINITY;\n this.textChunkStart = this.leafTexts.length;\n }\n\n adjustChildCoordinatesRecursive(ctx) {\n this.children.forEach((_, i) => {\n this.adjustChildCoordinatesRecursiveCore(ctx, this, this, i);\n });\n this.applyAnchoring();\n }\n\n adjustChildCoordinatesRecursiveCore(ctx, textParent, parent, i) {\n var child = parent.children[i];\n\n if (child.children.length > 0) {\n child.children.forEach((_, i) => {\n textParent.adjustChildCoordinatesRecursiveCore(ctx, textParent, child, i);\n });\n } else {\n // only leafs are relevant\n this.adjustChildCoordinates(ctx, textParent, parent, i);\n }\n }\n\n adjustChildCoordinates(ctx, textParent, parent, i) {\n var child = parent.children[i];\n\n if (typeof child.measureText !== 'function') {\n return child;\n }\n\n ctx.save();\n child.setContext(ctx, true);\n var xAttr = child.getAttribute('x');\n var yAttr = child.getAttribute('y');\n var dxAttr = child.getAttribute('dx');\n var dyAttr = child.getAttribute('dy');\n var customFont = child.getStyle('font-family').getDefinition();\n var isRTL = Boolean(customFont) && customFont.isRTL;\n\n if (i === 0) {\n // First children inherit attributes from parent(s). Positional attributes\n // are only inherited from a parent to it's first child.\n if (!xAttr.hasValue()) {\n xAttr.setValue(child.getInheritedAttribute('x'));\n }\n\n if (!yAttr.hasValue()) {\n yAttr.setValue(child.getInheritedAttribute('y'));\n }\n\n if (!dxAttr.hasValue()) {\n dxAttr.setValue(child.getInheritedAttribute('dx'));\n }\n\n if (!dyAttr.hasValue()) {\n dyAttr.setValue(child.getInheritedAttribute('dy'));\n }\n }\n\n var width = child.measureText(ctx);\n\n if (isRTL) {\n textParent.x -= width;\n }\n\n if (xAttr.hasValue()) {\n // an \"x\" attribute marks the start of a new chunk\n textParent.applyAnchoring();\n child.x = xAttr.getPixels('x');\n\n if (dxAttr.hasValue()) {\n child.x += dxAttr.getPixels('x');\n }\n } else {\n if (dxAttr.hasValue()) {\n textParent.x += dxAttr.getPixels('x');\n }\n\n child.x = textParent.x;\n }\n\n textParent.x = child.x;\n\n if (!isRTL) {\n textParent.x += width;\n }\n\n if (yAttr.hasValue()) {\n child.y = yAttr.getPixels('y');\n\n if (dyAttr.hasValue()) {\n child.y += dyAttr.getPixels('y');\n }\n } else {\n if (dyAttr.hasValue()) {\n textParent.y += dyAttr.getPixels('y');\n }\n\n child.y = textParent.y;\n }\n\n textParent.y = child.y; // update the current chunk and it's bounds\n\n textParent.leafTexts.push(child);\n textParent.minX = Math.min(textParent.minX, child.x, child.x + width);\n textParent.maxX = Math.max(textParent.maxX, child.x, child.x + width);\n child.clearContext(ctx);\n ctx.restore();\n return child;\n }\n\n getChildBoundingBox(ctx, textParent, parent, i) {\n var child = parent.children[i]; // not a text node?\n\n if (typeof child.getBoundingBox !== 'function') {\n return null;\n }\n\n var boundingBox = child.getBoundingBox(ctx);\n\n if (!boundingBox) {\n return null;\n }\n\n child.children.forEach((_, i) => {\n var childBoundingBox = textParent.getChildBoundingBox(ctx, textParent, child, i);\n boundingBox.addBoundingBox(childBoundingBox);\n });\n return boundingBox;\n }\n\n renderChild(ctx, textParent, parent, i) {\n var child = parent.children[i];\n child.render(ctx);\n child.children.forEach((_, i) => {\n textParent.renderChild(ctx, textParent, child, i);\n });\n }\n\n measureText(ctx) {\n var {\n measureCache\n } = this;\n\n if (~measureCache) {\n return measureCache;\n }\n\n var renderText = this.getText();\n var measure = this.measureTargetText(ctx, renderText);\n this.measureCache = measure;\n return measure;\n }\n\n measureTargetText(ctx, targetText) {\n if (!targetText.length) {\n return 0;\n }\n\n var {\n parent\n } = this;\n var customFont = parent.getStyle('font-family').getDefinition();\n\n if (customFont) {\n var fontSize = this.getFontSize();\n var text = customFont.isRTL ? targetText.split('').reverse().join('') : targetText;\n var dx = toNumbers(parent.getAttribute('dx').getString());\n var len = text.length;\n var _measure = 0;\n\n for (var i = 0; i < len; i++) {\n var glyph = this.getGlyph(customFont, text, i);\n _measure += (glyph.horizAdvX || customFont.horizAdvX) * fontSize / customFont.fontFace.unitsPerEm;\n\n if (typeof dx[i] !== 'undefined' && !isNaN(dx[i])) {\n _measure += dx[i];\n }\n }\n\n return _measure;\n }\n\n if (!ctx.measureText) {\n return targetText.length * 10;\n }\n\n ctx.save();\n this.setContext(ctx, true);\n var {\n width: measure\n } = ctx.measureText(targetText);\n this.clearContext(ctx);\n ctx.restore();\n return measure;\n }\n /**\r\n * Inherits positional attributes from {@link TextElement} parent(s). Attributes\r\n * are only inherited from a parent to its first child.\r\n * @param name - The attribute name.\r\n * @returns The attribute value or null.\r\n */\n\n\n getInheritedAttribute(name) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias,consistent-this\n var current = this;\n\n while (current instanceof TextElement && current.isFirstChild()) {\n var parentAttr = current.parent.getAttribute(name);\n\n if (parentAttr.hasValue(true)) {\n return parentAttr.getValue('0');\n }\n\n current = current.parent;\n }\n\n return null;\n }\n\n}\n\nclass TSpanElement extends TextElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, new.target === TSpanElement ? true : captureTextNodes);\n this.type = 'tspan'; // if this node has children, then they own the text\n\n this.text = this.children.length > 0 ? '' : this.getTextFromNode();\n }\n\n getText() {\n return this.text;\n }\n\n}\n\nclass TextNode extends TSpanElement {\n constructor() {\n super(...arguments);\n this.type = 'textNode';\n }\n\n}\n\nclass SVGElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'svg';\n this.root = false;\n }\n\n setContext(ctx) {\n var _this$node$parentNode;\n\n var {\n document\n } = this;\n var {\n screen,\n window\n } = document;\n var canvas = ctx.canvas;\n screen.setDefaults(ctx);\n\n if (canvas.style && typeof ctx.font !== 'undefined' && window && typeof window.getComputedStyle !== 'undefined') {\n ctx.font = window.getComputedStyle(canvas).getPropertyValue('font');\n var fontSizeProp = new Property(document, 'fontSize', Font.parse(ctx.font).fontSize);\n\n if (fontSizeProp.hasValue()) {\n document.rootEmSize = fontSizeProp.getPixels('y');\n document.emSize = document.rootEmSize;\n }\n } // create new view port\n\n\n if (!this.getAttribute('x').hasValue()) {\n this.getAttribute('x', true).setValue(0);\n }\n\n if (!this.getAttribute('y').hasValue()) {\n this.getAttribute('y', true).setValue(0);\n }\n\n var {\n width,\n height\n } = screen.viewPort;\n\n if (!this.getStyle('width').hasValue()) {\n this.getStyle('width', true).setValue('100%');\n }\n\n if (!this.getStyle('height').hasValue()) {\n this.getStyle('height', true).setValue('100%');\n }\n\n if (!this.getStyle('color').hasValue()) {\n this.getStyle('color', true).setValue('black');\n }\n\n var refXAttr = this.getAttribute('refX');\n var refYAttr = this.getAttribute('refY');\n var viewBoxAttr = this.getAttribute('viewBox');\n var viewBox = viewBoxAttr.hasValue() ? toNumbers(viewBoxAttr.getString()) : null;\n var clip = !this.root && this.getStyle('overflow').getValue('hidden') !== 'visible';\n var minX = 0;\n var minY = 0;\n var clipX = 0;\n var clipY = 0;\n\n if (viewBox) {\n minX = viewBox[0];\n minY = viewBox[1];\n }\n\n if (!this.root) {\n width = this.getStyle('width').getPixels('x');\n height = this.getStyle('height').getPixels('y');\n\n if (this.type === 'marker') {\n clipX = minX;\n clipY = minY;\n minX = 0;\n minY = 0;\n }\n }\n\n screen.viewPort.setCurrent(width, height); // Default value of transform-origin is center only for root SVG elements\n // https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/transform-origin\n\n if (this.node // is not temporary SVGElement\n && (!this.parent || ((_this$node$parentNode = this.node.parentNode) === null || _this$node$parentNode === void 0 ? void 0 : _this$node$parentNode.nodeName) === 'foreignObject') && this.getStyle('transform', false, true).hasValue() && !this.getStyle('transform-origin', false, true).hasValue()) {\n this.getStyle('transform-origin', true, true).setValue('50% 50%');\n }\n\n super.setContext(ctx);\n ctx.translate(this.getAttribute('x').getPixels('x'), this.getAttribute('y').getPixels('y'));\n\n if (viewBox) {\n width = viewBox[2];\n height = viewBox[3];\n }\n\n document.setViewBox({\n ctx,\n aspectRatio: this.getAttribute('preserveAspectRatio').getString(),\n width: screen.viewPort.width,\n desiredWidth: width,\n height: screen.viewPort.height,\n desiredHeight: height,\n minX,\n minY,\n refX: refXAttr.getValue(),\n refY: refYAttr.getValue(),\n clip,\n clipX,\n clipY\n });\n\n if (viewBox) {\n screen.viewPort.removeCurrent();\n screen.viewPort.setCurrent(width, height);\n }\n }\n\n clearContext(ctx) {\n super.clearContext(ctx);\n this.document.screen.viewPort.removeCurrent();\n }\n /**\r\n * Resize SVG to fit in given size.\r\n * @param width\r\n * @param height\r\n * @param preserveAspectRatio\r\n */\n\n\n resize(width) {\n var height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : width;\n var preserveAspectRatio = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var widthAttr = this.getAttribute('width', true);\n var heightAttr = this.getAttribute('height', true);\n var viewBoxAttr = this.getAttribute('viewBox');\n var styleAttr = this.getAttribute('style');\n var originWidth = widthAttr.getNumber(0);\n var originHeight = heightAttr.getNumber(0);\n\n if (preserveAspectRatio) {\n if (typeof preserveAspectRatio === 'string') {\n this.getAttribute('preserveAspectRatio', true).setValue(preserveAspectRatio);\n } else {\n var preserveAspectRatioAttr = this.getAttribute('preserveAspectRatio');\n\n if (preserveAspectRatioAttr.hasValue()) {\n preserveAspectRatioAttr.setValue(preserveAspectRatioAttr.getString().replace(/^\\s*(\\S.*\\S)\\s*$/, '$1'));\n }\n }\n }\n\n widthAttr.setValue(width);\n heightAttr.setValue(height);\n\n if (!viewBoxAttr.hasValue()) {\n viewBoxAttr.setValue(\"0 0 \".concat(originWidth || width, \" \").concat(originHeight || height));\n }\n\n if (styleAttr.hasValue()) {\n var widthStyle = this.getStyle('width');\n var heightStyle = this.getStyle('height');\n\n if (widthStyle.hasValue()) {\n widthStyle.setValue(\"\".concat(width, \"px\"));\n }\n\n if (heightStyle.hasValue()) {\n heightStyle.setValue(\"\".concat(height, \"px\"));\n }\n }\n }\n\n}\n\nclass RectElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'rect';\n }\n\n path(ctx) {\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width', false, true).getPixels('x');\n var height = this.getStyle('height', false, true).getPixels('y');\n var rxAttr = this.getAttribute('rx');\n var ryAttr = this.getAttribute('ry');\n var rx = rxAttr.getPixels('x');\n var ry = ryAttr.getPixels('y');\n\n if (rxAttr.hasValue() && !ryAttr.hasValue()) {\n ry = rx;\n }\n\n if (ryAttr.hasValue() && !rxAttr.hasValue()) {\n rx = ry;\n }\n\n rx = Math.min(rx, width / 2.0);\n ry = Math.min(ry, height / 2.0);\n\n if (ctx) {\n var KAPPA = 4 * ((Math.sqrt(2) - 1) / 3);\n ctx.beginPath(); // always start the path so we don't fill prior paths\n\n if (height > 0 && width > 0) {\n ctx.moveTo(x + rx, y);\n ctx.lineTo(x + width - rx, y);\n ctx.bezierCurveTo(x + width - rx + KAPPA * rx, y, x + width, y + ry - KAPPA * ry, x + width, y + ry);\n ctx.lineTo(x + width, y + height - ry);\n ctx.bezierCurveTo(x + width, y + height - ry + KAPPA * ry, x + width - rx + KAPPA * rx, y + height, x + width - rx, y + height);\n ctx.lineTo(x + rx, y + height);\n ctx.bezierCurveTo(x + rx - KAPPA * rx, y + height, x, y + height - ry + KAPPA * ry, x, y + height - ry);\n ctx.lineTo(x, y + ry);\n ctx.bezierCurveTo(x, y + ry - KAPPA * ry, x + rx - KAPPA * rx, y, x + rx, y);\n ctx.closePath();\n }\n }\n\n return new BoundingBox(x, y, x + width, y + height);\n }\n\n getMarkers() {\n return null;\n }\n\n}\n\nclass CircleElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'circle';\n }\n\n path(ctx) {\n var cx = this.getAttribute('cx').getPixels('x');\n var cy = this.getAttribute('cy').getPixels('y');\n var r = this.getAttribute('r').getPixels();\n\n if (ctx && r > 0) {\n ctx.beginPath();\n ctx.arc(cx, cy, r, 0, Math.PI * 2, false);\n ctx.closePath();\n }\n\n return new BoundingBox(cx - r, cy - r, cx + r, cy + r);\n }\n\n getMarkers() {\n return null;\n }\n\n}\n\nclass EllipseElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'ellipse';\n }\n\n path(ctx) {\n var KAPPA = 4 * ((Math.sqrt(2) - 1) / 3);\n var rx = this.getAttribute('rx').getPixels('x');\n var ry = this.getAttribute('ry').getPixels('y');\n var cx = this.getAttribute('cx').getPixels('x');\n var cy = this.getAttribute('cy').getPixels('y');\n\n if (ctx && rx > 0 && ry > 0) {\n ctx.beginPath();\n ctx.moveTo(cx + rx, cy);\n ctx.bezierCurveTo(cx + rx, cy + KAPPA * ry, cx + KAPPA * rx, cy + ry, cx, cy + ry);\n ctx.bezierCurveTo(cx - KAPPA * rx, cy + ry, cx - rx, cy + KAPPA * ry, cx - rx, cy);\n ctx.bezierCurveTo(cx - rx, cy - KAPPA * ry, cx - KAPPA * rx, cy - ry, cx, cy - ry);\n ctx.bezierCurveTo(cx + KAPPA * rx, cy - ry, cx + rx, cy - KAPPA * ry, cx + rx, cy);\n ctx.closePath();\n }\n\n return new BoundingBox(cx - rx, cy - ry, cx + rx, cy + ry);\n }\n\n getMarkers() {\n return null;\n }\n\n}\n\nclass LineElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'line';\n }\n\n getPoints() {\n return [new Point(this.getAttribute('x1').getPixels('x'), this.getAttribute('y1').getPixels('y')), new Point(this.getAttribute('x2').getPixels('x'), this.getAttribute('y2').getPixels('y'))];\n }\n\n path(ctx) {\n var [{\n x: x0,\n y: y0\n }, {\n x: x1,\n y: y1\n }] = this.getPoints();\n\n if (ctx) {\n ctx.beginPath();\n ctx.moveTo(x0, y0);\n ctx.lineTo(x1, y1);\n }\n\n return new BoundingBox(x0, y0, x1, y1);\n }\n\n getMarkers() {\n var [p0, p1] = this.getPoints();\n var a = p0.angleTo(p1);\n return [[p0, a], [p1, a]];\n }\n\n}\n\nclass PolylineElement extends PathElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'polyline';\n this.points = [];\n this.points = Point.parsePath(this.getAttribute('points').getString());\n }\n\n path(ctx) {\n var {\n points\n } = this;\n var [{\n x: x0,\n y: y0\n }] = points;\n var boundingBox = new BoundingBox(x0, y0);\n\n if (ctx) {\n ctx.beginPath();\n ctx.moveTo(x0, y0);\n }\n\n points.forEach(_ref => {\n var {\n x,\n y\n } = _ref;\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n });\n return boundingBox;\n }\n\n getMarkers() {\n var {\n points\n } = this;\n var lastIndex = points.length - 1;\n var markers = [];\n points.forEach((point, i) => {\n if (i === lastIndex) {\n return;\n }\n\n markers.push([point, point.angleTo(points[i + 1])]);\n });\n\n if (markers.length > 0) {\n markers.push([points[points.length - 1], markers[markers.length - 1][1]]);\n }\n\n return markers;\n }\n\n}\n\nclass PolygonElement extends PolylineElement {\n constructor() {\n super(...arguments);\n this.type = 'polygon';\n }\n\n path(ctx) {\n var boundingBox = super.path(ctx);\n var [{\n x,\n y\n }] = this.points;\n\n if (ctx) {\n ctx.lineTo(x, y);\n ctx.closePath();\n }\n\n return boundingBox;\n }\n\n}\n\nclass PatternElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'pattern';\n }\n\n createPattern(ctx, _, parentOpacityProp) {\n var width = this.getStyle('width').getPixels('x', true);\n var height = this.getStyle('height').getPixels('y', true); // render me using a temporary svg element\n\n var patternSvg = new SVGElement(this.document, null);\n patternSvg.attributes.viewBox = new Property(this.document, 'viewBox', this.getAttribute('viewBox').getValue());\n patternSvg.attributes.width = new Property(this.document, 'width', \"\".concat(width, \"px\"));\n patternSvg.attributes.height = new Property(this.document, 'height', \"\".concat(height, \"px\"));\n patternSvg.attributes.transform = new Property(this.document, 'transform', this.getAttribute('patternTransform').getValue());\n patternSvg.children = this.children;\n var patternCanvas = this.document.createCanvas(width, height);\n var patternCtx = patternCanvas.getContext('2d');\n var xAttr = this.getAttribute('x');\n var yAttr = this.getAttribute('y');\n\n if (xAttr.hasValue() && yAttr.hasValue()) {\n patternCtx.translate(xAttr.getPixels('x', true), yAttr.getPixels('y', true));\n }\n\n if (parentOpacityProp.hasValue()) {\n this.styles['fill-opacity'] = parentOpacityProp;\n } else {\n Reflect.deleteProperty(this.styles, 'fill-opacity');\n } // render 3x3 grid so when we transform there's no white space on edges\n\n\n for (var x = -1; x <= 1; x++) {\n for (var y = -1; y <= 1; y++) {\n patternCtx.save();\n patternSvg.attributes.x = new Property(this.document, 'x', x * patternCanvas.width);\n patternSvg.attributes.y = new Property(this.document, 'y', y * patternCanvas.height);\n patternSvg.render(patternCtx);\n patternCtx.restore();\n }\n }\n\n var pattern = ctx.createPattern(patternCanvas, 'repeat');\n return pattern;\n }\n\n}\n\nclass MarkerElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'marker';\n }\n\n render(ctx, point, angle) {\n if (!point) {\n return;\n }\n\n var {\n x,\n y\n } = point;\n var orient = this.getAttribute('orient').getString('auto');\n var markerUnits = this.getAttribute('markerUnits').getString('strokeWidth');\n ctx.translate(x, y);\n\n if (orient === 'auto') {\n ctx.rotate(angle);\n }\n\n if (markerUnits === 'strokeWidth') {\n ctx.scale(ctx.lineWidth, ctx.lineWidth);\n }\n\n ctx.save(); // render me using a temporary svg element\n\n var markerSvg = new SVGElement(this.document, null);\n markerSvg.type = this.type;\n markerSvg.attributes.viewBox = new Property(this.document, 'viewBox', this.getAttribute('viewBox').getValue());\n markerSvg.attributes.refX = new Property(this.document, 'refX', this.getAttribute('refX').getValue());\n markerSvg.attributes.refY = new Property(this.document, 'refY', this.getAttribute('refY').getValue());\n markerSvg.attributes.width = new Property(this.document, 'width', this.getAttribute('markerWidth').getValue());\n markerSvg.attributes.height = new Property(this.document, 'height', this.getAttribute('markerHeight').getValue());\n markerSvg.attributes.overflow = new Property(this.document, 'overflow', this.getAttribute('overflow').getValue());\n markerSvg.attributes.fill = new Property(this.document, 'fill', this.getAttribute('fill').getColor('black'));\n markerSvg.attributes.stroke = new Property(this.document, 'stroke', this.getAttribute('stroke').getValue('none'));\n markerSvg.children = this.children;\n markerSvg.render(ctx);\n ctx.restore();\n\n if (markerUnits === 'strokeWidth') {\n ctx.scale(1 / ctx.lineWidth, 1 / ctx.lineWidth);\n }\n\n if (orient === 'auto') {\n ctx.rotate(-angle);\n }\n\n ctx.translate(-x, -y);\n }\n\n}\n\nclass DefsElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'defs';\n }\n\n render() {// NOOP\n }\n\n}\n\nclass GElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'g';\n }\n\n getBoundingBox(ctx) {\n var boundingBox = new BoundingBox();\n this.children.forEach(child => {\n boundingBox.addBoundingBox(child.getBoundingBox(ctx));\n });\n return boundingBox;\n }\n\n}\n\nclass GradientElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.attributesToInherit = ['gradientUnits'];\n this.stops = [];\n var {\n stops,\n children\n } = this;\n children.forEach(child => {\n if (child.type === 'stop') {\n stops.push(child);\n }\n });\n }\n\n getGradientUnits() {\n return this.getAttribute('gradientUnits').getString('objectBoundingBox');\n }\n\n createGradient(ctx, element, parentOpacityProp) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias, consistent-this\n var stopsContainer = this;\n\n if (this.getHrefAttribute().hasValue()) {\n stopsContainer = this.getHrefAttribute().getDefinition();\n this.inheritStopContainer(stopsContainer);\n }\n\n var {\n stops\n } = stopsContainer;\n var gradient = this.getGradient(ctx, element);\n\n if (!gradient) {\n return this.addParentOpacity(parentOpacityProp, stops[stops.length - 1].color);\n }\n\n stops.forEach(stop => {\n gradient.addColorStop(stop.offset, this.addParentOpacity(parentOpacityProp, stop.color));\n });\n\n if (this.getAttribute('gradientTransform').hasValue()) {\n // render as transformed pattern on temporary canvas\n var {\n document\n } = this;\n var {\n MAX_VIRTUAL_PIXELS,\n viewPort\n } = document.screen;\n var [rootView] = viewPort.viewPorts;\n var rect = new RectElement(document, null);\n rect.attributes.x = new Property(document, 'x', -MAX_VIRTUAL_PIXELS / 3.0);\n rect.attributes.y = new Property(document, 'y', -MAX_VIRTUAL_PIXELS / 3.0);\n rect.attributes.width = new Property(document, 'width', MAX_VIRTUAL_PIXELS);\n rect.attributes.height = new Property(document, 'height', MAX_VIRTUAL_PIXELS);\n var group = new GElement(document, null);\n group.attributes.transform = new Property(document, 'transform', this.getAttribute('gradientTransform').getValue());\n group.children = [rect];\n var patternSvg = new SVGElement(document, null);\n patternSvg.attributes.x = new Property(document, 'x', 0);\n patternSvg.attributes.y = new Property(document, 'y', 0);\n patternSvg.attributes.width = new Property(document, 'width', rootView.width);\n patternSvg.attributes.height = new Property(document, 'height', rootView.height);\n patternSvg.children = [group];\n var patternCanvas = document.createCanvas(rootView.width, rootView.height);\n var patternCtx = patternCanvas.getContext('2d');\n patternCtx.fillStyle = gradient;\n patternSvg.render(patternCtx);\n return patternCtx.createPattern(patternCanvas, 'no-repeat');\n }\n\n return gradient;\n }\n\n inheritStopContainer(stopsContainer) {\n this.attributesToInherit.forEach(attributeToInherit => {\n if (!this.getAttribute(attributeToInherit).hasValue() && stopsContainer.getAttribute(attributeToInherit).hasValue()) {\n this.getAttribute(attributeToInherit, true).setValue(stopsContainer.getAttribute(attributeToInherit).getValue());\n }\n });\n }\n\n addParentOpacity(parentOpacityProp, color) {\n if (parentOpacityProp.hasValue()) {\n var colorProp = new Property(this.document, 'color', color);\n return colorProp.addOpacity(parentOpacityProp).getColor();\n }\n\n return color;\n }\n\n}\n\nclass LinearGradientElement extends GradientElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'linearGradient';\n this.attributesToInherit.push('x1', 'y1', 'x2', 'y2');\n }\n\n getGradient(ctx, element) {\n var isBoundingBoxUnits = this.getGradientUnits() === 'objectBoundingBox';\n var boundingBox = isBoundingBoxUnits ? element.getBoundingBox(ctx) : null;\n\n if (isBoundingBoxUnits && !boundingBox) {\n return null;\n }\n\n if (!this.getAttribute('x1').hasValue() && !this.getAttribute('y1').hasValue() && !this.getAttribute('x2').hasValue() && !this.getAttribute('y2').hasValue()) {\n this.getAttribute('x1', true).setValue(0);\n this.getAttribute('y1', true).setValue(0);\n this.getAttribute('x2', true).setValue(1);\n this.getAttribute('y2', true).setValue(0);\n }\n\n var x1 = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('x1').getNumber() : this.getAttribute('x1').getPixels('x');\n var y1 = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('y1').getNumber() : this.getAttribute('y1').getPixels('y');\n var x2 = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('x2').getNumber() : this.getAttribute('x2').getPixels('x');\n var y2 = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('y2').getNumber() : this.getAttribute('y2').getPixels('y');\n\n if (x1 === x2 && y1 === y2) {\n return null;\n }\n\n return ctx.createLinearGradient(x1, y1, x2, y2);\n }\n\n}\n\nclass RadialGradientElement extends GradientElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'radialGradient';\n this.attributesToInherit.push('cx', 'cy', 'r', 'fx', 'fy', 'fr');\n }\n\n getGradient(ctx, element) {\n var isBoundingBoxUnits = this.getGradientUnits() === 'objectBoundingBox';\n var boundingBox = element.getBoundingBox(ctx);\n\n if (isBoundingBoxUnits && !boundingBox) {\n return null;\n }\n\n if (!this.getAttribute('cx').hasValue()) {\n this.getAttribute('cx', true).setValue('50%');\n }\n\n if (!this.getAttribute('cy').hasValue()) {\n this.getAttribute('cy', true).setValue('50%');\n }\n\n if (!this.getAttribute('r').hasValue()) {\n this.getAttribute('r', true).setValue('50%');\n }\n\n var cx = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('cx').getNumber() : this.getAttribute('cx').getPixels('x');\n var cy = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('cy').getNumber() : this.getAttribute('cy').getPixels('y');\n var fx = cx;\n var fy = cy;\n\n if (this.getAttribute('fx').hasValue()) {\n fx = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('fx').getNumber() : this.getAttribute('fx').getPixels('x');\n }\n\n if (this.getAttribute('fy').hasValue()) {\n fy = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('fy').getNumber() : this.getAttribute('fy').getPixels('y');\n }\n\n var r = isBoundingBoxUnits ? (boundingBox.width + boundingBox.height) / 2.0 * this.getAttribute('r').getNumber() : this.getAttribute('r').getPixels();\n var fr = this.getAttribute('fr').getPixels();\n return ctx.createRadialGradient(fx, fy, fr, cx, cy, r);\n }\n\n}\n\nclass StopElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'stop';\n var offset = Math.max(0, Math.min(1, this.getAttribute('offset').getNumber()));\n var stopOpacity = this.getStyle('stop-opacity');\n var stopColor = this.getStyle('stop-color', true);\n\n if (stopColor.getString() === '') {\n stopColor.setValue('#000');\n }\n\n if (stopOpacity.hasValue()) {\n stopColor = stopColor.addOpacity(stopOpacity);\n }\n\n this.offset = offset;\n this.color = stopColor.getColor();\n }\n\n}\n\nclass AnimateElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'animate';\n this.duration = 0;\n this.initialValue = null;\n this.initialUnits = '';\n this.removed = false;\n this.frozen = false;\n document.screen.animations.push(this);\n this.begin = this.getAttribute('begin').getMilliseconds();\n this.maxDuration = this.begin + this.getAttribute('dur').getMilliseconds();\n this.from = this.getAttribute('from');\n this.to = this.getAttribute('to');\n this.values = new Property(document, 'values', null);\n var valuesAttr = this.getAttribute('values');\n\n if (valuesAttr.hasValue()) {\n this.values.setValue(valuesAttr.getString().split(';'));\n }\n }\n\n getProperty() {\n var attributeType = this.getAttribute('attributeType').getString();\n var attributeName = this.getAttribute('attributeName').getString();\n\n if (attributeType === 'CSS') {\n return this.parent.getStyle(attributeName, true);\n }\n\n return this.parent.getAttribute(attributeName, true);\n }\n\n calcValue() {\n var {\n initialUnits\n } = this;\n var {\n progress,\n from,\n to\n } = this.getProgress(); // tween value linearly\n\n var newValue = from.getNumber() + (to.getNumber() - from.getNumber()) * progress;\n\n if (initialUnits === '%') {\n newValue *= 100.0; // numValue() returns 0-1 whereas properties are 0-100\n }\n\n return \"\".concat(newValue).concat(initialUnits);\n }\n\n update(delta) {\n var {\n parent\n } = this;\n var prop = this.getProperty(); // set initial value\n\n if (!this.initialValue) {\n this.initialValue = prop.getString();\n this.initialUnits = prop.getUnits();\n } // if we're past the end time\n\n\n if (this.duration > this.maxDuration) {\n var fill = this.getAttribute('fill').getString('remove'); // loop for indefinitely repeating animations\n\n if (this.getAttribute('repeatCount').getString() === 'indefinite' || this.getAttribute('repeatDur').getString() === 'indefinite') {\n this.duration = 0;\n } else if (fill === 'freeze' && !this.frozen) {\n this.frozen = true;\n parent.animationFrozen = true;\n parent.animationFrozenValue = prop.getString();\n } else if (fill === 'remove' && !this.removed) {\n this.removed = true;\n prop.setValue(parent.animationFrozen ? parent.animationFrozenValue : this.initialValue);\n return true;\n }\n\n return false;\n }\n\n this.duration += delta; // if we're past the begin time\n\n var updated = false;\n\n if (this.begin < this.duration) {\n var newValue = this.calcValue(); // tween\n\n var typeAttr = this.getAttribute('type');\n\n if (typeAttr.hasValue()) {\n // for transform, etc.\n var type = typeAttr.getString();\n newValue = \"\".concat(type, \"(\").concat(newValue, \")\");\n }\n\n prop.setValue(newValue);\n updated = true;\n }\n\n return updated;\n }\n\n getProgress() {\n var {\n document,\n values\n } = this;\n var result = {\n progress: (this.duration - this.begin) / (this.maxDuration - this.begin)\n };\n\n if (values.hasValue()) {\n var p = result.progress * (values.getValue().length - 1);\n var lb = Math.floor(p);\n var ub = Math.ceil(p);\n result.from = new Property(document, 'from', parseFloat(values.getValue()[lb]));\n result.to = new Property(document, 'to', parseFloat(values.getValue()[ub]));\n result.progress = (p - lb) / (ub - lb);\n } else {\n result.from = this.from;\n result.to = this.to;\n }\n\n return result;\n }\n\n}\n\nclass AnimateColorElement extends AnimateElement {\n constructor() {\n super(...arguments);\n this.type = 'animateColor';\n }\n\n calcValue() {\n var {\n progress,\n from,\n to\n } = this.getProgress();\n var colorFrom = new RGBColor(from.getColor());\n var colorTo = new RGBColor(to.getColor());\n\n if (colorFrom.ok && colorTo.ok) {\n // tween color linearly\n var r = colorFrom.r + (colorTo.r - colorFrom.r) * progress;\n var g = colorFrom.g + (colorTo.g - colorFrom.g) * progress;\n var b = colorFrom.b + (colorTo.b - colorFrom.b) * progress; // ? alpha\n\n return \"rgb(\".concat(Math.floor(r), \", \").concat(Math.floor(g), \", \").concat(Math.floor(b), \")\");\n }\n\n return this.getAttribute('from').getColor();\n }\n\n}\n\nclass AnimateTransformElement extends AnimateElement {\n constructor() {\n super(...arguments);\n this.type = 'animateTransform';\n }\n\n calcValue() {\n var {\n progress,\n from,\n to\n } = this.getProgress(); // tween value linearly\n\n var transformFrom = toNumbers(from.getString());\n var transformTo = toNumbers(to.getString());\n var newValue = transformFrom.map((from, i) => {\n var to = transformTo[i];\n return from + (to - from) * progress;\n }).join(' ');\n return newValue;\n }\n\n}\n\nclass FontElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'font';\n this.glyphs = {};\n this.horizAdvX = this.getAttribute('horiz-adv-x').getNumber();\n var {\n definitions\n } = document;\n var {\n children\n } = this;\n\n for (var child of children) {\n switch (child.type) {\n case 'font-face':\n {\n this.fontFace = child;\n var fontFamilyStyle = child.getStyle('font-family');\n\n if (fontFamilyStyle.hasValue()) {\n definitions[fontFamilyStyle.getString()] = this;\n }\n\n break;\n }\n\n case 'missing-glyph':\n this.missingGlyph = child;\n break;\n\n case 'glyph':\n {\n var glyph = child;\n\n if (glyph.arabicForm) {\n this.isRTL = true;\n this.isArabic = true;\n\n if (typeof this.glyphs[glyph.unicode] === 'undefined') {\n this.glyphs[glyph.unicode] = {};\n }\n\n this.glyphs[glyph.unicode][glyph.arabicForm] = glyph;\n } else {\n this.glyphs[glyph.unicode] = glyph;\n }\n\n break;\n }\n }\n }\n }\n\n render() {// NO RENDER\n }\n\n}\n\nclass FontFaceElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'font-face';\n this.ascent = this.getAttribute('ascent').getNumber();\n this.descent = this.getAttribute('descent').getNumber();\n this.unitsPerEm = this.getAttribute('units-per-em').getNumber();\n }\n\n}\n\nclass MissingGlyphElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'missing-glyph';\n this.horizAdvX = 0;\n }\n\n}\n\nclass TRefElement extends TextElement {\n constructor() {\n super(...arguments);\n this.type = 'tref';\n }\n\n getText() {\n var element = this.getHrefAttribute().getDefinition();\n\n if (element) {\n var firstChild = element.children[0];\n\n if (firstChild) {\n return firstChild.getText();\n }\n }\n\n return '';\n }\n\n}\n\nclass AElement extends TextElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'a';\n var {\n childNodes\n } = node;\n var firstChild = childNodes[0];\n var hasText = childNodes.length > 0 && Array.from(childNodes).every(node => node.nodeType === 3);\n this.hasText = hasText;\n this.text = hasText ? this.getTextFromNode(firstChild) : '';\n }\n\n getText() {\n return this.text;\n }\n\n renderChildren(ctx) {\n if (this.hasText) {\n // render as text element\n super.renderChildren(ctx);\n var {\n document,\n x,\n y\n } = this;\n var {\n mouse\n } = document.screen;\n var fontSize = new Property(document, 'fontSize', Font.parse(document.ctx.font).fontSize); // Do not calc bounding box if mouse is not working.\n\n if (mouse.isWorking()) {\n mouse.checkBoundingBox(this, new BoundingBox(x, y - fontSize.getPixels('y'), x + this.measureText(ctx), y));\n }\n } else if (this.children.length > 0) {\n // render as temporary group\n var g = new GElement(this.document, null);\n g.children = this.children;\n g.parent = this;\n g.render(ctx);\n }\n }\n\n onClick() {\n var {\n window\n } = this.document;\n\n if (window) {\n window.open(this.getHrefAttribute().getString());\n }\n }\n\n onMouseMove() {\n var ctx = this.document.ctx;\n ctx.canvas.style.cursor = 'pointer';\n }\n\n}\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nclass TextPathElement extends TextElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'textPath';\n this.textWidth = 0;\n this.textHeight = 0;\n this.pathLength = -1;\n this.glyphInfo = null;\n this.letterSpacingCache = [];\n this.measuresCache = new Map([['', 0]]);\n var pathElement = this.getHrefAttribute().getDefinition();\n this.text = this.getTextFromNode();\n this.dataArray = this.parsePathData(pathElement);\n }\n\n getText() {\n return this.text;\n }\n\n path(ctx) {\n var {\n dataArray\n } = this;\n\n if (ctx) {\n ctx.beginPath();\n }\n\n dataArray.forEach(_ref => {\n var {\n type,\n points\n } = _ref;\n\n switch (type) {\n case PathParser.LINE_TO:\n if (ctx) {\n ctx.lineTo(points[0], points[1]);\n }\n\n break;\n\n case PathParser.MOVE_TO:\n if (ctx) {\n ctx.moveTo(points[0], points[1]);\n }\n\n break;\n\n case PathParser.CURVE_TO:\n if (ctx) {\n ctx.bezierCurveTo(points[0], points[1], points[2], points[3], points[4], points[5]);\n }\n\n break;\n\n case PathParser.QUAD_TO:\n if (ctx) {\n ctx.quadraticCurveTo(points[0], points[1], points[2], points[3]);\n }\n\n break;\n\n case PathParser.ARC:\n {\n var [cx, cy, rx, ry, theta, dTheta, psi, fs] = points;\n var r = rx > ry ? rx : ry;\n var scaleX = rx > ry ? 1 : rx / ry;\n var scaleY = rx > ry ? ry / rx : 1;\n\n if (ctx) {\n ctx.translate(cx, cy);\n ctx.rotate(psi);\n ctx.scale(scaleX, scaleY);\n ctx.arc(0, 0, r, theta, theta + dTheta, Boolean(1 - fs));\n ctx.scale(1 / scaleX, 1 / scaleY);\n ctx.rotate(-psi);\n ctx.translate(-cx, -cy);\n }\n\n break;\n }\n\n case PathParser.CLOSE_PATH:\n if (ctx) {\n ctx.closePath();\n }\n\n break;\n }\n });\n }\n\n renderChildren(ctx) {\n this.setTextData(ctx);\n ctx.save();\n var textDecoration = this.parent.getStyle('text-decoration').getString();\n var fontSize = this.getFontSize();\n var {\n glyphInfo\n } = this;\n var fill = ctx.fillStyle;\n\n if (textDecoration === 'underline') {\n ctx.beginPath();\n }\n\n glyphInfo.forEach((glyph, i) => {\n var {\n p0,\n p1,\n rotation,\n text: partialText\n } = glyph;\n ctx.save();\n ctx.translate(p0.x, p0.y);\n ctx.rotate(rotation);\n\n if (ctx.fillStyle) {\n ctx.fillText(partialText, 0, 0);\n }\n\n if (ctx.strokeStyle) {\n ctx.strokeText(partialText, 0, 0);\n }\n\n ctx.restore();\n\n if (textDecoration === 'underline') {\n if (i === 0) {\n ctx.moveTo(p0.x, p0.y + fontSize / 8);\n }\n\n ctx.lineTo(p1.x, p1.y + fontSize / 5);\n } // // To assist with debugging visually, uncomment following\n //\n // ctx.beginPath();\n // if (i % 2)\n // \tctx.strokeStyle = 'red';\n // else\n // \tctx.strokeStyle = 'green';\n // ctx.moveTo(p0.x, p0.y);\n // ctx.lineTo(p1.x, p1.y);\n // ctx.stroke();\n // ctx.closePath();\n\n });\n\n if (textDecoration === 'underline') {\n ctx.lineWidth = fontSize / 20;\n ctx.strokeStyle = fill;\n ctx.stroke();\n ctx.closePath();\n }\n\n ctx.restore();\n }\n\n getLetterSpacingAt() {\n var idx = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n return this.letterSpacingCache[idx] || 0;\n }\n\n findSegmentToFitChar(ctx, anchor, textFullWidth, fullPathWidth, spacesNumber, inputOffset, dy, c, charI) {\n var offset = inputOffset;\n var glyphWidth = this.measureText(ctx, c);\n\n if (c === ' ' && anchor === 'justify' && textFullWidth < fullPathWidth) {\n glyphWidth += (fullPathWidth - textFullWidth) / spacesNumber;\n }\n\n if (charI > -1) {\n offset += this.getLetterSpacingAt(charI);\n }\n\n var splineStep = this.textHeight / 20;\n var p0 = this.getEquidistantPointOnPath(offset, splineStep, 0);\n var p1 = this.getEquidistantPointOnPath(offset + glyphWidth, splineStep, 0);\n var segment = {\n p0,\n p1\n };\n var rotation = p0 && p1 ? Math.atan2(p1.y - p0.y, p1.x - p0.x) : 0;\n\n if (dy) {\n var dyX = Math.cos(Math.PI / 2 + rotation) * dy;\n var dyY = Math.cos(-rotation) * dy;\n segment.p0 = _objectSpread$2(_objectSpread$2({}, p0), {}, {\n x: p0.x + dyX,\n y: p0.y + dyY\n });\n segment.p1 = _objectSpread$2(_objectSpread$2({}, p1), {}, {\n x: p1.x + dyX,\n y: p1.y + dyY\n });\n }\n\n offset += glyphWidth;\n return {\n offset,\n segment,\n rotation\n };\n }\n\n measureText(ctx, text) {\n var {\n measuresCache\n } = this;\n var targetText = text || this.getText();\n\n if (measuresCache.has(targetText)) {\n return measuresCache.get(targetText);\n }\n\n var measure = this.measureTargetText(ctx, targetText);\n measuresCache.set(targetText, measure);\n return measure;\n } // This method supposes what all custom fonts already loaded.\n // If some font will be loaded after this method call, will not be rendered correctly.\n // You need to call this method manually to update glyphs cache.\n\n\n setTextData(ctx) {\n if (this.glyphInfo) {\n return;\n }\n\n var renderText = this.getText();\n var chars = renderText.split('');\n var spacesNumber = renderText.split(' ').length - 1;\n var dx = this.parent.getAttribute('dx').split().map(_ => _.getPixels('x'));\n var dy = this.parent.getAttribute('dy').getPixels('y');\n var anchor = this.parent.getStyle('text-anchor').getString('start');\n var thisSpacing = this.getStyle('letter-spacing');\n var parentSpacing = this.parent.getStyle('letter-spacing');\n var letterSpacing = 0;\n\n if (!thisSpacing.hasValue() || thisSpacing.getValue() === 'inherit') {\n letterSpacing = parentSpacing.getPixels();\n } else if (thisSpacing.hasValue()) {\n if (thisSpacing.getValue() !== 'initial' && thisSpacing.getValue() !== 'unset') {\n letterSpacing = thisSpacing.getPixels();\n }\n } // fill letter-spacing cache\n\n\n var letterSpacingCache = [];\n var textLen = renderText.length;\n this.letterSpacingCache = letterSpacingCache;\n\n for (var i = 0; i < textLen; i++) {\n letterSpacingCache.push(typeof dx[i] !== 'undefined' ? dx[i] : letterSpacing);\n }\n\n var dxSum = letterSpacingCache.reduce((acc, cur, i) => i === 0 ? 0 : acc + cur || 0, 0);\n var textWidth = this.measureText(ctx);\n var textFullWidth = Math.max(textWidth + dxSum, 0);\n this.textWidth = textWidth;\n this.textHeight = this.getFontSize();\n this.glyphInfo = [];\n var fullPathWidth = this.getPathLength();\n var startOffset = this.getStyle('startOffset').getNumber(0) * fullPathWidth;\n var offset = 0;\n\n if (anchor === 'middle' || anchor === 'center') {\n offset = -textFullWidth / 2;\n }\n\n if (anchor === 'end' || anchor === 'right') {\n offset = -textFullWidth;\n }\n\n offset += startOffset;\n chars.forEach((char, i) => {\n // Find such segment what distance between p0 and p1 is approx. width of glyph\n var {\n offset: nextOffset,\n segment,\n rotation\n } = this.findSegmentToFitChar(ctx, anchor, textFullWidth, fullPathWidth, spacesNumber, offset, dy, char, i);\n offset = nextOffset;\n\n if (!segment.p0 || !segment.p1) {\n return;\n } // const width = this.getLineLength(\n // \tsegment.p0.x,\n // \tsegment.p0.y,\n // \tsegment.p1.x,\n // \tsegment.p1.y\n // );\n // Note: Since glyphs are rendered one at a time, any kerning pair data built into the font will not be used.\n // Can foresee having a rough pair table built in that the developer can override as needed.\n // Or use \"dx\" attribute of the node as a naive replacement\n // const kern = 0;\n // placeholder for future implementation\n // const midpoint = this.getPointOnLine(\n // \tkern + width / 2.0,\n // \tsegment.p0.x, segment.p0.y, segment.p1.x, segment.p1.y\n // );\n\n\n this.glyphInfo.push({\n // transposeX: midpoint.x,\n // transposeY: midpoint.y,\n text: chars[i],\n p0: segment.p0,\n p1: segment.p1,\n rotation\n });\n });\n }\n\n parsePathData(path) {\n this.pathLength = -1; // reset path length\n\n if (!path) {\n return [];\n }\n\n var pathCommands = [];\n var {\n pathParser\n } = path;\n pathParser.reset(); // convert l, H, h, V, and v to L\n\n while (!pathParser.isEnd()) {\n var {\n current\n } = pathParser;\n var startX = current ? current.x : 0;\n var startY = current ? current.y : 0;\n var command = pathParser.next();\n var nextCommandType = command.type;\n var points = [];\n\n switch (command.type) {\n case PathParser.MOVE_TO:\n this.pathM(pathParser, points);\n break;\n\n case PathParser.LINE_TO:\n nextCommandType = this.pathL(pathParser, points);\n break;\n\n case PathParser.HORIZ_LINE_TO:\n nextCommandType = this.pathH(pathParser, points);\n break;\n\n case PathParser.VERT_LINE_TO:\n nextCommandType = this.pathV(pathParser, points);\n break;\n\n case PathParser.CURVE_TO:\n this.pathC(pathParser, points);\n break;\n\n case PathParser.SMOOTH_CURVE_TO:\n nextCommandType = this.pathS(pathParser, points);\n break;\n\n case PathParser.QUAD_TO:\n this.pathQ(pathParser, points);\n break;\n\n case PathParser.SMOOTH_QUAD_TO:\n nextCommandType = this.pathT(pathParser, points);\n break;\n\n case PathParser.ARC:\n points = this.pathA(pathParser);\n break;\n\n case PathParser.CLOSE_PATH:\n PathElement.pathZ(pathParser);\n break;\n }\n\n if (command.type !== PathParser.CLOSE_PATH) {\n pathCommands.push({\n type: nextCommandType,\n points,\n start: {\n x: startX,\n y: startY\n },\n pathLength: this.calcLength(startX, startY, nextCommandType, points)\n });\n } else {\n pathCommands.push({\n type: PathParser.CLOSE_PATH,\n points: [],\n pathLength: 0\n });\n }\n }\n\n return pathCommands;\n }\n\n pathM(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathM(pathParser).point;\n points.push(x, y);\n }\n\n pathL(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathL(pathParser).point;\n points.push(x, y);\n return PathParser.LINE_TO;\n }\n\n pathH(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathH(pathParser).point;\n points.push(x, y);\n return PathParser.LINE_TO;\n }\n\n pathV(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathV(pathParser).point;\n points.push(x, y);\n return PathParser.LINE_TO;\n }\n\n pathC(pathParser, points) {\n var {\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathC(pathParser);\n points.push(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n\n pathS(pathParser, points) {\n var {\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathS(pathParser);\n points.push(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n return PathParser.CURVE_TO;\n }\n\n pathQ(pathParser, points) {\n var {\n controlPoint,\n currentPoint\n } = PathElement.pathQ(pathParser);\n points.push(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n\n pathT(pathParser, points) {\n var {\n controlPoint,\n currentPoint\n } = PathElement.pathT(pathParser);\n points.push(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n return PathParser.QUAD_TO;\n }\n\n pathA(pathParser) {\n var {\n rX,\n rY,\n sweepFlag,\n xAxisRotation,\n centp,\n a1,\n ad\n } = PathElement.pathA(pathParser);\n\n if (sweepFlag === 0 && ad > 0) {\n ad -= 2 * Math.PI;\n }\n\n if (sweepFlag === 1 && ad < 0) {\n ad += 2 * Math.PI;\n }\n\n return [centp.x, centp.y, rX, rY, a1, ad, xAxisRotation, sweepFlag];\n }\n\n calcLength(x, y, commandType, points) {\n var len = 0;\n var p1 = null;\n var p2 = null;\n var t = 0;\n\n switch (commandType) {\n case PathParser.LINE_TO:\n return this.getLineLength(x, y, points[0], points[1]);\n\n case PathParser.CURVE_TO:\n // Approximates by breaking curve into 100 line segments\n len = 0.0;\n p1 = this.getPointOnCubicBezier(0, x, y, points[0], points[1], points[2], points[3], points[4], points[5]);\n\n for (t = 0.01; t <= 1; t += 0.01) {\n p2 = this.getPointOnCubicBezier(t, x, y, points[0], points[1], points[2], points[3], points[4], points[5]);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n\n return len;\n\n case PathParser.QUAD_TO:\n // Approximates by breaking curve into 100 line segments\n len = 0.0;\n p1 = this.getPointOnQuadraticBezier(0, x, y, points[0], points[1], points[2], points[3]);\n\n for (t = 0.01; t <= 1; t += 0.01) {\n p2 = this.getPointOnQuadraticBezier(t, x, y, points[0], points[1], points[2], points[3]);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n\n return len;\n\n case PathParser.ARC:\n {\n // Approximates by breaking curve into line segments\n len = 0.0;\n var start = points[4]; // 4 = theta\n\n var dTheta = points[5]; // 5 = dTheta\n\n var end = points[4] + dTheta;\n var inc = Math.PI / 180.0; // 1 degree resolution\n\n if (Math.abs(start - end) < inc) {\n inc = Math.abs(start - end);\n } // Note: for purpose of calculating arc length, not going to worry about rotating X-axis by angle psi\n\n\n p1 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], start, 0);\n\n if (dTheta < 0) {\n // clockwise\n for (t = start - inc; t > end; t -= inc) {\n p2 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], t, 0);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n } else {\n // counter-clockwise\n for (t = start + inc; t < end; t += inc) {\n p2 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], t, 0);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n }\n\n p2 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], end, 0);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n return len;\n }\n }\n\n return 0;\n }\n\n getPointOnLine(dist, p1x, p1y, p2x, p2y) {\n var fromX = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : p1x;\n var fromY = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : p1y;\n var m = (p2y - p1y) / (p2x - p1x + PSEUDO_ZERO);\n var run = Math.sqrt(dist * dist / (1 + m * m));\n\n if (p2x < p1x) {\n run *= -1;\n }\n\n var rise = m * run;\n var pt = null;\n\n if (p2x === p1x) {\n // vertical line\n pt = {\n x: fromX,\n y: fromY + rise\n };\n } else if ((fromY - p1y) / (fromX - p1x + PSEUDO_ZERO) === m) {\n pt = {\n x: fromX + run,\n y: fromY + rise\n };\n } else {\n var ix = 0;\n var iy = 0;\n var len = this.getLineLength(p1x, p1y, p2x, p2y);\n\n if (len < PSEUDO_ZERO) {\n return null;\n }\n\n var u = (fromX - p1x) * (p2x - p1x) + (fromY - p1y) * (p2y - p1y);\n u /= len * len;\n ix = p1x + u * (p2x - p1x);\n iy = p1y + u * (p2y - p1y);\n var pRise = this.getLineLength(fromX, fromY, ix, iy);\n var pRun = Math.sqrt(dist * dist - pRise * pRise);\n run = Math.sqrt(pRun * pRun / (1 + m * m));\n\n if (p2x < p1x) {\n run *= -1;\n }\n\n rise = m * run;\n pt = {\n x: ix + run,\n y: iy + rise\n };\n }\n\n return pt;\n }\n\n getPointOnPath(distance) {\n var fullLen = this.getPathLength();\n var cumulativePathLength = 0;\n var p = null;\n\n if (distance < -0.00005 || distance - 0.00005 > fullLen) {\n return null;\n }\n\n var {\n dataArray\n } = this;\n\n for (var command of dataArray) {\n if (command && (command.pathLength < 0.00005 || cumulativePathLength + command.pathLength + 0.00005 < distance)) {\n cumulativePathLength += command.pathLength;\n continue;\n }\n\n var delta = distance - cumulativePathLength;\n var currentT = 0;\n\n switch (command.type) {\n case PathParser.LINE_TO:\n p = this.getPointOnLine(delta, command.start.x, command.start.y, command.points[0], command.points[1], command.start.x, command.start.y);\n break;\n\n case PathParser.ARC:\n {\n var start = command.points[4]; // 4 = theta\n\n var dTheta = command.points[5]; // 5 = dTheta\n\n var end = command.points[4] + dTheta;\n currentT = start + delta / command.pathLength * dTheta;\n\n if (dTheta < 0 && currentT < end || dTheta >= 0 && currentT > end) {\n break;\n }\n\n p = this.getPointOnEllipticalArc(command.points[0], command.points[1], command.points[2], command.points[3], currentT, command.points[6]);\n break;\n }\n\n case PathParser.CURVE_TO:\n currentT = delta / command.pathLength;\n\n if (currentT > 1) {\n currentT = 1;\n }\n\n p = this.getPointOnCubicBezier(currentT, command.start.x, command.start.y, command.points[0], command.points[1], command.points[2], command.points[3], command.points[4], command.points[5]);\n break;\n\n case PathParser.QUAD_TO:\n currentT = delta / command.pathLength;\n\n if (currentT > 1) {\n currentT = 1;\n }\n\n p = this.getPointOnQuadraticBezier(currentT, command.start.x, command.start.y, command.points[0], command.points[1], command.points[2], command.points[3]);\n break;\n }\n\n if (p) {\n return p;\n }\n\n break;\n }\n\n return null;\n }\n\n getLineLength(x1, y1, x2, y2) {\n return Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));\n }\n\n getPathLength() {\n if (this.pathLength === -1) {\n this.pathLength = this.dataArray.reduce((length, command) => command.pathLength > 0 ? length + command.pathLength : length, 0);\n }\n\n return this.pathLength;\n }\n\n getPointOnCubicBezier(pct, p1x, p1y, p2x, p2y, p3x, p3y, p4x, p4y) {\n var x = p4x * CB1(pct) + p3x * CB2(pct) + p2x * CB3(pct) + p1x * CB4(pct);\n var y = p4y * CB1(pct) + p3y * CB2(pct) + p2y * CB3(pct) + p1y * CB4(pct);\n return {\n x,\n y\n };\n }\n\n getPointOnQuadraticBezier(pct, p1x, p1y, p2x, p2y, p3x, p3y) {\n var x = p3x * QB1(pct) + p2x * QB2(pct) + p1x * QB3(pct);\n var y = p3y * QB1(pct) + p2y * QB2(pct) + p1y * QB3(pct);\n return {\n x,\n y\n };\n }\n\n getPointOnEllipticalArc(cx, cy, rx, ry, theta, psi) {\n var cosPsi = Math.cos(psi);\n var sinPsi = Math.sin(psi);\n var pt = {\n x: rx * Math.cos(theta),\n y: ry * Math.sin(theta)\n };\n return {\n x: cx + (pt.x * cosPsi - pt.y * sinPsi),\n y: cy + (pt.x * sinPsi + pt.y * cosPsi)\n };\n } // TODO need some optimisations. possibly build cache only for curved segments?\n\n\n buildEquidistantCache(inputStep, inputPrecision) {\n var fullLen = this.getPathLength();\n var precision = inputPrecision || 0.25; // accuracy vs performance\n\n var step = inputStep || fullLen / 100;\n\n if (!this.equidistantCache || this.equidistantCache.step !== step || this.equidistantCache.precision !== precision) {\n // Prepare cache\n this.equidistantCache = {\n step,\n precision,\n points: []\n }; // Calculate points\n\n var s = 0;\n\n for (var l = 0; l <= fullLen; l += precision) {\n var p0 = this.getPointOnPath(l);\n var p1 = this.getPointOnPath(l + precision);\n\n if (!p0 || !p1) {\n continue;\n }\n\n s += this.getLineLength(p0.x, p0.y, p1.x, p1.y);\n\n if (s >= step) {\n this.equidistantCache.points.push({\n x: p0.x,\n y: p0.y,\n distance: l\n });\n s -= step;\n }\n }\n }\n }\n\n getEquidistantPointOnPath(targetDistance, step, precision) {\n this.buildEquidistantCache(step, precision);\n\n if (targetDistance < 0 || targetDistance - this.getPathLength() > 0.00005) {\n return null;\n }\n\n var idx = Math.round(targetDistance / this.getPathLength() * (this.equidistantCache.points.length - 1));\n return this.equidistantCache.points[idx] || null;\n }\n\n}\n\nvar dataUriRegex = /^\\s*data:(([^/,;]+\\/[^/,;]+)(?:;([^,;=]+=[^,;=]+))?)?(?:;(base64))?,(.*)$/i;\nclass ImageElement extends RenderedElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'image';\n this.loaded = false;\n var href = this.getHrefAttribute().getString();\n\n if (!href) {\n return;\n }\n\n var isSvg = href.endsWith('.svg') || /^\\s*data:image\\/svg\\+xml/i.test(href);\n document.images.push(this);\n\n if (!isSvg) {\n void this.loadImage(href);\n } else {\n void this.loadSvg(href);\n }\n\n this.isSvg = isSvg;\n }\n\n loadImage(href) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n try {\n var image = yield _this.document.createImage(href);\n _this.image = image;\n } catch (err) {\n console.error(\"Error while loading image \\\"\".concat(href, \"\\\":\"), err);\n }\n\n _this.loaded = true;\n })();\n }\n\n loadSvg(href) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var match = dataUriRegex.exec(href);\n\n if (match) {\n var data = match[5];\n\n if (match[4] === 'base64') {\n _this2.image = atob(data);\n } else {\n _this2.image = decodeURIComponent(data);\n }\n } else {\n try {\n var response = yield _this2.document.fetch(href);\n var svg = yield response.text();\n _this2.image = svg;\n } catch (err) {\n console.error(\"Error while loading image \\\"\".concat(href, \"\\\":\"), err);\n }\n }\n\n _this2.loaded = true;\n })();\n }\n\n renderChildren(ctx) {\n var {\n document,\n image,\n loaded\n } = this;\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width').getPixels('x');\n var height = this.getStyle('height').getPixels('y');\n\n if (!loaded || !image || !width || !height) {\n return;\n }\n\n ctx.save();\n ctx.translate(x, y);\n\n if (this.isSvg) {\n var subDocument = document.canvg.forkString(ctx, this.image, {\n ignoreMouse: true,\n ignoreAnimation: true,\n ignoreDimensions: true,\n ignoreClear: true,\n offsetX: 0,\n offsetY: 0,\n scaleWidth: width,\n scaleHeight: height\n });\n subDocument.document.documentElement.parent = this;\n void subDocument.render();\n } else {\n var _image = this.image;\n document.setViewBox({\n ctx,\n aspectRatio: this.getAttribute('preserveAspectRatio').getString(),\n width,\n desiredWidth: _image.width,\n height,\n desiredHeight: _image.height\n });\n\n if (this.loaded) {\n if (typeof _image.complete === 'undefined' || _image.complete) {\n ctx.drawImage(_image, 0, 0);\n }\n }\n }\n\n ctx.restore();\n }\n\n getBoundingBox() {\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width').getPixels('x');\n var height = this.getStyle('height').getPixels('y');\n return new BoundingBox(x, y, x + width, y + height);\n }\n\n}\n\nclass SymbolElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'symbol';\n }\n\n render(_) {// NO RENDER\n }\n\n}\n\nclass SVGFontLoader {\n constructor(document) {\n this.document = document;\n this.loaded = false;\n document.fonts.push(this);\n }\n\n load(fontFamily, url) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n try {\n var {\n document\n } = _this;\n var svgDocument = yield document.canvg.parser.load(url);\n var fonts = svgDocument.getElementsByTagName('font');\n Array.from(fonts).forEach(fontNode => {\n var font = document.createElement(fontNode);\n document.definitions[fontFamily] = font;\n });\n } catch (err) {\n console.error(\"Error while loading font \\\"\".concat(url, \"\\\":\"), err);\n }\n\n _this.loaded = true;\n })();\n }\n\n}\n\nclass StyleElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'style';\n var css = compressSpaces(Array.from(node.childNodes) // NEED TEST\n .map(_ => _.textContent).join('').replace(/(\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*+\\/)|(^[\\s]*\\/\\/.*)/gm, '') // remove comments\n .replace(/@import.*;/g, '') // remove imports\n );\n var cssDefs = css.split('}');\n cssDefs.forEach(_ => {\n var def = _.trim();\n\n if (!def) {\n return;\n }\n\n var cssParts = def.split('{');\n var cssClasses = cssParts[0].split(',');\n var cssProps = cssParts[1].split(';');\n cssClasses.forEach(_ => {\n var cssClass = _.trim();\n\n if (!cssClass) {\n return;\n }\n\n var props = document.styles[cssClass] || {};\n cssProps.forEach(cssProp => {\n var prop = cssProp.indexOf(':');\n var name = cssProp.substr(0, prop).trim();\n var value = cssProp.substr(prop + 1, cssProp.length - prop).trim();\n\n if (name && value) {\n props[name] = new Property(document, name, value);\n }\n });\n document.styles[cssClass] = props;\n document.stylesSpecificity[cssClass] = getSelectorSpecificity(cssClass);\n\n if (cssClass === '@font-face') {\n // && !nodeEnv\n var fontFamily = props['font-family'].getString().replace(/\"|'/g, '');\n var srcs = props.src.getString().split(',');\n srcs.forEach(src => {\n if (src.indexOf('format(\"svg\")') > 0) {\n var url = parseExternalUrl(src);\n\n if (url) {\n void new SVGFontLoader(document).load(fontFamily, url);\n }\n }\n });\n }\n });\n });\n }\n\n}\nStyleElement.parseExternalUrl = parseExternalUrl;\n\nclass UseElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'use';\n }\n\n setContext(ctx) {\n super.setContext(ctx);\n var xAttr = this.getAttribute('x');\n var yAttr = this.getAttribute('y');\n\n if (xAttr.hasValue()) {\n ctx.translate(xAttr.getPixels('x'), 0);\n }\n\n if (yAttr.hasValue()) {\n ctx.translate(0, yAttr.getPixels('y'));\n }\n }\n\n path(ctx) {\n var {\n element\n } = this;\n\n if (element) {\n element.path(ctx);\n }\n }\n\n renderChildren(ctx) {\n var {\n document,\n element\n } = this;\n\n if (element) {\n var tempSvg = element;\n\n if (element.type === 'symbol') {\n // render me using a temporary svg element in symbol cases (http://www.w3.org/TR/SVG/struct.html#UseElement)\n tempSvg = new SVGElement(document, null);\n tempSvg.attributes.viewBox = new Property(document, 'viewBox', element.getAttribute('viewBox').getString());\n tempSvg.attributes.preserveAspectRatio = new Property(document, 'preserveAspectRatio', element.getAttribute('preserveAspectRatio').getString());\n tempSvg.attributes.overflow = new Property(document, 'overflow', element.getAttribute('overflow').getString());\n tempSvg.children = element.children; // element is still the parent of the children\n\n element.styles.opacity = new Property(document, 'opacity', this.calculateOpacity());\n }\n\n if (tempSvg.type === 'svg') {\n var widthStyle = this.getStyle('width', false, true);\n var heightStyle = this.getStyle('height', false, true); // if symbol or svg, inherit width/height from me\n\n if (widthStyle.hasValue()) {\n tempSvg.attributes.width = new Property(document, 'width', widthStyle.getString());\n }\n\n if (heightStyle.hasValue()) {\n tempSvg.attributes.height = new Property(document, 'height', heightStyle.getString());\n }\n }\n\n var oldParent = tempSvg.parent;\n tempSvg.parent = this;\n tempSvg.render(ctx);\n tempSvg.parent = oldParent;\n }\n }\n\n getBoundingBox(ctx) {\n var {\n element\n } = this;\n\n if (element) {\n return element.getBoundingBox(ctx);\n }\n\n return null;\n }\n\n elementTransform() {\n var {\n document,\n element\n } = this;\n return Transform.fromElement(document, element);\n }\n\n get element() {\n if (!this.cachedElement) {\n this.cachedElement = this.getHrefAttribute().getDefinition();\n }\n\n return this.cachedElement;\n }\n\n}\n\nfunction imGet(img, x, y, width, _height, rgba) {\n return img[y * width * 4 + x * 4 + rgba];\n}\n\nfunction imSet(img, x, y, width, _height, rgba, val) {\n img[y * width * 4 + x * 4 + rgba] = val;\n}\n\nfunction m(matrix, i, v) {\n var mi = matrix[i];\n return mi * v;\n}\n\nfunction c(a, m1, m2, m3) {\n return m1 + Math.cos(a) * m2 + Math.sin(a) * m3;\n}\n\nclass FeColorMatrixElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'feColorMatrix';\n var matrix = toNumbers(this.getAttribute('values').getString());\n\n switch (this.getAttribute('type').getString('matrix')) {\n // http://www.w3.org/TR/SVG/filters.html#feColorMatrixElement\n case 'saturate':\n {\n var s = matrix[0];\n /* eslint-disable array-element-newline */\n\n matrix = [0.213 + 0.787 * s, 0.715 - 0.715 * s, 0.072 - 0.072 * s, 0, 0, 0.213 - 0.213 * s, 0.715 + 0.285 * s, 0.072 - 0.072 * s, 0, 0, 0.213 - 0.213 * s, 0.715 - 0.715 * s, 0.072 + 0.928 * s, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1];\n /* eslint-enable array-element-newline */\n\n break;\n }\n\n case 'hueRotate':\n {\n var a = matrix[0] * Math.PI / 180.0;\n /* eslint-disable array-element-newline */\n\n matrix = [c(a, 0.213, 0.787, -0.213), c(a, 0.715, -0.715, -0.715), c(a, 0.072, -0.072, 0.928), 0, 0, c(a, 0.213, -0.213, 0.143), c(a, 0.715, 0.285, 0.140), c(a, 0.072, -0.072, -0.283), 0, 0, c(a, 0.213, -0.213, -0.787), c(a, 0.715, -0.715, 0.715), c(a, 0.072, 0.928, 0.072), 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1];\n /* eslint-enable array-element-newline */\n\n break;\n }\n\n case 'luminanceToAlpha':\n /* eslint-disable array-element-newline */\n matrix = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.2125, 0.7154, 0.0721, 0, 0, 0, 0, 0, 0, 1];\n /* eslint-enable array-element-newline */\n\n break;\n }\n\n this.matrix = matrix;\n this.includeOpacity = this.getAttribute('includeOpacity').hasValue();\n }\n\n apply(ctx, _x, _y, width, height) {\n // assuming x==0 && y==0 for now\n var {\n includeOpacity,\n matrix\n } = this;\n var srcData = ctx.getImageData(0, 0, width, height);\n\n for (var y = 0; y < height; y++) {\n for (var x = 0; x < width; x++) {\n var r = imGet(srcData.data, x, y, width, height, 0);\n var g = imGet(srcData.data, x, y, width, height, 1);\n var b = imGet(srcData.data, x, y, width, height, 2);\n var a = imGet(srcData.data, x, y, width, height, 3);\n var nr = m(matrix, 0, r) + m(matrix, 1, g) + m(matrix, 2, b) + m(matrix, 3, a) + m(matrix, 4, 1);\n var ng = m(matrix, 5, r) + m(matrix, 6, g) + m(matrix, 7, b) + m(matrix, 8, a) + m(matrix, 9, 1);\n var nb = m(matrix, 10, r) + m(matrix, 11, g) + m(matrix, 12, b) + m(matrix, 13, a) + m(matrix, 14, 1);\n var na = m(matrix, 15, r) + m(matrix, 16, g) + m(matrix, 17, b) + m(matrix, 18, a) + m(matrix, 19, 1);\n\n if (includeOpacity) {\n nr = 0;\n ng = 0;\n nb = 0;\n na *= a / 255;\n }\n\n imSet(srcData.data, x, y, width, height, 0, nr);\n imSet(srcData.data, x, y, width, height, 1, ng);\n imSet(srcData.data, x, y, width, height, 2, nb);\n imSet(srcData.data, x, y, width, height, 3, na);\n }\n }\n\n ctx.clearRect(0, 0, width, height);\n ctx.putImageData(srcData, 0, 0);\n }\n\n}\n\nclass MaskElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'mask';\n }\n\n apply(ctx, element) {\n var {\n document\n } = this; // render as temp svg\n\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width').getPixels('x');\n var height = this.getStyle('height').getPixels('y');\n\n if (!width && !height) {\n var boundingBox = new BoundingBox();\n this.children.forEach(child => {\n boundingBox.addBoundingBox(child.getBoundingBox(ctx));\n });\n x = Math.floor(boundingBox.x1);\n y = Math.floor(boundingBox.y1);\n width = Math.floor(boundingBox.width);\n height = Math.floor(boundingBox.height);\n }\n\n var ignoredStyles = this.removeStyles(element, MaskElement.ignoreStyles);\n var maskCanvas = document.createCanvas(x + width, y + height);\n var maskCtx = maskCanvas.getContext('2d');\n document.screen.setDefaults(maskCtx);\n this.renderChildren(maskCtx); // convert mask to alpha with a fake node\n // TODO: refactor out apply from feColorMatrix\n\n new FeColorMatrixElement(document, {\n nodeType: 1,\n childNodes: [],\n attributes: [{\n nodeName: 'type',\n value: 'luminanceToAlpha'\n }, {\n nodeName: 'includeOpacity',\n value: 'true'\n }]\n }).apply(maskCtx, 0, 0, x + width, y + height);\n var tmpCanvas = document.createCanvas(x + width, y + height);\n var tmpCtx = tmpCanvas.getContext('2d');\n document.screen.setDefaults(tmpCtx);\n element.render(tmpCtx);\n tmpCtx.globalCompositeOperation = 'destination-in';\n tmpCtx.fillStyle = maskCtx.createPattern(maskCanvas, 'no-repeat');\n tmpCtx.fillRect(0, 0, x + width, y + height);\n ctx.fillStyle = tmpCtx.createPattern(tmpCanvas, 'no-repeat');\n ctx.fillRect(0, 0, x + width, y + height); // reassign mask\n\n this.restoreStyles(element, ignoredStyles);\n }\n\n render(_) {// NO RENDER\n }\n\n}\nMaskElement.ignoreStyles = ['mask', 'transform', 'clip-path'];\n\nvar noop = () => {// NOOP\n};\n\nclass ClipPathElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'clipPath';\n }\n\n apply(ctx) {\n var {\n document\n } = this;\n var contextProto = Reflect.getPrototypeOf(ctx);\n var {\n beginPath,\n closePath\n } = ctx;\n\n if (contextProto) {\n contextProto.beginPath = noop;\n contextProto.closePath = noop;\n }\n\n Reflect.apply(beginPath, ctx, []);\n this.children.forEach(child => {\n if (typeof child.path === 'undefined') {\n return;\n }\n\n var transform = typeof child.elementTransform !== 'undefined' ? child.elementTransform() : null; // handle \n\n if (!transform) {\n transform = Transform.fromElement(document, child);\n }\n\n if (transform) {\n transform.apply(ctx);\n }\n\n child.path(ctx);\n\n if (contextProto) {\n contextProto.closePath = closePath;\n }\n\n if (transform) {\n transform.unapply(ctx);\n }\n });\n Reflect.apply(closePath, ctx, []);\n ctx.clip();\n\n if (contextProto) {\n contextProto.beginPath = beginPath;\n contextProto.closePath = closePath;\n }\n }\n\n render(_) {// NO RENDER\n }\n\n}\n\nclass FilterElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'filter';\n }\n\n apply(ctx, element) {\n // render as temp svg\n var {\n document,\n children\n } = this;\n var boundingBox = element.getBoundingBox(ctx);\n\n if (!boundingBox) {\n return;\n }\n\n var px = 0;\n var py = 0;\n children.forEach(child => {\n var efd = child.extraFilterDistance || 0;\n px = Math.max(px, efd);\n py = Math.max(py, efd);\n });\n var width = Math.floor(boundingBox.width);\n var height = Math.floor(boundingBox.height);\n var tmpCanvasWidth = width + 2 * px;\n var tmpCanvasHeight = height + 2 * py;\n\n if (tmpCanvasWidth < 1 || tmpCanvasHeight < 1) {\n return;\n }\n\n var x = Math.floor(boundingBox.x);\n var y = Math.floor(boundingBox.y);\n var ignoredStyles = this.removeStyles(element, FilterElement.ignoreStyles);\n var tmpCanvas = document.createCanvas(tmpCanvasWidth, tmpCanvasHeight);\n var tmpCtx = tmpCanvas.getContext('2d');\n document.screen.setDefaults(tmpCtx);\n tmpCtx.translate(-x + px, -y + py);\n element.render(tmpCtx); // apply filters\n\n children.forEach(child => {\n if (typeof child.apply === 'function') {\n child.apply(tmpCtx, 0, 0, tmpCanvasWidth, tmpCanvasHeight);\n }\n }); // render on me\n\n ctx.drawImage(tmpCanvas, 0, 0, tmpCanvasWidth, tmpCanvasHeight, x - px, y - py, tmpCanvasWidth, tmpCanvasHeight);\n this.restoreStyles(element, ignoredStyles);\n }\n\n render(_) {// NO RENDER\n }\n\n}\nFilterElement.ignoreStyles = ['filter', 'transform', 'clip-path'];\n\nclass FeDropShadowElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'feDropShadow';\n this.addStylesFromStyleDefinition();\n }\n\n apply(_, _x, _y, _width, _height) {// TODO: implement\n }\n\n}\n\nclass FeMorphologyElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'feMorphology';\n }\n\n apply(_, _x, _y, _width, _height) {// TODO: implement\n }\n\n}\n\nclass FeCompositeElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'feComposite';\n }\n\n apply(_, _x, _y, _width, _height) {// TODO: implement\n }\n\n}\n\nclass FeGaussianBlurElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'feGaussianBlur';\n this.blurRadius = Math.floor(this.getAttribute('stdDeviation').getNumber());\n this.extraFilterDistance = this.blurRadius;\n }\n\n apply(ctx, x, y, width, height) {\n var {\n document,\n blurRadius\n } = this;\n var body = document.window ? document.window.document.body : null;\n var canvas = ctx.canvas; // StackBlur requires canvas be on document\n\n canvas.id = document.getUniqueId();\n\n if (body) {\n canvas.style.display = 'none';\n body.appendChild(canvas);\n }\n\n canvasRGBA(canvas, x, y, width, height, blurRadius);\n\n if (body) {\n body.removeChild(canvas);\n }\n }\n\n}\n\nclass TitleElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'title';\n }\n\n}\n\nclass DescElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'desc';\n }\n\n}\n\nvar elements = {\n 'svg': SVGElement,\n 'rect': RectElement,\n 'circle': CircleElement,\n 'ellipse': EllipseElement,\n 'line': LineElement,\n 'polyline': PolylineElement,\n 'polygon': PolygonElement,\n 'path': PathElement,\n 'pattern': PatternElement,\n 'marker': MarkerElement,\n 'defs': DefsElement,\n 'linearGradient': LinearGradientElement,\n 'radialGradient': RadialGradientElement,\n 'stop': StopElement,\n 'animate': AnimateElement,\n 'animateColor': AnimateColorElement,\n 'animateTransform': AnimateTransformElement,\n 'font': FontElement,\n 'font-face': FontFaceElement,\n 'missing-glyph': MissingGlyphElement,\n 'glyph': GlyphElement,\n 'text': TextElement,\n 'tspan': TSpanElement,\n 'tref': TRefElement,\n 'a': AElement,\n 'textPath': TextPathElement,\n 'image': ImageElement,\n 'g': GElement,\n 'symbol': SymbolElement,\n 'style': StyleElement,\n 'use': UseElement,\n 'mask': MaskElement,\n 'clipPath': ClipPathElement,\n 'filter': FilterElement,\n 'feDropShadow': FeDropShadowElement,\n 'feMorphology': FeMorphologyElement,\n 'feComposite': FeCompositeElement,\n 'feColorMatrix': FeColorMatrixElement,\n 'feGaussianBlur': FeGaussianBlurElement,\n 'title': TitleElement,\n 'desc': DescElement\n};\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction createCanvas(width, height) {\n var canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n return canvas;\n}\n\nfunction createImage(_x) {\n return _createImage.apply(this, arguments);\n}\n\nfunction _createImage() {\n _createImage = _asyncToGenerator(function* (src) {\n var anonymousCrossOrigin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var image = document.createElement('img');\n\n if (anonymousCrossOrigin) {\n image.crossOrigin = 'Anonymous';\n }\n\n return new Promise((resolve, reject) => {\n image.onload = () => {\n resolve(image);\n };\n\n image.onerror = (_event, _source, _lineno, _colno, error) => {\n reject(error);\n };\n\n image.src = src;\n });\n });\n return _createImage.apply(this, arguments);\n}\n\nclass Document {\n constructor(canvg) {\n var {\n rootEmSize = 12,\n emSize = 12,\n createCanvas = Document.createCanvas,\n createImage = Document.createImage,\n anonymousCrossOrigin\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.canvg = canvg;\n this.definitions = {};\n this.styles = {};\n this.stylesSpecificity = {};\n this.images = [];\n this.fonts = [];\n this.emSizeStack = [];\n this.uniqueId = 0;\n this.screen = canvg.screen;\n this.rootEmSize = rootEmSize;\n this.emSize = emSize;\n this.createCanvas = createCanvas;\n this.createImage = this.bindCreateImage(createImage, anonymousCrossOrigin);\n this.screen.wait(this.isImagesLoaded.bind(this));\n this.screen.wait(this.isFontsLoaded.bind(this));\n }\n\n bindCreateImage(createImage, anonymousCrossOrigin) {\n if (typeof anonymousCrossOrigin === 'boolean') {\n return (source, forceAnonymousCrossOrigin) => createImage(source, typeof forceAnonymousCrossOrigin === 'boolean' ? forceAnonymousCrossOrigin : anonymousCrossOrigin);\n }\n\n return createImage;\n }\n\n get window() {\n return this.screen.window;\n }\n\n get fetch() {\n return this.screen.fetch;\n }\n\n get ctx() {\n return this.screen.ctx;\n }\n\n get emSize() {\n var {\n emSizeStack\n } = this;\n return emSizeStack[emSizeStack.length - 1];\n }\n\n set emSize(value) {\n var {\n emSizeStack\n } = this;\n emSizeStack.push(value);\n }\n\n popEmSize() {\n var {\n emSizeStack\n } = this;\n emSizeStack.pop();\n }\n\n getUniqueId() {\n return \"canvg\".concat(++this.uniqueId);\n }\n\n isImagesLoaded() {\n return this.images.every(_ => _.loaded);\n }\n\n isFontsLoaded() {\n return this.fonts.every(_ => _.loaded);\n }\n\n createDocumentElement(document) {\n var documentElement = this.createElement(document.documentElement);\n documentElement.root = true;\n documentElement.addStylesFromStyleDefinition();\n this.documentElement = documentElement;\n return documentElement;\n }\n\n createElement(node) {\n var elementType = node.nodeName.replace(/^[^:]+:/, '');\n var ElementType = Document.elementTypes[elementType];\n\n if (typeof ElementType !== 'undefined') {\n return new ElementType(this, node);\n }\n\n return new UnknownElement(this, node);\n }\n\n createTextNode(node) {\n return new TextNode(this, node);\n }\n\n setViewBox(config) {\n this.screen.setViewBox(_objectSpread$1({\n document: this\n }, config));\n }\n\n}\nDocument.createCanvas = createCanvas;\nDocument.createImage = createImage;\nDocument.elementTypes = elements;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n/**\r\n * SVG renderer on canvas.\r\n */\n\nclass Canvg {\n /**\r\n * Main constructor.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG Document.\r\n * @param options - Rendering options.\r\n */\n constructor(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.parser = new Parser(options);\n this.screen = new Screen(ctx, options);\n this.options = options;\n var document = new Document(this, options);\n var documentElement = document.createDocumentElement(svg);\n this.document = document;\n this.documentElement = documentElement;\n }\n /**\r\n * Create Canvg instance from SVG source string or URL.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string or URL.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n static from(ctx, svg) {\n var _arguments = arguments;\n return _asyncToGenerator(function* () {\n var options = _arguments.length > 2 && _arguments[2] !== undefined ? _arguments[2] : {};\n var parser = new Parser(options);\n var svgDocument = yield parser.parse(svg);\n return new Canvg(ctx, svgDocument, options);\n })();\n }\n /**\r\n * Create Canvg instance from SVG source string.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n static fromString(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var parser = new Parser(options);\n var svgDocument = parser.parseFromString(svg);\n return new Canvg(ctx, svgDocument, options);\n }\n /**\r\n * Create new Canvg instance with inherited options.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string or URL.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n fork(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return Canvg.from(ctx, svg, _objectSpread(_objectSpread({}, this.options), options));\n }\n /**\r\n * Create new Canvg instance with inherited options.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n forkString(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return Canvg.fromString(ctx, svg, _objectSpread(_objectSpread({}, this.options), options));\n }\n /**\r\n * Document is ready promise.\r\n * @returns Ready promise.\r\n */\n\n\n ready() {\n return this.screen.ready();\n }\n /**\r\n * Document is ready value.\r\n * @returns Is ready or not.\r\n */\n\n\n isReady() {\n return this.screen.isReady();\n }\n /**\r\n * Render only first frame, ignoring animations and mouse.\r\n * @param options - Rendering options.\r\n */\n\n\n render() {\n var _arguments2 = arguments,\n _this = this;\n\n return _asyncToGenerator(function* () {\n var options = _arguments2.length > 0 && _arguments2[0] !== undefined ? _arguments2[0] : {};\n\n _this.start(_objectSpread({\n enableRedraw: true,\n ignoreAnimation: true,\n ignoreMouse: true\n }, options));\n\n yield _this.ready();\n\n _this.stop();\n })();\n }\n /**\r\n * Start rendering.\r\n * @param options - Render options.\r\n */\n\n\n start() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var {\n documentElement,\n screen,\n options: baseOptions\n } = this;\n screen.start(documentElement, _objectSpread(_objectSpread({\n enableRedraw: true\n }, baseOptions), options));\n }\n /**\r\n * Stop rendering.\r\n */\n\n\n stop() {\n this.screen.stop();\n }\n /**\r\n * Resize SVG to fit in given size.\r\n * @param width\r\n * @param height\r\n * @param preserveAspectRatio\r\n */\n\n\n resize(width) {\n var height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : width;\n var preserveAspectRatio = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n this.documentElement.resize(width, height, preserveAspectRatio);\n }\n\n}\n\nexport { AElement, AnimateColorElement, AnimateElement, AnimateTransformElement, BoundingBox, CB1, CB2, CB3, CB4, Canvg, CircleElement, ClipPathElement, DefsElement, DescElement, Document, Element, EllipseElement, FeColorMatrixElement, FeCompositeElement, FeDropShadowElement, FeGaussianBlurElement, FeMorphologyElement, FilterElement, Font, FontElement, FontFaceElement, GElement, GlyphElement, GradientElement, ImageElement, LineElement, LinearGradientElement, MarkerElement, MaskElement, Matrix, MissingGlyphElement, Mouse, PSEUDO_ZERO, Parser, PathElement, PathParser, PatternElement, Point, PolygonElement, PolylineElement, Property, QB1, QB2, QB3, RadialGradientElement, RectElement, RenderedElement, Rotate, SVGElement, SVGFontLoader, Scale, Screen, Skew, SkewX, SkewY, StopElement, StyleElement, SymbolElement, TRefElement, TSpanElement, TextElement, TextPathElement, TitleElement, Transform, Translate, UnknownElement, UseElement, ViewPort, compressSpaces, Canvg as default, getSelectorSpecificity, normalizeAttributeName, normalizeColor, parseExternalUrl, index as presets, toNumbers, trimLeft, trimRight, vectorMagnitude, vectorsAngle, vectorsRatio };\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZXMuanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsifQ==\n"],"names":["getNanoSeconds","hrtime","loadTime","moduleLoadTime","nodeLoadTime","upTime","performance","now","module","exports","process","hr","uptime","Date","getTime","call","this","root","window","g","vendors","suffix","raf","caf","i","length","last","id","queue","frameDuration","callback","_now","next","Math","max","setTimeout","cp","slice","cancelled","e","round","push","handle","fn","cancel","apply","arguments","polyfill","object","requestAnimationFrame","cancelAnimationFrame","color_string","ok","alpha","charAt","substr","replace","toLowerCase","simple_colors","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","feldspar","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgrey","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslateblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","violetred","wheat","white","whitesmoke","yellow","yellowgreen","color_defs","re","example","bits","parseInt","parseFloat","processor","exec","channels","r","b","isNaN","toRGB","toRGBA","toHex","toString","getHelpXML","examples","Array","j","sc","xml","document","createElement","setAttribute","list_item","list_color","RGBColor","example_div","style","cssText","appendChild","createTextNode","list_item_value","isCallable","tryToString","$TypeError","TypeError","argument","isConstructor","isPossiblePrototype","$String","String","wellKnownSymbol","create","defineProperty","UNSCOPABLES","ArrayPrototype","prototype","undefined","configurable","value","key","S","index","unicode","isPrototypeOf","it","Prototype","isObject","toIndexedObject","toAbsoluteIndex","lengthOfArrayLike","createMethod","IS_INCLUDES","$this","el","fromIndex","O","includes","indexOf","fails","METHOD_NAME","method","aCallable","toObject","IndexedObject","REDUCE_EMPTY","IS_RIGHT","that","callbackfn","argumentsLength","memo","self","left","right","uncurryThis","ITERATOR","SAFE_CLOSING","called","iteratorWithReturn","done","from","error","SKIP_CLOSING","ITERATION_SUPPORT","stringSlice","TO_STRING_TAG_SUPPORT","classofRaw","TO_STRING_TAG","$Object","Object","CORRECT_ARGUMENTS","tag","result","tryGet","callee","hasOwn","ownKeys","getOwnPropertyDescriptorModule","definePropertyModule","target","source","exceptions","keys","f","getOwnPropertyDescriptor","MATCH","regexp","error1","error2","F","constructor","getPrototypeOf","DESCRIPTORS","createPropertyDescriptor","bitmap","enumerable","writable","makeBuiltIn","name","descriptor","get","getter","set","setter","defineGlobalProperty","options","simple","global","unsafe","nonConfigurable","nonWritable","globalThis","EXISTS","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","classList","documentCreateElement","DOMTokenListPrototype","userAgent","test","Pebble","ENVIRONMENT","navigator","match","version","Deno","versions","v8","split","classof","userAgentStartsWith","string","Bun","createNonEnumerableProperty","defineBuiltIn","copyConstructorProperties","isForced","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","forced","sham","regexpExec","SPECIES","RegExpPrototype","RegExp","KEY","FORCED","SHAM","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","flags","nativeRegExpMethod","methods","nativeMethod","str","arg2","forceStringMethod","$exec","NATIVE_BIND","FunctionPrototype","Function","Reflect","bind","hasOwnProperty","getDescriptor","PROPER","CONFIGURABLE","uncurryThisWithBind","namespace","getMethod","isNullOrUndefined","Iterators","anObject","getIteratorMethod","usingIterator","iteratorMethod","V","P","func","floor","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","matched","position","captures","namedCaptures","replacement","tailPos","m","symbols","ch","capture","n","check","a","console","getBuiltIn","propertyIsEnumerable","store","functionToString","inspectSource","has","NATIVE_WEAK_MAP","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","WeakMap","state","metadata","facade","STATE","enforce","getterFor","TYPE","type","isArray","documentAll","all","noop","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","feature","detection","data","normalize","POLYFILL","NATIVE","isRegExp","USE_SYMBOL_AS_UID","$Symbol","isArrayIteratorMethod","getIterator","iteratorClose","Result","stopped","ResultPrototype","iterable","unboundFunction","iterator","iterFn","step","AS_ENTRIES","IS_RECORD","IS_ITERATOR","INTERRUPTED","stop","condition","callFn","kind","innerResult","innerError","IteratorPrototype","setToStringTag","returnThis","IteratorConstructor","NAME","ENUMERABLE_NEXT","$","IS_PURE","FunctionName","createIteratorConstructor","setPrototypeOf","IteratorsCore","PROPER_FUNCTION_NAME","CONFIGURABLE_FUNCTION_NAME","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","ENTRIES","Iterable","DEFAULT","IS_SET","CurrentIteratorPrototype","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","values","proto","PrototypeOfArrayIteratorPrototype","arrayIterator","toLength","obj","InternalStateModule","enforceInternalState","getInternalState","join","CONFIGURABLE_LENGTH","TEMPLATE","arity","ceil","trunc","x","notify","toggle","node","promise","then","safeGetBuiltIn","macrotask","Queue","IS_IOS","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","IS_NODE","MutationObserver","WebKitMutationObserver","Promise","microtask","flush","parent","domain","exit","head","enter","resolve","nextTick","observe","characterData","add","PromiseCapability","C","reject","$$resolve","$$reject","activeXDocument","definePropertiesModule","enumBugKeys","html","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","JS","display","src","contentWindow","open","Properties","V8_PROTOTYPE_DEFINE_BUG","objectKeys","defineProperties","props","IE8_DOM_DEFINE","toPropertyKey","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","Attributes","current","propertyIsEnumerableModule","internalObjectKeys","concat","getOwnPropertyNames","getOwnPropertySymbols","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","names","$propertyIsEnumerable","NASHORN_BUG","uncurryThisAccessor","requireObjectCoercible","aPossiblePrototype","CORRECT_SETTER","__proto__","input","pref","val","valueOf","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","NativePromiseConstructor","V8_VERSION","NativePromisePrototype","SUBCLASSING","NATIVE_PROMISE_REJECTION_EVENT","PromiseRejectionEvent","FORCED_PROMISE_CONSTRUCTOR","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","CONSTRUCTOR","REJECTION_EVENT","newPromiseCapability","promiseCapability","checkCorrectnessOfIteration","tail","item","entry","R","re1","re2","regexpFlags","stickyHelpers","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeReplace","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","lastIndex","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","reCopy","group","raw","groups","sticky","charsAdded","strCopy","multiline","hasIndices","ignoreCase","dotAll","unicodeSets","regExpFlags","$RegExp","MISSED_STICKY","defineBuiltInAccessor","CONSTRUCTOR_NAME","Constructor","TAG","uid","SHARED","mode","copyright","license","aConstructor","defaultConstructor","toIntegerOrInfinity","charCodeAt","CONVERT_TO_STRING","pos","first","second","size","codeAt","whitespaces","ltrim","rtrim","start","end","trim","symbol","Symbol","$location","defer","channel","port","arraySlice","validateArgumentsLength","setImmediate","clear","clearImmediate","Dispatch","MessageChannel","counter","ONREADYSTATECHANGE","location","run","runner","eventListener","event","globalPostMessageDefer","postMessage","protocol","host","handler","args","port2","port1","onmessage","addEventListener","importScripts","removeChild","min","integer","number","len","isSymbol","ordinaryToPrimitive","TO_PRIMITIVE","exoticToPrim","toPrimitive","postfix","random","NATIVE_SYMBOL","passed","required","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","$indexOf","arrayMethodIsStrict","nativeIndexOf","NEGATIVE_ZERO","searchElement","addToUnscopables","defineIterator","createIterResultObject","ARRAY_ITERATOR","setInternalState","iterated","Arguments","$reduce","CHROME_VERSION","reduce","nativeReverse","reverse","newPromiseCapabilityModule","perform","iterate","capability","$promiseResolve","remaining","alreadyCalled","real","onRejected","Internal","OwnPromiseCapability","nativeThen","setSpecies","anInstance","speciesConstructor","task","hostReportErrors","PromiseConstructorDetection","PROMISE","NATIVE_PROMISE_SUBCLASSING","getInternalPromiseState","PromiseConstructor","PromisePrototype","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","UNHANDLED_REJECTION","isThenable","callReaction","reaction","exited","fail","rejection","onHandleUnhandled","isReject","notified","reactions","onUnhandled","reason","initEvent","isUnhandled","emit","unwrap","internalReject","internalResolve","wrapper","executor","onFulfilled","PromiseWrapper","wrap","race","capabilityReject","promiseResolve","PromiseConstructorWrapper","CHECK_WRAPPER","$toString","getRegExpFlags","TO_STRING","nativeToString","NOT_GENERIC","INCORRECT_NAME","notARegExp","correctIsRegExpLogic","CORRECT_IS_REGEXP_LOGIC","endsWith","searchString","endPosition","search","stringIndexOf","fixRegExpWellKnownSymbolLogic","advanceStringIndex","regExpExec","nativeMatch","maybeCallNative","matcher","rx","res","fullUnicode","A","matchStr","getSubstitution","REPLACE","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","_","UNSAFE_SUBSTITUTE","searchValue","replaceValue","replacer","functionalReplace","results","accumulatedResult","nextSourcePosition","replacerArgs","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","BUGGY","SPLIT","nativeSplit","internalSplit","separator","limit","splitter","unicodeMatching","lim","p","q","z","startsWith","$trim","forcedStringTrimMethod","DOMIterables","ArrayIteratorMethods","ArrayValues","handlePrototype","CollectionPrototype","COLLECTION_NAME","asyncGeneratorStep","t","o","c","u","_asyncToGenerator","_next","_throw","Number","_defineProperty","cos","sin","Error","PI","lArcFlag","sweepFlag","rX","rY","s","y","abs","h","xRot","pow","sqrt","l","T","v","cX","cY","phi1","atan2","phi2","relative","x1","y1","x2","y2","NaN","SMOOTH_CURVE_TO","CURVE_TO","SMOOTH_QUAD_TO","QUAD_TO","MOVE_TO","CLOSE_PATH","HORIZ_LINE_TO","LINE_TO","VERT_LINE_TO","N","d","E","M","I","L","ROUND","TO_ABS","TO_REL","NORMALIZE_HVZ","ARC","NORMALIZE_ST","QT_TO_C","INFO","SANITIZE","LINE_COMMANDS","MATRIX","ROTATE","TRANSLATE","SCALE","SKEW_X","atan","SKEW_Y","X_AXIS_SYMMETRY","Y_AXIS_SYMMETRY","A_TO_C","H","ANNOTATE_ARCS","CLONE","CALCULATE_BOUNDS","maxX","minX","maxY","minY","DRAWING_COMMANDS","w","map","U","transform","toAbs","toRel","normalizeHVZ","normalizeST","qtToC","aToC","sanitize","translate","scale","rotate","matrix","skewX","skewY","xSymmetry","ySymmetry","annotateArcs","curNumber","curCommandType","curCommandRelative","canParseCommandOrComma","curNumberHasExp","curNumberHasExpDigits","curNumberHasDecimal","curArgs","finish","parse","SyntaxError","commands","encode","getBounds","_typeof","mulTable","shgTable","getImageDataFromCanvas","canvas","topX","topY","width","height","getElementById","context","getContext","getImageData","processCanvasRGBA","radius","imageData","stackEnd","pixels","div","widthMinus1","heightMinus1","radiusPlus1","sumFactor","stackStart","BlurStack","stack","stackIn","stackOut","yw","yi","mulSum","shgSum","pr","pg","pb","pa","_i","rInSum","gInSum","bInSum","aInSum","rOutSum","gOutSum","bOutSum","aOutSum","rSum","gSum","bSum","aSum","_i2","rbs","paInitial","_a2","_p","_stackOut","_r","_g","_b","_a","_x","_pr","_pg","_pb","_pa","_rOutSum","_gOutSum","_bOutSum","_aOutSum","_rSum","_gSum","_bSum","_aSum","_i3","yp","_gInSum","_bInSum","_aInSum","_rInSum","_i4","_rbs","_y","_p2","processImageDataRGBA","putImageData","instance","_classCallCheck","freeze","offscreen","DOMParser","DOMParserFallback","preset","ignoreAnimation","ignoreMouse","createCanvas","OffscreenCanvas","createImage","url","response","fetch","blob","createImageBitmap","deleteProperty","_ref","loadImage","compressSpaces","trimLeft","trimRight","toNumbers","allUppercase","normalizeAttributeName","parseExternalUrl","urlMatch","normalizeColor","color","rgbParts","num","isFloat","attributeRegex","idRegex","classRegex","pseudoElementRegex","pseudoClassWithBracketsRegex","pseudoClassRegex","elementRegex","findSelectorMatch","selector","regex","matches","getSelectorSpecificity","specificity","currentSelector","delta","PSEUDO_ZERO","vectorMagnitude","vectorsRatio","vectorsAngle","acos","CB1","CB2","CB3","CB4","QB1","QB2","QB3","Property","isNormalizedColor","empty","getString","hasValue","zeroIsValue","isString","isUrlDefinition","isPixels","asString","setValue","getValue","def","getNumber","getColor","getDpi","getRem","rootEmSize","getEm","emSize","getUnits","getPixels","axisOrIsFontSize","processPercent","axis","isFontSize","viewPort","screen","computeSize","getMilliseconds","getRadians","getDefinition","definitions","getFillStyleDefinition","element","opacity","createGradient","ctx","createPattern","getHrefAttribute","patternTransform","getAttribute","getTextBaseline","textBaselineMapping","addOpacity","commas","ViewPort","viewPorts","setCurrent","removeCurrent","pop","getCurrent","Point","point","defaultValue","parseScale","parsePath","path","points","pathPoints","angleTo","applyTransform","xp","Mouse","working","events","eventElements","onClick","onMouseMove","isWorking","onclick","onmousemove","hasEvents","runEvents","cursor","forEach","checkPath","_ref2","isPointInPath","checkBoundingBox","boundingBox","_ref3","isPointInBox","mapXY","offsetLeft","offsetTop","offsetParent","scrollX","scrollY","clientX","clientY","eventTarget","defaultWindow","defaultFetch$1","Screen","FRAMERATE","MAX_VIRTUAL_PIXELS","CLIENT_WIDTH","CLIENT_HEIGHT","mouse","animations","waits","isReadyLock","isFirstRender","intervalId","wait","checker","ready","readyPromise","isReady","every","resolveReady","setDefaults","strokeStyle","lineCap","lineJoin","miterLimit","setViewBox","aspectRatio","desiredWidth","desiredHeight","refX","refY","clip","clipX","clipY","cleanAspectRatio","aspectRatioAlign","aspectRatioMeetOrSlice","align","meetOrSlice","scaleX","scaleY","scaleMin","scaleMax","finalDesiredWidth","finalDesiredHeight","refXProp","refYProp","hasRefs","scaledClipX","scaledClipY","beginPath","moveTo","lineTo","closePath","isMeetMinY","isSliceMaxY","isMeetMinX","isSliceMaxX","enableRedraw","ignoreDimensions","ignoreClear","forceRedraw","scaleWidth","scaleHeight","offsetX","offsetY","render","tick","shouldUpdate","animation","update","widthStyle","getStyle","heightStyle","cWidth","clientWidth","cHeight","clientHeight","viewBox","xRatio","yRatio","_widthStyle","_heightStyle","transformStyle","clearRect","defaultFetch","DefaultDOMParser","Parser","resource","_this","parseFromString","load","parser","checkDocument","err","parserError","getElementsByTagName","textContent","_this2","text","Translate","unapply","applyToPoint","Rotate","transformOrigin","angle","originX","originY","cx","cy","numbers","tx","ty","rad","Scale","scaleSize","Matrix","det","Skew","skew","super","SkewX","SkewY","Transform","transforms","parseTransforms","parseTransform","TransformType","transformTypes","fromElement","transformOriginXProperty","transformOriginYProperty","Element","captureTextNodes","attributes","styles","stylesSpecificity","animationFrozen","animationFrozenValue","children","nodeType","attribute","nodeName","addStylesFromStyleDefinition","childNodes","childNode","addChild","textNode","getText","createIfNotExists","attr","_attr","skipAncestors","parentStyle","_style","save","mask","applyEffects","filter","setContext","renderChildren","clearContext","restore","clipPathStyleProp","child","ignoreChildTypes","matchesSelector","_node$getAttribute","styleClasses","some","styleClass","existingSpecificity","removeStyles","ignoreStyles","toRestore","styleProp","restoreStyles","isFirstChild","_this$parent","UnknownElement","wrapFontFamily","fontFamily","trimmed","prepareFontStyle","fontStyle","targetFontStyle","prepareFontWeight","fontWeight","targetFontWeight","Font","fontVariant","fontSize","inherit","inheritFont","parts","part","variants","weights","BoundingBox","addPoint","addX","addY","addBoundingBox","sumCubic","p0","p1","p2","p3","bezierCurveAdd","forX","b2ac","t1","t2","addBezierCurve","p0x","p0y","p1x","p1y","p2x","p2y","p3x","p3y","addQuadraticCurve","cp1x","cp1y","cp2x","cp2y","PathParser","control","command","previousCommand","angles","reset","isEnd","getPoint","xProp","yProp","makeAbsolute","getAsControlPoint","getAsCurrentPoint","getReflectedControlPoint","ox","oy","addMarker","priorTo","addMarkerAngle","getMarkerPoints","getMarkerAngles","RenderedElement","modifiedEmSizeStack","calculateOpacity","opacityStyle","fromMeasure","fillStyleProp","fillOpacityStyleProp","strokeStyleProp","strokeOpacityProp","fillStyle","_fillStyle","_fillStyle2","_strokeStyle","_strokeStyle2","strokeWidthStyleProp","newLineWidth","lineWidth","strokeLinecapStyleProp","strokeLinejoinStyleProp","strokeMiterlimitProp","strokeDasharrayStyleProp","strokeDashoffsetProp","gaps","setLineDash","webkitLineDash","mozDash","offset","lineDashOffset","webkitLineDashOffset","mozDashOffset","font","fontStyleProp","fontStyleStyleProp","fontVariantStyleProp","fontWeightStyleProp","fontSizeStyleProp","fontFamilyStyleProp","globalAlpha","popEmSize","PathElement","pathParser","pathM","pathL","pathH","pathV","pathC","pathS","pathQ","pathT","pathA","pathZ","getBoundingBox","getMarkers","markers","fillRuleStyleProp","fill","setTransform","stroke","markersLastIndex","markerStartStyleProp","markerMidStyleProp","markerEndStyleProp","marker","_marker","_point","_angle","_marker2","_point2","_angle2","controlPoint","currentPoint","bezierCurveTo","quadraticCurveTo","xAxisRotation","currp","cpp","centp","a1","ad","dir","ah","halfWay","sx","sy","arc","Boolean","GlyphElement","horizAdvX","arabicForm","TextElement","measureCache","textBaseline","initializeCoordinates","leafTexts","textChunkStart","POSITIVE_INFINITY","NEGATIVE_INFINITY","getTElementBoundingBox","adjustChildCoordinatesRecursive","childBoundingBox","getChildBoundingBox","getFontSize","inheritFontSize","measureText","getGlyph","char","glyph","isArabic","prevChar","nextChar","glyphs","maybeGlyph","missingGlyph","getTextFromNode","parentNode","renderChild","renderTElementChildren","renderText","customFont","unitsPerEm","fontFace","ctxFont","isRTL","dx","lw","fillText","strokeText","applyAnchoring","firstElement","textAnchor","shift","adjustChildCoordinatesRecursiveCore","textParent","adjustChildCoordinates","xAttr","yAttr","dxAttr","dyAttr","getInheritedAttribute","measure","measureTargetText","targetText","_measure","parentAttr","TSpanElement","TextNode","SVGElement","_this$node$parentNode","getComputedStyle","getPropertyValue","fontSizeProp","refXAttr","refYAttr","viewBoxAttr","resize","preserveAspectRatio","widthAttr","heightAttr","styleAttr","originWidth","originHeight","preserveAspectRatioAttr","RectElement","rxAttr","ryAttr","ry","KAPPA","CircleElement","EllipseElement","LineElement","getPoints","x0","y0","PolylineElement","PolygonElement","PatternElement","parentOpacityProp","patternSvg","patternCanvas","patternCtx","MarkerElement","orient","markerUnits","markerSvg","overflow","DefsElement","GElement","GradientElement","attributesToInherit","stops","getGradientUnits","stopsContainer","inheritStopContainer","gradient","getGradient","addParentOpacity","addColorStop","rootView","rect","attributeToInherit","LinearGradientElement","isBoundingBoxUnits","createLinearGradient","RadialGradientElement","fx","fy","fr","createRadialGradient","StopElement","stopOpacity","stopColor","AnimateElement","duration","initialValue","initialUnits","removed","frozen","begin","maxDuration","to","valuesAttr","getProperty","attributeType","attributeName","calcValue","progress","getProgress","newValue","prop","updated","typeAttr","lb","ub","AnimateColorElement","colorFrom","colorTo","AnimateTransformElement","transformFrom","transformTo","FontElement","fontFamilyStyle","FontFaceElement","ascent","descent","MissingGlyphElement","TRefElement","firstChild","AElement","hasText","ownKeys$2","enumerableOnly","sym","_objectSpread$2","getOwnPropertyDescriptors","TextPathElement","textWidth","textHeight","pathLength","glyphInfo","letterSpacingCache","measuresCache","Map","pathElement","dataArray","parsePathData","theta","dTheta","psi","fs","setTextData","textDecoration","rotation","partialText","getLetterSpacingAt","idx","findSegmentToFitChar","anchor","textFullWidth","fullPathWidth","spacesNumber","inputOffset","dy","charI","glyphWidth","splineStep","getEquidistantPointOnPath","segment","dyX","dyY","chars","thisSpacing","parentSpacing","letterSpacing","textLen","dxSum","acc","cur","getPathLength","startOffset","nextOffset","pathCommands","startX","startY","nextCommandType","calcLength","commandType","getLineLength","getPointOnCubicBezier","getPointOnQuadraticBezier","inc","getPointOnEllipticalArc","getPointOnLine","dist","fromX","fromY","rise","pt","ix","iy","pRise","pRun","getPointOnPath","distance","fullLen","cumulativePathLength","currentT","pct","p4x","p4y","cosPsi","sinPsi","buildEquidistantCache","inputStep","inputPrecision","precision","equidistantCache","targetDistance","dataUriRegex","ImageElement","loaded","href","isSvg","images","loadSvg","image","atob","decodeURIComponent","svg","subDocument","canvg","forkString","documentElement","_image","complete","drawImage","SymbolElement","SVGFontLoader","fonts","fontNode","StyleElement","css","cssParts","cssClasses","cssProps","cssClass","cssProp","UseElement","tempSvg","oldParent","elementTransform","cachedElement","imGet","img","_height","rgba","imSet","m1","m2","m3","FeColorMatrixElement","includeOpacity","srcData","nr","ng","nb","na","MaskElement","ignoredStyles","maskCanvas","maskCtx","tmpCanvas","tmpCtx","globalCompositeOperation","fillRect","ClipPathElement","contextProto","FilterElement","px","py","efd","extraFilterDistance","tmpCanvasWidth","tmpCanvasHeight","FeDropShadowElement","_width","FeMorphologyElement","FeCompositeElement","FeGaussianBlurElement","blurRadius","body","getUniqueId","TitleElement","DescElement","ownKeys$1","_createImage","anonymousCrossOrigin","crossOrigin","onload","onerror","_event","_source","_lineno","_colno","Document","emSizeStack","uniqueId","bindCreateImage","isImagesLoaded","isFontsLoaded","forceAnonymousCrossOrigin","createDocumentElement","elementType","ElementType","elementTypes","config","_objectSpread$1","_objectSpread","Canvg","_arguments","svgDocument","fromString","fork","_arguments2","baseOptions"],"sourceRoot":""} \ No newline at end of file diff --git a/public/js/418.js b/public/js/418.js deleted file mode 100644 index b508228..0000000 --- a/public/js/418.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! For license information please see 418.js.LICENSE.txt */ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[418],{9418:(e,t,n)=>{n.r(t),n.d(t,{default:()=>le});const{entries:o,setPrototypeOf:r,isFrozen:i,getPrototypeOf:a,getOwnPropertyDescriptor:l}=Object;let{freeze:c,seal:s,create:u}=Object,{apply:m,construct:p}="undefined"!=typeof Reflect&&Reflect;c||(c=function(e){return e}),s||(s=function(e){return e}),m||(m=function(e,t,n){return e.apply(t,n)}),p||(p=function(e,t){return new e(...t)});const f=v(Array.prototype.forEach),d=v(Array.prototype.lastIndexOf),h=v(Array.prototype.pop),g=v(Array.prototype.push),T=v(Array.prototype.splice),y=v(String.prototype.toLowerCase),E=v(String.prototype.toString),A=v(String.prototype.match),_=v(String.prototype.replace),S=v(String.prototype.indexOf),N=v(String.prototype.trim),b=v(Object.prototype.hasOwnProperty),w=v(RegExp.prototype.test),R=(O=TypeError,function(){for(var e=arguments.length,t=new Array(e),n=0;n1?n-1:0),r=1;r2&&void 0!==arguments[2]?arguments[2]:y;r&&r(e,null);let o=t.length;for(;o--;){let r=t[o];if("string"==typeof r){const e=n(r);e!==r&&(i(t)||(t[o]=e),r=e)}e[r]=!0}return e}function D(e){for(let t=0;t/gm),X=s(/\$\{[\w\W]*/gm),q=s(/^data-[\-\w.\u00B7-\uFFFF]+$/),$=s(/^aria-[\-\w]+$/),K=s(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),V=s(/^(?:\w+script|data):/i),Z=s(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),J=s(/^html$/i),Q=s(/^[a-z][.\w]*(-[.\w]+)+$/i);var ee=Object.freeze({__proto__:null,ARIA_ATTR:$,ATTR_WHITESPACE:Z,CUSTOM_ELEMENT:Q,DATA_ATTR:q,DOCTYPE_NAME:J,ERB_EXPR:j,IS_ALLOWED_URI:K,IS_SCRIPT_OR_DATA:V,MUSTACHE_EXPR:Y,TMPLIT_EXPR:X});const te=1,ne=3,oe=7,re=8,ie=9,ae=function(){return"undefined"==typeof window?null:window};var le=function e(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ae();const n=t=>e(t);if(n.version="3.2.4",n.removed=[],!t||!t.document||t.document.nodeType!==ie||!t.Element)return n.isSupported=!1,n;let{document:r}=t;const i=r,a=i.currentScript,{DocumentFragment:l,HTMLTemplateElement:s,Node:m,Element:p,NodeFilter:O,NamedNodeMap:v=t.NamedNodeMap||t.MozNamedAttrMap,HTMLFormElement:D,DOMParser:Y,trustedTypes:j}=t,X=p.prototype,q=k(X,"cloneNode"),$=k(X,"remove"),V=k(X,"nextSibling"),Z=k(X,"childNodes"),Q=k(X,"parentNode");if("function"==typeof s){const e=r.createElement("template");e.content&&e.content.ownerDocument&&(r=e.content.ownerDocument)}let le,ce="";const{implementation:se,createNodeIterator:ue,createDocumentFragment:me,getElementsByTagName:pe}=r,{importNode:fe}=i;let de={afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]};n.isSupported="function"==typeof o&&"function"==typeof Q&&se&&void 0!==se.createHTMLDocument;const{MUSTACHE_EXPR:he,ERB_EXPR:ge,TMPLIT_EXPR:Te,DATA_ATTR:ye,ARIA_ATTR:Ee,IS_SCRIPT_OR_DATA:Ae,ATTR_WHITESPACE:_e,CUSTOM_ELEMENT:Se}=ee;let{IS_ALLOWED_URI:Ne}=ee,be=null;const we=C({},[...x,...I,...M,...z,...H]);let Re=null;const Oe=C({},[...F,...B,...W,...G]);let ve=Object.seal(u(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Ce=null,De=null,Le=!0,ke=!0,xe=!1,Ie=!0,Me=!1,Ue=!0,ze=!1,Pe=!1,He=!1,Fe=!1,Be=!1,We=!1,Ge=!0,Ye=!1,je=!0,Xe=!1,qe={},$e=null;const Ke=C({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let Ve=null;const Ze=C({},["audio","video","img","source","image","track"]);let Je=null;const Qe=C({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),et="http://www.w3.org/1998/Math/MathML",tt="http://www.w3.org/2000/svg",nt="http://www.w3.org/1999/xhtml";let ot=nt,rt=!1,it=null;const at=C({},[et,tt,nt],E);let lt=C({},["mi","mo","mn","ms","mtext"]),ct=C({},["annotation-xml"]);const st=C({},["title","style","font","a","script"]);let ut=null;const mt=["application/xhtml+xml","text/html"];let pt=null,ft=null;const dt=r.createElement("form"),ht=function(e){return e instanceof RegExp||e instanceof Function},gt=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!ft||ft!==e){if(e&&"object"==typeof e||(e={}),e=L(e),ut=-1===mt.indexOf(e.PARSER_MEDIA_TYPE)?"text/html":e.PARSER_MEDIA_TYPE,pt="application/xhtml+xml"===ut?E:y,be=b(e,"ALLOWED_TAGS")?C({},e.ALLOWED_TAGS,pt):we,Re=b(e,"ALLOWED_ATTR")?C({},e.ALLOWED_ATTR,pt):Oe,it=b(e,"ALLOWED_NAMESPACES")?C({},e.ALLOWED_NAMESPACES,E):at,Je=b(e,"ADD_URI_SAFE_ATTR")?C(L(Qe),e.ADD_URI_SAFE_ATTR,pt):Qe,Ve=b(e,"ADD_DATA_URI_TAGS")?C(L(Ze),e.ADD_DATA_URI_TAGS,pt):Ze,$e=b(e,"FORBID_CONTENTS")?C({},e.FORBID_CONTENTS,pt):Ke,Ce=b(e,"FORBID_TAGS")?C({},e.FORBID_TAGS,pt):{},De=b(e,"FORBID_ATTR")?C({},e.FORBID_ATTR,pt):{},qe=!!b(e,"USE_PROFILES")&&e.USE_PROFILES,Le=!1!==e.ALLOW_ARIA_ATTR,ke=!1!==e.ALLOW_DATA_ATTR,xe=e.ALLOW_UNKNOWN_PROTOCOLS||!1,Ie=!1!==e.ALLOW_SELF_CLOSE_IN_ATTR,Me=e.SAFE_FOR_TEMPLATES||!1,Ue=!1!==e.SAFE_FOR_XML,ze=e.WHOLE_DOCUMENT||!1,Fe=e.RETURN_DOM||!1,Be=e.RETURN_DOM_FRAGMENT||!1,We=e.RETURN_TRUSTED_TYPE||!1,He=e.FORCE_BODY||!1,Ge=!1!==e.SANITIZE_DOM,Ye=e.SANITIZE_NAMED_PROPS||!1,je=!1!==e.KEEP_CONTENT,Xe=e.IN_PLACE||!1,Ne=e.ALLOWED_URI_REGEXP||K,ot=e.NAMESPACE||nt,lt=e.MATHML_TEXT_INTEGRATION_POINTS||lt,ct=e.HTML_INTEGRATION_POINTS||ct,ve=e.CUSTOM_ELEMENT_HANDLING||{},e.CUSTOM_ELEMENT_HANDLING&&ht(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(ve.tagNameCheck=e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),e.CUSTOM_ELEMENT_HANDLING&&ht(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(ve.attributeNameCheck=e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),e.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(ve.allowCustomizedBuiltInElements=e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Me&&(ke=!1),Be&&(Fe=!0),qe&&(be=C({},H),Re=[],!0===qe.html&&(C(be,x),C(Re,F)),!0===qe.svg&&(C(be,I),C(Re,B),C(Re,G)),!0===qe.svgFilters&&(C(be,M),C(Re,B),C(Re,G)),!0===qe.mathMl&&(C(be,z),C(Re,W),C(Re,G))),e.ADD_TAGS&&(be===we&&(be=L(be)),C(be,e.ADD_TAGS,pt)),e.ADD_ATTR&&(Re===Oe&&(Re=L(Re)),C(Re,e.ADD_ATTR,pt)),e.ADD_URI_SAFE_ATTR&&C(Je,e.ADD_URI_SAFE_ATTR,pt),e.FORBID_CONTENTS&&($e===Ke&&($e=L($e)),C($e,e.FORBID_CONTENTS,pt)),je&&(be["#text"]=!0),ze&&C(be,["html","head","body"]),be.table&&(C(be,["tbody"]),delete Ce.tbody),e.TRUSTED_TYPES_POLICY){if("function"!=typeof e.TRUSTED_TYPES_POLICY.createHTML)throw R('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if("function"!=typeof e.TRUSTED_TYPES_POLICY.createScriptURL)throw R('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');le=e.TRUSTED_TYPES_POLICY,ce=le.createHTML("")}else void 0===le&&(le=function(e,t){if("object"!=typeof e||"function"!=typeof e.createPolicy)return null;let n=null;const o="data-tt-policy-suffix";t&&t.hasAttribute(o)&&(n=t.getAttribute(o));const r="dompurify"+(n?"#"+n:"");try{return e.createPolicy(r,{createHTML:e=>e,createScriptURL:e=>e})}catch(e){return console.warn("TrustedTypes policy "+r+" could not be created."),null}}(j,a)),null!==le&&"string"==typeof ce&&(ce=le.createHTML(""));c&&c(e),ft=e}},Tt=C({},[...I,...M,...U]),yt=C({},[...z,...P]),Et=function(e){g(n.removed,{element:e});try{Q(e).removeChild(e)}catch(t){$(e)}},At=function(e,t){try{g(n.removed,{attribute:t.getAttributeNode(e),from:t})}catch(e){g(n.removed,{attribute:null,from:t})}if(t.removeAttribute(e),"is"===e)if(Fe||Be)try{Et(t)}catch(e){}else try{t.setAttribute(e,"")}catch(e){}},_t=function(e){let t=null,n=null;if(He)e=""+e;else{const t=A(e,/^[\r\n\t ]+/);n=t&&t[0]}"application/xhtml+xml"===ut&&ot===nt&&(e=''+e+"");const o=le?le.createHTML(e):e;if(ot===nt)try{t=(new Y).parseFromString(o,ut)}catch(e){}if(!t||!t.documentElement){t=se.createDocument(ot,"template",null);try{t.documentElement.innerHTML=rt?ce:o}catch(e){}}const i=t.body||t.documentElement;return e&&n&&i.insertBefore(r.createTextNode(n),i.childNodes[0]||null),ot===nt?pe.call(t,ze?"html":"body")[0]:ze?t.documentElement:i},St=function(e){return ue.call(e.ownerDocument||e,e,O.SHOW_ELEMENT|O.SHOW_COMMENT|O.SHOW_TEXT|O.SHOW_PROCESSING_INSTRUCTION|O.SHOW_CDATA_SECTION,null)},Nt=function(e){return e instanceof D&&("string"!=typeof e.nodeName||"string"!=typeof e.textContent||"function"!=typeof e.removeChild||!(e.attributes instanceof v)||"function"!=typeof e.removeAttribute||"function"!=typeof e.setAttribute||"string"!=typeof e.namespaceURI||"function"!=typeof e.insertBefore||"function"!=typeof e.hasChildNodes)},bt=function(e){return"function"==typeof m&&e instanceof m};function wt(e,t,o){f(e,(e=>{e.call(n,t,o,ft)}))}const Rt=function(e){let t=null;if(wt(de.beforeSanitizeElements,e,null),Nt(e))return Et(e),!0;const o=pt(e.nodeName);if(wt(de.uponSanitizeElement,e,{tagName:o,allowedTags:be}),e.hasChildNodes()&&!bt(e.firstElementChild)&&w(/<[/\w]/g,e.innerHTML)&&w(/<[/\w]/g,e.textContent))return Et(e),!0;if(e.nodeType===oe)return Et(e),!0;if(Ue&&e.nodeType===re&&w(/<[/\w]/g,e.data))return Et(e),!0;if(!be[o]||Ce[o]){if(!Ce[o]&&vt(o)){if(ve.tagNameCheck instanceof RegExp&&w(ve.tagNameCheck,o))return!1;if(ve.tagNameCheck instanceof Function&&ve.tagNameCheck(o))return!1}if(je&&!$e[o]){const t=Q(e)||e.parentNode,n=Z(e)||e.childNodes;if(n&&t){for(let o=n.length-1;o>=0;--o){const r=q(n[o],!0);r.__removalCount=(e.__removalCount||0)+1,t.insertBefore(r,V(e))}}}return Et(e),!0}return e instanceof p&&!function(e){let t=Q(e);t&&t.tagName||(t={namespaceURI:ot,tagName:"template"});const n=y(e.tagName),o=y(t.tagName);return!!it[e.namespaceURI]&&(e.namespaceURI===tt?t.namespaceURI===nt?"svg"===n:t.namespaceURI===et?"svg"===n&&("annotation-xml"===o||lt[o]):Boolean(Tt[n]):e.namespaceURI===et?t.namespaceURI===nt?"math"===n:t.namespaceURI===tt?"math"===n&&ct[o]:Boolean(yt[n]):e.namespaceURI===nt?!(t.namespaceURI===tt&&!ct[o])&&!(t.namespaceURI===et&&!lt[o])&&!yt[n]&&(st[n]||!Tt[n]):!("application/xhtml+xml"!==ut||!it[e.namespaceURI]))}(e)?(Et(e),!0):"noscript"!==o&&"noembed"!==o&&"noframes"!==o||!w(/<\/no(script|embed|frames)/i,e.innerHTML)?(Me&&e.nodeType===ne&&(t=e.textContent,f([he,ge,Te],(e=>{t=_(t,e," ")})),e.textContent!==t&&(g(n.removed,{element:e.cloneNode()}),e.textContent=t)),wt(de.afterSanitizeElements,e,null),!1):(Et(e),!0)},Ot=function(e,t,n){if(Ge&&("id"===t||"name"===t)&&(n in r||n in dt))return!1;if(ke&&!De[t]&&w(ye,t));else if(Le&&w(Ee,t));else if(!Re[t]||De[t]){if(!(vt(e)&&(ve.tagNameCheck instanceof RegExp&&w(ve.tagNameCheck,e)||ve.tagNameCheck instanceof Function&&ve.tagNameCheck(e))&&(ve.attributeNameCheck instanceof RegExp&&w(ve.attributeNameCheck,t)||ve.attributeNameCheck instanceof Function&&ve.attributeNameCheck(t))||"is"===t&&ve.allowCustomizedBuiltInElements&&(ve.tagNameCheck instanceof RegExp&&w(ve.tagNameCheck,n)||ve.tagNameCheck instanceof Function&&ve.tagNameCheck(n))))return!1}else if(Je[t]);else if(w(Ne,_(n,_e,"")));else if("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==S(n,"data:")||!Ve[e]){if(xe&&!w(Ae,_(n,_e,"")));else if(n)return!1}else;return!0},vt=function(e){return"annotation-xml"!==e&&A(e,Se)},Ct=function(e){wt(de.beforeSanitizeAttributes,e,null);const{attributes:t}=e;if(!t||Nt(e))return;const o={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Re,forceKeepAttr:void 0};let r=t.length;for(;r--;){const i=t[r],{name:a,namespaceURI:l,value:c}=i,s=pt(a);let u="value"===a?c:N(c);if(o.attrName=s,o.attrValue=u,o.keepAttr=!0,o.forceKeepAttr=void 0,wt(de.uponSanitizeAttribute,e,o),u=o.attrValue,!Ye||"id"!==s&&"name"!==s||(At(a,e),u="user-content-"+u),Ue&&w(/((--!?|])>)|<\/(style|title)/i,u)){At(a,e);continue}if(o.forceKeepAttr)continue;if(At(a,e),!o.keepAttr)continue;if(!Ie&&w(/\/>/i,u)){At(a,e);continue}Me&&f([he,ge,Te],(e=>{u=_(u,e," ")}));const m=pt(e.nodeName);if(Ot(m,s,u)){if(le&&"object"==typeof j&&"function"==typeof j.getAttributeType)if(l);else switch(j.getAttributeType(m,s)){case"TrustedHTML":u=le.createHTML(u);break;case"TrustedScriptURL":u=le.createScriptURL(u)}try{l?e.setAttributeNS(l,a,u):e.setAttribute(a,u),Nt(e)?Et(e):h(n.removed)}catch(e){}}}wt(de.afterSanitizeAttributes,e,null)},Dt=function e(t){let n=null;const o=St(t);for(wt(de.beforeSanitizeShadowDOM,t,null);n=o.nextNode();)wt(de.uponSanitizeShadowNode,n,null),Rt(n),Ct(n),n.content instanceof l&&e(n.content);wt(de.afterSanitizeShadowDOM,t,null)};return n.sanitize=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=null,r=null,a=null,c=null;if(rt=!e,rt&&(e="\x3c!--\x3e"),"string"!=typeof e&&!bt(e)){if("function"!=typeof e.toString)throw R("toString is not a function");if("string"!=typeof(e=e.toString()))throw R("dirty is not a string, aborting")}if(!n.isSupported)return e;if(Pe||gt(t),n.removed=[],"string"==typeof e&&(Xe=!1),Xe){if(e.nodeName){const t=pt(e.nodeName);if(!be[t]||Ce[t])throw R("root node is forbidden and cannot be sanitized in-place")}}else if(e instanceof m)o=_t("\x3c!----\x3e"),r=o.ownerDocument.importNode(e,!0),r.nodeType===te&&"BODY"===r.nodeName||"HTML"===r.nodeName?o=r:o.appendChild(r);else{if(!Fe&&!Me&&!ze&&-1===e.indexOf("<"))return le&&We?le.createHTML(e):e;if(o=_t(e),!o)return Fe?null:We?ce:""}o&&He&&Et(o.firstChild);const s=St(Xe?e:o);for(;a=s.nextNode();)Rt(a),Ct(a),a.content instanceof l&&Dt(a.content);if(Xe)return e;if(Fe){if(Be)for(c=me.call(o.ownerDocument);o.firstChild;)c.appendChild(o.firstChild);else c=o;return(Re.shadowroot||Re.shadowrootmode)&&(c=fe.call(i,c,!0)),c}let u=ze?o.outerHTML:o.innerHTML;return ze&&be["!doctype"]&&o.ownerDocument&&o.ownerDocument.doctype&&o.ownerDocument.doctype.name&&w(J,o.ownerDocument.doctype.name)&&(u="\n"+u),Me&&f([he,ge,Te],(e=>{u=_(u,e," ")})),le&&We?le.createHTML(u):u},n.setConfig=function(){gt(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),Pe=!0},n.clearConfig=function(){ft=null,Pe=!1},n.isValidAttribute=function(e,t,n){ft||gt({});const o=pt(e),r=pt(t);return Ot(o,r,n)},n.addHook=function(e,t){"function"==typeof t&&g(de[e],t)},n.removeHook=function(e,t){if(void 0!==t){const n=d(de[e],t);return-1===n?void 0:T(de[e],n,1)[0]}return h(de[e])},n.removeHooks=function(e){de[e]=[]},n.removeAllHooks=function(){de={afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},n}()}}]); -//# sourceMappingURL=418.js.map \ No newline at end of file diff --git a/public/js/418.js.LICENSE.txt b/public/js/418.js.LICENSE.txt deleted file mode 100644 index 55e9dbf..0000000 --- a/public/js/418.js.LICENSE.txt +++ /dev/null @@ -1 +0,0 @@ -/*! @license DOMPurify 3.2.4 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.4/LICENSE */ diff --git a/public/js/418.js.map b/public/js/418.js.map deleted file mode 100644 index 6153ea5..0000000 --- a/public/js/418.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"js/418.js","mappings":"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","sources":["webpack:///./node_modules/dompurify/dist/purify.es.mjs"],"sourcesContent":["/*! @license DOMPurify 3.2.4 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.4/LICENSE */\n\nconst {\n entries,\n setPrototypeOf,\n isFrozen,\n getPrototypeOf,\n getOwnPropertyDescriptor\n} = Object;\nlet {\n freeze,\n seal,\n create\n} = Object; // eslint-disable-line import/no-mutable-exports\nlet {\n apply,\n construct\n} = typeof Reflect !== 'undefined' && Reflect;\nif (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n}\nif (!seal) {\n seal = function seal(x) {\n return x;\n };\n}\nif (!apply) {\n apply = function apply(fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n}\nif (!construct) {\n construct = function construct(Func, args) {\n return new Func(...args);\n };\n}\nconst arrayForEach = unapply(Array.prototype.forEach);\nconst arrayLastIndexOf = unapply(Array.prototype.lastIndexOf);\nconst arrayPop = unapply(Array.prototype.pop);\nconst arrayPush = unapply(Array.prototype.push);\nconst arraySplice = unapply(Array.prototype.splice);\nconst stringToLowerCase = unapply(String.prototype.toLowerCase);\nconst stringToString = unapply(String.prototype.toString);\nconst stringMatch = unapply(String.prototype.match);\nconst stringReplace = unapply(String.prototype.replace);\nconst stringIndexOf = unapply(String.prototype.indexOf);\nconst stringTrim = unapply(String.prototype.trim);\nconst objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);\nconst regExpTest = unapply(RegExp.prototype.test);\nconst typeErrorCreate = unconstruct(TypeError);\n/**\n * Creates a new function that calls the given function with a specified thisArg and arguments.\n *\n * @param func - The function to be wrapped and called.\n * @returns A new function that calls the given function with a specified thisArg and arguments.\n */\nfunction unapply(func) {\n return function (thisArg) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n return apply(func, thisArg, args);\n };\n}\n/**\n * Creates a new function that constructs an instance of the given constructor function with the provided arguments.\n *\n * @param func - The constructor function to be wrapped and called.\n * @returns A new function that constructs an instance of the given constructor function with the provided arguments.\n */\nfunction unconstruct(func) {\n return function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return construct(func, args);\n };\n}\n/**\n * Add properties to a lookup table\n *\n * @param set - The set to which elements will be added.\n * @param array - The array containing elements to be added to the set.\n * @param transformCaseFunc - An optional function to transform the case of each element before adding to the set.\n * @returns The modified set with added elements.\n */\nfunction addToSet(set, array) {\n let transformCaseFunc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : stringToLowerCase;\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n let l = array.length;\n while (l--) {\n let element = array[l];\n if (typeof element === 'string') {\n const lcElement = transformCaseFunc(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n element = lcElement;\n }\n }\n set[element] = true;\n }\n return set;\n}\n/**\n * Clean up an array to harden against CSPP\n *\n * @param array - The array to be cleaned.\n * @returns The cleaned version of the array\n */\nfunction cleanArray(array) {\n for (let index = 0; index < array.length; index++) {\n const isPropertyExist = objectHasOwnProperty(array, index);\n if (!isPropertyExist) {\n array[index] = null;\n }\n }\n return array;\n}\n/**\n * Shallow clone an object\n *\n * @param object - The object to be cloned.\n * @returns A new object that copies the original.\n */\nfunction clone(object) {\n const newObject = create(null);\n for (const [property, value] of entries(object)) {\n const isPropertyExist = objectHasOwnProperty(object, property);\n if (isPropertyExist) {\n if (Array.isArray(value)) {\n newObject[property] = cleanArray(value);\n } else if (value && typeof value === 'object' && value.constructor === Object) {\n newObject[property] = clone(value);\n } else {\n newObject[property] = value;\n }\n }\n }\n return newObject;\n}\n/**\n * This method automatically checks if the prop is function or getter and behaves accordingly.\n *\n * @param object - The object to look up the getter function in its prototype chain.\n * @param prop - The property name for which to find the getter function.\n * @returns The getter function found in the prototype chain or a fallback function.\n */\nfunction lookupGetter(object, prop) {\n while (object !== null) {\n const desc = getOwnPropertyDescriptor(object, prop);\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n object = getPrototypeOf(object);\n }\n function fallbackValue() {\n return null;\n }\n return fallbackValue;\n}\n\nconst html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\nconst svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\nconst svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n// List of SVG elements that are disallowed by default.\n// We still need to know them so that we can do namespace\n// checks properly in case one wants to add them to\n// allow-list.\nconst svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\nconst mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover', 'mprescripts']);\n// Similarly to SVG, we want to know all MathML elements,\n// even those that we disallow by default.\nconst mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\nconst text = freeze(['#text']);\n\nconst html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'popover', 'popovertarget', 'popovertargetaction', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns', 'slot']);\nconst svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'amplitude', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'exponent', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'intercept', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'slope', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'tablevalues', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\nconst mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\nconst xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n// eslint-disable-next-line unicorn/better-regex\nconst MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\nconst ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\nconst TMPLIT_EXPR = seal(/\\$\\{[\\w\\W]*/gm); // eslint-disable-line unicorn/better-regex\nconst DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]+$/); // eslint-disable-line no-useless-escape\nconst ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\nconst IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n);\nconst IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\nconst ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n);\nconst DOCTYPE_NAME = seal(/^html$/i);\nconst CUSTOM_ELEMENT = seal(/^[a-z][.\\w]*(-[.\\w]+)+$/i);\n\nvar EXPRESSIONS = /*#__PURE__*/Object.freeze({\n __proto__: null,\n ARIA_ATTR: ARIA_ATTR,\n ATTR_WHITESPACE: ATTR_WHITESPACE,\n CUSTOM_ELEMENT: CUSTOM_ELEMENT,\n DATA_ATTR: DATA_ATTR,\n DOCTYPE_NAME: DOCTYPE_NAME,\n ERB_EXPR: ERB_EXPR,\n IS_ALLOWED_URI: IS_ALLOWED_URI,\n IS_SCRIPT_OR_DATA: IS_SCRIPT_OR_DATA,\n MUSTACHE_EXPR: MUSTACHE_EXPR,\n TMPLIT_EXPR: TMPLIT_EXPR\n});\n\n/* eslint-disable @typescript-eslint/indent */\n// https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\nconst NODE_TYPE = {\n element: 1,\n attribute: 2,\n text: 3,\n cdataSection: 4,\n entityReference: 5,\n // Deprecated\n entityNode: 6,\n // Deprecated\n progressingInstruction: 7,\n comment: 8,\n document: 9,\n documentType: 10,\n documentFragment: 11,\n notation: 12 // Deprecated\n};\nconst getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n};\n/**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param trustedTypes The policy factory.\n * @param purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).\n * @return The policy created (or null, if Trusted Types\n * are not supported or creating the policy failed).\n */\nconst _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, purifyHostElement) {\n if (typeof trustedTypes !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n let suffix = null;\n const ATTR_NAME = 'data-tt-policy-suffix';\n if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) {\n suffix = purifyHostElement.getAttribute(ATTR_NAME);\n }\n const policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML(html) {\n return html;\n },\n createScriptURL(scriptUrl) {\n return scriptUrl;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n};\nconst _createHooksMap = function _createHooksMap() {\n return {\n afterSanitizeAttributes: [],\n afterSanitizeElements: [],\n afterSanitizeShadowDOM: [],\n beforeSanitizeAttributes: [],\n beforeSanitizeElements: [],\n beforeSanitizeShadowDOM: [],\n uponSanitizeAttribute: [],\n uponSanitizeElement: [],\n uponSanitizeShadowNode: []\n };\n};\nfunction createDOMPurify() {\n let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n const DOMPurify = root => createDOMPurify(root);\n DOMPurify.version = '3.2.4';\n DOMPurify.removed = [];\n if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n return DOMPurify;\n }\n let {\n document\n } = window;\n const originalDocument = document;\n const currentScript = originalDocument.currentScript;\n const {\n DocumentFragment,\n HTMLTemplateElement,\n Node,\n Element,\n NodeFilter,\n NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap,\n HTMLFormElement,\n DOMParser,\n trustedTypes\n } = window;\n const ElementPrototype = Element.prototype;\n const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n const remove = lookupGetter(ElementPrototype, 'remove');\n const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n const getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n const template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n let trustedTypesPolicy;\n let emptyHTML = '';\n const {\n implementation,\n createNodeIterator,\n createDocumentFragment,\n getElementsByTagName\n } = document;\n const {\n importNode\n } = originalDocument;\n let hooks = _createHooksMap();\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = typeof entries === 'function' && typeof getParentNode === 'function' && implementation && implementation.createHTMLDocument !== undefined;\n const {\n MUSTACHE_EXPR,\n ERB_EXPR,\n TMPLIT_EXPR,\n DATA_ATTR,\n ARIA_ATTR,\n IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE,\n CUSTOM_ELEMENT\n } = EXPRESSIONS;\n let {\n IS_ALLOWED_URI: IS_ALLOWED_URI$1\n } = EXPRESSIONS;\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n /* allowed element names */\n let ALLOWED_TAGS = null;\n const DEFAULT_ALLOWED_TAGS = addToSet({}, [...html$1, ...svg$1, ...svgFilters, ...mathMl$1, ...text]);\n /* Allowed attribute names */\n let ALLOWED_ATTR = null;\n const DEFAULT_ALLOWED_ATTR = addToSet({}, [...html, ...svg, ...mathMl, ...xml]);\n /*\n * Configure how DOMPurify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n let CUSTOM_ELEMENT_HANDLING = Object.seal(create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false\n }\n }));\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n let FORBID_TAGS = null;\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n let FORBID_ATTR = null;\n /* Decide if ARIA attributes are okay */\n let ALLOW_ARIA_ATTR = true;\n /* Decide if custom data attributes are okay */\n let ALLOW_DATA_ATTR = true;\n /* Decide if unknown protocols are okay */\n let ALLOW_UNKNOWN_PROTOCOLS = false;\n /* Decide if self-closing tags in attributes are allowed.\n * Usually removed due to a mXSS issue in jQuery 3.0 */\n let ALLOW_SELF_CLOSE_IN_ATTR = true;\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n let SAFE_FOR_TEMPLATES = false;\n /* Output should be safe even for XML used within HTML and alike.\n * This means, DOMPurify removes comments when containing risky content.\n */\n let SAFE_FOR_XML = true;\n /* Decide if document with ... should be returned */\n let WHOLE_DOCUMENT = false;\n /* Track whether config is already set on this instance of DOMPurify. */\n let SET_CONFIG = false;\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n let FORCE_BODY = false;\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n let RETURN_DOM = false;\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n let RETURN_DOM_FRAGMENT = false;\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n let RETURN_TRUSTED_TYPE = false;\n /* Output should be free from DOM clobbering attacks?\n * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n */\n let SANITIZE_DOM = true;\n /* Achieve full DOM Clobbering protection by isolating the namespace of named\n * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rules that enable DOM Clobbering:\n * - Named Access on Window (§7.3.3)\n * - DOM Tree Accessors (§3.1.5)\n * - Form Element Parent-Child Relations (§4.10.3)\n * - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n * - HTMLCollection (§4.2.10.2)\n *\n * Namespace isolation is implemented by prefixing `id` and `name` attributes\n * with a constant string, i.e., `user-content-`\n */\n let SANITIZE_NAMED_PROPS = false;\n const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n /* Keep element content when removing element? */\n let KEEP_CONTENT = true;\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n let IN_PLACE = false;\n /* Allow usage of profiles like html, svg and mathMl */\n let USE_PROFILES = {};\n /* Tags to ignore content of when KEEP_CONTENT is true */\n let FORBID_CONTENTS = null;\n const DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n /* Tags that are safe for data: URIs */\n let DATA_URI_TAGS = null;\n const DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n /* Attributes safe for values like \"javascript:\" */\n let URI_SAFE_ATTRIBUTES = null;\n const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n let NAMESPACE = HTML_NAMESPACE;\n let IS_EMPTY_INPUT = false;\n /* Allowed XHTML+XML namespaces */\n let ALLOWED_NAMESPACES = null;\n const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);\n let MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n let HTML_INTEGRATION_POINTS = addToSet({}, ['annotation-xml']);\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erroneously deleted from\n // HTML namespace.\n const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n /* Parsing of strict XHTML documents */\n let PARSER_MEDIA_TYPE = null;\n const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n let transformCaseFunc = null;\n /* Keep a reference to config to pass to hooks */\n let CONFIG = null;\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n const formElement = document.createElement('form');\n const isRegexOrFunction = function isRegexOrFunction(testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n /**\n * _parseConfig\n *\n * @param cfg optional config literal\n */\n // eslint-disable-next-line complexity\n const _parseConfig = function _parseConfig() {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n /* Shield configuration object from tampering */\n if (!cfg || typeof cfg !== 'object') {\n cfg = {};\n }\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n PARSER_MEDIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? DEFAULT_PARSER_MEDIA_TYPE : cfg.PARSER_MEDIA_TYPE;\n // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase;\n /* Set configuration parameters */\n ALLOWED_TAGS = objectHasOwnProperty(cfg, 'ALLOWED_TAGS') ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = objectHasOwnProperty(cfg, 'ALLOWED_ATTR') ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;\n ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, 'ALLOWED_NAMESPACES') ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;\n URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR') ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR, transformCaseFunc) : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = objectHasOwnProperty(cfg, 'ADD_DATA_URI_TAGS') ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS, transformCaseFunc) : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = objectHasOwnProperty(cfg, 'FORBID_CONTENTS') ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = objectHasOwnProperty(cfg, 'FORBID_TAGS') ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : {};\n FORBID_ATTR = objectHasOwnProperty(cfg, 'FORBID_ATTR') ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : {};\n USE_PROFILES = objectHasOwnProperty(cfg, 'USE_PROFILES') ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false; // Default true\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n MATHML_TEXT_INTEGRATION_POINTS = cfg.MATHML_TEXT_INTEGRATION_POINTS || MATHML_TEXT_INTEGRATION_POINTS;\n HTML_INTEGRATION_POINTS = cfg.HTML_INTEGRATION_POINTS || HTML_INTEGRATION_POINTS;\n CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n }\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, text);\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html$1);\n addToSet(ALLOWED_ATTR, html);\n }\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg$1);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl$1);\n addToSet(ALLOWED_ATTR, mathMl);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n }\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n }\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n }\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n }\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n if (cfg.TRUSTED_TYPES_POLICY) {\n if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.');\n }\n if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.');\n }\n // Overwrite existing TrustedTypes policy.\n trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;\n // Sign local variables required by `sanitize`.\n emptyHTML = trustedTypesPolicy.createHTML('');\n } else {\n // Uninitialized policy, attempt to initialize the internal dompurify policy.\n if (trustedTypesPolicy === undefined) {\n trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);\n }\n // If creating the internal policy succeeded sign internal variables.\n if (trustedTypesPolicy !== null && typeof emptyHTML === 'string') {\n emptyHTML = trustedTypesPolicy.createHTML('');\n }\n }\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n CONFIG = cfg;\n };\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n const ALL_SVG_TAGS = addToSet({}, [...svg$1, ...svgFilters, ...svgDisallowed]);\n const ALL_MATHML_TAGS = addToSet({}, [...mathMl$1, ...mathMlDisallowed]);\n /**\n * @param element a DOM element whose namespace is being checked\n * @returns Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n const _checkValidNamespace = function _checkValidNamespace(element) {\n let parent = getParentNode(element);\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: NAMESPACE,\n tagName: 'template'\n };\n }\n const tagName = stringToLowerCase(element.tagName);\n const parentTagName = stringToLowerCase(parent.tagName);\n if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n return false;\n }\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n }\n // The only way to switch from MathML to SVG is via`\n // svg if parent is either or MathML\n // text integration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n }\n // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n }\n // The only way to switch from SVG to MathML is via\n // and HTML integration points\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);\n }\n // For XHTML and XML documents that support custom namespaces\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && ALLOWED_NAMESPACES[element.namespaceURI]) {\n return true;\n }\n // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n // Return false just in case.\n return false;\n };\n /**\n * _forceRemove\n *\n * @param node a DOM node\n */\n const _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, {\n element: node\n });\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n getParentNode(node).removeChild(node);\n } catch (_) {\n remove(node);\n }\n };\n /**\n * _removeAttribute\n *\n * @param name an Attribute name\n * @param element a DOM node\n */\n const _removeAttribute = function _removeAttribute(name, element) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: element.getAttributeNode(name),\n from: element\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: element\n });\n }\n element.removeAttribute(name);\n // We void attribute values for unremovable \"is\" attributes\n if (name === 'is') {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(element);\n } catch (_) {}\n } else {\n try {\n element.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n /**\n * _initDocument\n *\n * @param dirty - a string of dirty markup\n * @return a DOM, filled with the dirty markup\n */\n const _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n let doc = null;\n let leadingWhitespace = null;\n if (FORCE_BODY) {\n dirty = '' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n const matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && NAMESPACE === HTML_NAMESPACE) {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty = '' + dirty + '';\n }\n const dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is invalid xml\n }\n }\n const body = doc.body || doc.documentElement;\n if (dirty && leadingWhitespace) {\n body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n }\n /* Work on whole document or just its body */\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n }\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n /**\n * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.\n *\n * @param root The root element or node to start traversing on.\n * @return The created NodeIterator\n */\n const _createNodeIterator = function _createNodeIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root,\n // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION, null);\n };\n /**\n * _isClobbered\n *\n * @param element element to check for clobbering attacks\n * @return true if clobbered, false if safe\n */\n const _isClobbered = function _isClobbered(element) {\n return element instanceof HTMLFormElement && (typeof element.nodeName !== 'string' || typeof element.textContent !== 'string' || typeof element.removeChild !== 'function' || !(element.attributes instanceof NamedNodeMap) || typeof element.removeAttribute !== 'function' || typeof element.setAttribute !== 'function' || typeof element.namespaceURI !== 'string' || typeof element.insertBefore !== 'function' || typeof element.hasChildNodes !== 'function');\n };\n /**\n * Checks whether the given object is a DOM node.\n *\n * @param value object to check whether it's a DOM node\n * @return true is object is a DOM node\n */\n const _isNode = function _isNode(value) {\n return typeof Node === 'function' && value instanceof Node;\n };\n function _executeHooks(hooks, currentNode, data) {\n arrayForEach(hooks, hook => {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n }\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n * @param currentNode to check for permission to exist\n * @return true if node was killed, false if left alive\n */\n const _sanitizeElements = function _sanitizeElements(currentNode) {\n let content = null;\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeElements, currentNode, null);\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Now let's check the element's type and name */\n const tagName = transformCaseFunc(currentNode.nodeName);\n /* Execute a hook if present */\n _executeHooks(hooks.uponSanitizeElement, currentNode, {\n tagName,\n allowedTags: ALLOWED_TAGS\n });\n /* Detect mXSS attempts abusing namespace confusion */\n if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(/<[/\\w]/g, currentNode.innerHTML) && regExpTest(/<[/\\w]/g, currentNode.textContent)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove any occurrence of processing instructions */\n if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove any kind of possibly harmful comments */\n if (SAFE_FOR_XML && currentNode.nodeType === NODE_TYPE.comment && regExpTest(/<[/\\w]/g, currentNode.data)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove element if anything forbids its presence */\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n /* Check if we have a custom element to handle */\n if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {\n return false;\n }\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) {\n return false;\n }\n }\n /* Keep content except for bad-listed elements */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n const parentNode = getParentNode(currentNode) || currentNode.parentNode;\n const childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n if (childNodes && parentNode) {\n const childCount = childNodes.length;\n for (let i = childCount - 1; i >= 0; --i) {\n const childClone = cloneNode(childNodes[i], true);\n childClone.__removalCount = (currentNode.__removalCount || 0) + 1;\n parentNode.insertBefore(childClone, getNextSibling(currentNode));\n }\n }\n }\n _forceRemove(currentNode);\n return true;\n }\n /* Check whether element has a valid namespace */\n if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Make sure that older browsers don't get fallback-tag mXSS */\n if ((tagName === 'noscript' || tagName === 'noembed' || tagName === 'noframes') && regExpTest(/<\\/no(script|embed|frames)/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) {\n /* Get the element's text content */\n content = currentNode.textContent;\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n content = stringReplace(content, expr, ' ');\n });\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, {\n element: currentNode.cloneNode()\n });\n currentNode.textContent = content;\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeElements, currentNode, null);\n return false;\n };\n /**\n * _isValidAttribute\n *\n * @param lcTag Lowercase tag name of containing element.\n * @param lcName Lowercase attribute name.\n * @param value Attribute value.\n * @return Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n const _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n /* Make sure attribute cannot clobber */\n if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n return false;\n }\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n if (\n // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n _isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) ||\n // Alternative, second condition checks if it's an `is`-attribute, AND\n // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else {\n return false;\n }\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if (value) {\n return false;\n } else ;\n return true;\n };\n /**\n * _isBasicCustomElement\n * checks if at least one dash is included in tagName, and it's not the first char\n * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n *\n * @param tagName name of the tag of the node to sanitize\n * @returns Returns true if the tag name meets the basic criteria for a custom element, otherwise false.\n */\n const _isBasicCustomElement = function _isBasicCustomElement(tagName) {\n return tagName !== 'annotation-xml' && stringMatch(tagName, CUSTOM_ELEMENT);\n };\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param currentNode to sanitize\n */\n const _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeAttributes, currentNode, null);\n const {\n attributes\n } = currentNode;\n /* Check if we have attributes; if not we might have a text node */\n if (!attributes || _isClobbered(currentNode)) {\n return;\n }\n const hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR,\n forceKeepAttr: undefined\n };\n let l = attributes.length;\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n const attr = attributes[l];\n const {\n name,\n namespaceURI,\n value: attrValue\n } = attr;\n const lcName = transformCaseFunc(name);\n let value = name === 'value' ? attrValue : stringTrim(attrValue);\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n _executeHooks(hooks.uponSanitizeAttribute, currentNode, hookEvent);\n value = hookEvent.attrValue;\n /* Full DOM Clobbering protection via namespace isolation,\n * Prefix id and name attributes with `user-content-`\n */\n if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {\n // Remove the attribute with this value\n _removeAttribute(name, currentNode);\n // Prefix the value and later re-create the attribute with the sanitized value\n value = SANITIZE_NAMED_PROPS_PREFIX + value;\n }\n /* Work around a security issue with comments inside attributes */\n if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\\/(style|title)/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n /* Remove attribute */\n _removeAttribute(name, currentNode);\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n continue;\n }\n /* Work around a security issue in jQuery 3.0 */\n if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n value = stringReplace(value, expr, ' ');\n });\n }\n /* Is `value` valid for this attribute? */\n const lcTag = transformCaseFunc(currentNode.nodeName);\n if (!_isValidAttribute(lcTag, lcName, value)) {\n continue;\n }\n /* Handle attributes that require Trusted Types */\n if (trustedTypesPolicy && typeof trustedTypes === 'object' && typeof trustedTypes.getAttributeType === 'function') {\n if (namespaceURI) ; else {\n switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n case 'TrustedHTML':\n {\n value = trustedTypesPolicy.createHTML(value);\n break;\n }\n case 'TrustedScriptURL':\n {\n value = trustedTypesPolicy.createScriptURL(value);\n break;\n }\n }\n }\n }\n /* Handle invalid data-* attribute set by try-catching it */\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n } else {\n arrayPop(DOMPurify.removed);\n }\n } catch (_) {}\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeAttributes, currentNode, null);\n };\n /**\n * _sanitizeShadowDOM\n *\n * @param fragment to iterate over recursively\n */\n const _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n let shadowNode = null;\n const shadowIterator = _createNodeIterator(fragment);\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeShadowDOM, fragment, null);\n while (shadowNode = shadowIterator.nextNode()) {\n /* Execute a hook if present */\n _executeHooks(hooks.uponSanitizeShadowNode, shadowNode, null);\n /* Sanitize tags and elements */\n _sanitizeElements(shadowNode);\n /* Check attributes next */\n _sanitizeAttributes(shadowNode);\n /* Deep shadow DOM detected */\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeShadowDOM, fragment, null);\n };\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty) {\n let cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let body = null;\n let importedNode = null;\n let currentNode = null;\n let returnNode = null;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n IS_EMPTY_INPUT = !dirty;\n if (IS_EMPTY_INPUT) {\n dirty = '';\n }\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n if (typeof dirty.toString === 'function') {\n dirty = dirty.toString();\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n } else {\n throw typeErrorCreate('toString is not a function');\n }\n }\n /* Return dirty HTML if DOMPurify cannot run */\n if (!DOMPurify.isSupported) {\n return dirty;\n }\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n /* Clean up removed elements */\n DOMPurify.removed = [];\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n if (IN_PLACE) {\n /* Do some early pre-sanitization to avoid unsafe root nodes */\n if (dirty.nodeName) {\n const tagName = transformCaseFunc(dirty.nodeName);\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place');\n }\n }\n } else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (importedNode.nodeType === NODE_TYPE.element && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT &&\n // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n }\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n }\n }\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n /* Get node iterator */\n const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);\n /* Now start iterating over the created document */\n while (currentNode = nodeIterator.nextNode()) {\n /* Sanitize tags and elements */\n _sanitizeElements(currentNode);\n /* Check attributes next */\n _sanitizeAttributes(currentNode);\n /* Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n }\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n return returnNode;\n }\n let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n /* Serialize doctype if allowed */\n if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {\n serializedHTML = '\\n' + serializedHTML;\n }\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n serializedHTML = stringReplace(serializedHTML, expr, ' ');\n });\n }\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n };\n DOMPurify.setConfig = function () {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n const lcTag = transformCaseFunc(tag);\n const lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n arrayPush(hooks[entryPoint], hookFunction);\n };\n DOMPurify.removeHook = function (entryPoint, hookFunction) {\n if (hookFunction !== undefined) {\n const index = arrayLastIndexOf(hooks[entryPoint], hookFunction);\n return index === -1 ? undefined : arraySplice(hooks[entryPoint], index, 1)[0];\n }\n return arrayPop(hooks[entryPoint]);\n };\n DOMPurify.removeHooks = function (entryPoint) {\n hooks[entryPoint] = [];\n };\n DOMPurify.removeAllHooks = function () {\n hooks = _createHooksMap();\n };\n return DOMPurify;\n}\nvar purify = createDOMPurify();\n\nexport { purify as default };\n//# sourceMappingURL=purify.es.mjs.map\n"],"names":["entries","setPrototypeOf","isFrozen","getPrototypeOf","getOwnPropertyDescriptor","Object","freeze","seal","create","apply","construct","Reflect","x","fun","thisValue","args","Func","arrayForEach","unapply","Array","prototype","forEach","arrayLastIndexOf","lastIndexOf","arrayPop","pop","arrayPush","push","arraySplice","splice","stringToLowerCase","String","toLowerCase","stringToString","toString","stringMatch","match","stringReplace","replace","stringIndexOf","indexOf","stringTrim","trim","objectHasOwnProperty","hasOwnProperty","regExpTest","RegExp","test","typeErrorCreate","func","TypeError","_len2","arguments","length","_key2","thisArg","_len","_key","addToSet","set","array","transformCaseFunc","undefined","l","element","lcElement","cleanArray","index","clone","object","newObject","property","value","isArray","constructor","lookupGetter","prop","desc","get","html$1","svg$1","svgFilters","svgDisallowed","mathMl$1","mathMlDisallowed","text","html","svg","mathMl","xml","MUSTACHE_EXPR","ERB_EXPR","TMPLIT_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","DOCTYPE_NAME","CUSTOM_ELEMENT","EXPRESSIONS","__proto__","NODE_TYPE","getGlobal","window","purify","createDOMPurify","DOMPurify","root","version","removed","document","nodeType","Element","isSupported","originalDocument","currentScript","DocumentFragment","HTMLTemplateElement","Node","NodeFilter","NamedNodeMap","MozNamedAttrMap","HTMLFormElement","DOMParser","trustedTypes","ElementPrototype","cloneNode","remove","getNextSibling","getChildNodes","getParentNode","template","createElement","content","ownerDocument","trustedTypesPolicy","emptyHTML","implementation","createNodeIterator","createDocumentFragment","getElementsByTagName","importNode","hooks","afterSanitizeAttributes","afterSanitizeElements","afterSanitizeShadowDOM","beforeSanitizeAttributes","beforeSanitizeElements","beforeSanitizeShadowDOM","uponSanitizeAttribute","uponSanitizeElement","uponSanitizeShadowNode","createHTMLDocument","IS_ALLOWED_URI$1","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","CUSTOM_ELEMENT_HANDLING","tagNameCheck","writable","configurable","enumerable","attributeNameCheck","allowCustomizedBuiltInElements","FORBID_TAGS","FORBID_ATTR","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","ALLOW_SELF_CLOSE_IN_ATTR","SAFE_FOR_TEMPLATES","SAFE_FOR_XML","WHOLE_DOCUMENT","SET_CONFIG","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_TRUSTED_TYPE","SANITIZE_DOM","SANITIZE_NAMED_PROPS","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","NAMESPACE","IS_EMPTY_INPUT","ALLOWED_NAMESPACES","DEFAULT_ALLOWED_NAMESPACES","MATHML_TEXT_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","COMMON_SVG_AND_HTML_ELEMENTS","PARSER_MEDIA_TYPE","SUPPORTED_PARSER_MEDIA_TYPES","CONFIG","formElement","isRegexOrFunction","testValue","Function","_parseConfig","cfg","ADD_URI_SAFE_ATTR","ADD_DATA_URI_TAGS","ALLOWED_URI_REGEXP","ADD_TAGS","ADD_ATTR","table","tbody","TRUSTED_TYPES_POLICY","createHTML","createScriptURL","purifyHostElement","createPolicy","suffix","ATTR_NAME","hasAttribute","getAttribute","policyName","scriptUrl","_","console","warn","_createTrustedTypesPolicy","ALL_SVG_TAGS","ALL_MATHML_TAGS","_forceRemove","node","removeChild","_removeAttribute","name","attribute","getAttributeNode","from","removeAttribute","setAttribute","_initDocument","dirty","doc","leadingWhitespace","matches","dirtyPayload","parseFromString","documentElement","createDocument","innerHTML","body","insertBefore","createTextNode","childNodes","call","_createNodeIterator","SHOW_ELEMENT","SHOW_COMMENT","SHOW_TEXT","SHOW_PROCESSING_INSTRUCTION","SHOW_CDATA_SECTION","_isClobbered","nodeName","textContent","attributes","namespaceURI","hasChildNodes","_isNode","_executeHooks","currentNode","data","hook","_sanitizeElements","tagName","allowedTags","firstElementChild","_isBasicCustomElement","parentNode","i","childClone","__removalCount","parent","parentTagName","Boolean","_checkValidNamespace","expr","_isValidAttribute","lcTag","lcName","_sanitizeAttributes","hookEvent","attrName","attrValue","keepAttr","allowedAttributes","forceKeepAttr","attr","getAttributeType","setAttributeNS","_sanitizeShadowDOM","fragment","shadowNode","shadowIterator","nextNode","sanitize","importedNode","returnNode","appendChild","firstChild","nodeIterator","shadowroot","shadowrootmode","serializedHTML","outerHTML","doctype","setConfig","clearConfig","isValidAttribute","tag","addHook","entryPoint","hookFunction","removeHook","removeHooks","removeAllHooks"],"sourceRoot":""} \ No newline at end of file diff --git a/resources/lang/am.json b/resources/lang/am.json index 82998ba..874f3ee 100644 --- a/resources/lang/am.json +++ b/resources/lang/am.json @@ -197,8 +197,7 @@ "steps": { "one": { "heading": "ደረጃ 1 - ይመዝገቡ", - "body": "ከደህንነት መልዕክት ዳታቤዝ ኤፒአይ መረጃ መጠቀም ለመጀመር በመጀመሪያ {0} ወደ የደህንነት መልዕክት ዳታቤዝ ፖርታል ይግቡ።\n\nፌስቡክ እና ጎግል አካውንትዎን ወይም ኢሜል አድራሻዎን ተጠቅመው አካውንት መፍጠር ይችላሉ።", - "create_account_alt": "አካዉንት ይክፈቱ፤", + "body": "ከደህንነት መልዕክት ዳታቤዝ ኤፒአይ መረጃ መጠቀም ለመጀመር በመጀመሪያ {0} ወደ የደህንነት መልዕክት ዳታቤዝ ፖርታል ይግቡ።\n\nፌስቡክ እና ጎግል አካውንትዎን ወይም ኢሜል አድራሻዎን ተጠቅመው አካውንት መፍጠር ይችላሉ።", "create_account_alt": "አካዉንት ይክፈቱ፤", "existing_account": "ከዚህ ቀደም አካዉንት ካለዎት፣ እባከዎ {0}።", "login_cta": "ይግቡ፤", "sign_up_cta": "ይመዝገቡ፤" @@ -216,8 +215,7 @@ }, "four": { "api_docs_cta": "የ ኤፒ አይ (API) ሰነድ፤", - "body": "የደህንነት መልዕክት ዳታቤዝ ኤፒአይ HTTP(S) ይጠቀማል እና የታተመ መረጃ ለማግኘት RESTful endpoints ያቀርባል።\n\nእያንዳንዱ ጥያቄ በቀደመው ደረጃ በተፈጠረው ኤፒአይ ቁልፍ መረጋገጥ አለበት።", - "example_title": "የሙከራ ጥያቄ፤", + "body": "የደህንነት መልዕክት ዳታቤዝ ኤፒአይ HTTP(S) ይጠቀማል እና የታተመ መረጃ ለማግኘት RESTful endpoints ያቀርባል።\n\nእያንዳንዱ ጥያቄ በቀደመው ደረጃ በተፈጠረው ኤፒአይ ቁልፍ መረጋገጥ አለበት።", "example_title": "የሙከራ ጥያቄ፤", "heading": "ደረጃ4 - ጥያቄ ያቅርቡ", "moreInfo": "ስለሁሉም የ API ኢንድፖይንቶች ተጨማሪ መረጃ ለማግኘት፣{0} ይመልከቱ።" } @@ -441,9 +439,9 @@ "immediate": "ወዲያውኑ", "warning": "ማስጠንቀቂያ", "anticipated": "በቅድሚያ የተጠበቀ", - "assess_and_plan": "ግምገማ እና እቅድ", - "mitigate_risks": "አደጋን መቀነስ", - "prepare_to_respond": "ለመልስ ዝግጁ ይሁኑ", + "assess_and_plan":"ግምገማ እና እቅድ", + "mitigate_risks":"አደጋን መቀነስ", + "prepare_to_respond":"ለመልስ ዝግጁ ይሁኑ", "recover": "መልሶ ማግኛት" }, "content": { @@ -526,7 +524,7 @@ "seasonalForecast_extra": "የወቅቱ ትንበያ የአደገኛ ክስተት ትንበያ መግለጫ ነው። የሚወሰዱ እርምጃዎች አደጋዎችን ለመዳሰስ እና አደጋን ለመቀነስ እና ቤተሰቡን ለመጠበቅ የሚረዱ እንቅስቃሴዎችን ለማቀድ ነው ፡፡", "watch": "ማየት", "watch_help": "ለመመለስ መዘጋጀት", - "watch_extra": " ማየት የሚታዘዘው የአደገኛ ክስተት ስጋት በከፍተኛ ሁኔታ ይጨምራል ፣ ግን መከሰቱ ፣ቦታው ፣ወይም/ እና የጊዜ አወጣጥ አሁንም እርግጠኛ አይደሉም። ለመከላከያ እርምጃዎች እና ቅደመ ምላሽ ለመስጠት ዝግጁ ለማድረግ በቂ ጊዜ ለመስጠት የታሰበ ነው ፡፡", + "watch_extra": " ማየት የሚታዘዘው የአደገኛ ክስተት ስጋት በከፍተኛ ሁኔታ ይጨምራል ፣ ግን መከሰቱ ፣ቦታው ፣ወይም\/ እና የጊዜ አወጣጥ አሁንም እርግጠኛ አይደሉም። ለመከላከያ እርምጃዎች እና ቅደመ ምላሽ ለመስጠት ዝግጁ ለማድረግ በቂ ጊዜ ለመስጠት የታሰበ ነው ፡፡", "warning": "ማስጠንቀቂያ", "warning_help": "ለመመለስ መዘጋጀት", "warning_extra": "አደገኛ ክስተት ሲከሰት ፣ ሲቃረብ ወይም በጣም ከፍተኛ የመከሰት እድሉ ሲኖር ማስጠንቀቂያ ይሰጣል ፡፡ ያ ማለት ለህይወት ወይም ለንብረት አስጊ ሁኔታ ሲፈጠር ማለት ነው። በዚህ አደጋ ጎዳና ላይ ያሉ ሰዎች የመከላከያ እርምጃዎችን መውሰድ አለባቸው ፡፡", @@ -558,8 +556,7 @@ "content_edit_title": "ይዘት አርትዕ", "content_add_hazard_title": "አደጋ ጨምር", "key_message_label": "ዋና መልእክት ርዕስ", - "supporting_message_label": "የድጋፍ መልእክት", - "mitigate_risk": "አደጋን መቀነስ" + "supporting_message_label": "የድጋፍ መልእክት" }, "message_editor": { "title": "የምክንያት አርታኢ", @@ -619,7 +616,7 @@ "bad_request_error_codes": { "30001": "የአምድ ርዕሶች ከእቅድ ንድፍ ጋር አይመሳሰሉም", "30002": " የመለያ ስም፣ መልክዕት ወይም ማስፈንጥሪያው ተዘሏል", - "30003": "የማይሰራ የመለያ ማስፈንጠሪያ እባኮዎን የአሁን ፕሮቶኮል መሆኑን ያረጋግጡ፣ ለምሳሌ https://", + "30003": "የማይሰራ የመለያ ማስፈንጠሪያ እባኮዎን የአሁን ፕሮቶኮል መሆኑን ያረጋግጡ፣ ለምሳሌ https:\/\/", "40001": "የማይሰራ ያሀገር ኮድ ተሰጥቷል", "40002": "የተመረጠው ማህበረሰብ ከተመረጠው ፋይል ከማህበረሰቡ ጋር አይጣጣምም", "40003": "የተመረጠው ፋይል ወደ ውጭ ሲልክ የተሳሳተ ስለሆነ ማስመጣቱን ማጠናቀቅ አይችልም" @@ -690,7 +687,7 @@ }, "landing": { "strapline": "የደህንነት መልዕክት ዳታቤዝ አገልግሎት", - "strapline_part_2": "የአለም አቀፍ ቀይ መስቀል / ቀይ ጨረቃ ቁልፍ የደህንነት መልዕክቶች", + "strapline_part_2": "የአለም አቀፍ ቀይ መስቀል \/ ቀይ ጨረቃ ቁልፍ የደህንነት መልዕክቶች", "head_1": "IFRC ደህንነት", "head_2": "የመልዕክት ዳታቤዝ", "head_text_1": "በIFRC የህዝብ ግንዛቤ እና ላይ የተመሰረቱ የደህንነት መልዕክቶች", @@ -745,7 +742,7 @@ "fake_alert_heading": "እጅግ በጣም የቀዘቀዘ ማስጠንቀቂያ", "fake_alert_description": "Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est.", "fake_alert_time": "አንድ ሰዓት በፊት", - "fake_alert_time_exact": "05/02/18 at 05:15 CT", + "fake_alert_time_exact": "05\/02\/18 at 05:15 CT", "use_cases": { "heading": "የበለጠ ይማሩ", "first_heading": " እንዴት እንደሚሰራ", @@ -786,7 +783,7 @@ }, "data_preview": { "heading": "የደህንነት መልዕክቶች", - "sub_heading": "በዓለም ዙርያ ካሉት የቀይ መስቀል/ቀይ ጨረቃ ብሔራዊ ማኅበራት ቁልፍ የድርጊት መልእክቶችን ለማየት ይመዝገቡ" + "sub_heading": "በዓለም ዙርያ ካሉት የቀይ መስቀል\/ቀይ ጨረቃ ብሔራዊ ማኅበራት ቁልፍ የድርጊት መልእክቶችን ለማየት ይመዝገቡ" }, "footer": { "terms_conditions": "ውሎች እና ሁኔታዎች", @@ -842,10 +839,10 @@ "industries": { "media": "መገናኛ ዘዴ", "emergency": "የአደጋ ጊዜ አስተዳደር", - "non_profit": "ለትርፍ ያልተቋቋመ / መንግስታዊ ያልሆነ ድርጅት", + "non_profit": "ለትርፍ ያልተቋቋመ \/ መንግስታዊ ያልሆነ ድርጅት", "humanitarian": "የሰብአዊ እርዳታ ድርጅት", - "red_cross": "ቀይ መስቀል / ቀይ ጨረቃ", - "education": "ትምህርት / አካዳሚ", + "red_cross": "ቀይ መስቀል \/ ቀይ ጨረቃ", + "education": "ትምህርት \/ አካዳሚ", "gov": "የመንግስት ድርጅት", "other": "ሌላ" }, @@ -860,9 +857,9 @@ "body": "የኮሎምቢያ ዲስትሪክት ህጎች በዚህ ስምምነት መሠረት ማንኛውንም የሕግ ግጭቶች መርሆዎች ሳይፈጽሙ ሁሉንም መብቶች እና ግዴታዎች ያስተዳድራሉ ፡፡", "heading": "ተፈጻሚ ህግ:" }, - "body": "በቀይ መስቀል ለእርስዎ የተሰጠውን የምዝገባ ቁልፍ ምስጥራዊነት እና ደህንነት የመጠበቅ ሃላፊነት የእርስዎ ነው ፡፡ ከጊዜ ወደጊዜ ለማዘመን እና መረጃዎችን (Data Feeds) መቀበልን ለመቀጠል ከኤ.ፒ.አይ ጋር ተጓዳኝነትን ማስቀጠል የእርስዎ ሃላፊነት ነው፡፡ ቀይ መስቀል የዘመኑ የኤፒአይ ስሪቶችን እና መረጃዎችን በራሱ ምርጫ ሊለቅ ይችላል። አዲስ ስሪቶች ከቀደሙት ትግበራዎች ጋር ላይጣጣሙ ይችላሉ ፤ እንዲሁም በጣም በቅርብ ጊዜ የተሻሻለውን የመረጃ መቀበያ ስሪት በማንኛውም ጊዜ ለመጠቀም ተስማምተዋል።\n\nማንኛውንም የኤ.ፒ.አይ ክፍልን ወይም ማንኛውንም የቀይ መስቀልን ሶፍትዌር ላለማሻሻል ፣ ላለማሰራጨት ፣ ላለመበተን ፣ ላለማቀናጀት ወይም ላለመቀልበስ ተስማምተዋል ፡፡\n\nኤ.ፒ.አይ.ውን ወይም የመረጃ መቀበያውን ቀይ መስቀል በወሰነው ውሳኔ መሠረት ከተመጣጣኝ የጥያቄ መጠን በላይ ወይም ከመጠን በላይ ወይም አላግባብ ላይጠቀሙ ይችላሉ::\n\nበቀይ መስቀል ብቸኛ ውሳኔ መሠረት ኤ.ፒ.አይ. ወይም የመረጃ መቀበያዎችን በሕገ-ወጥ ፣ በተሳሳተ ፣ በቸልተኛ ፣ በተንኮል-አዘል መንገድ ቀይ መስቀል፣ የአገልግሎት አቅራቢዎች ፣ የይዘት አቅራቢዎች ወይም ሌላ ሰው ላይ ጉዳት ለማድረስ በማሰብ ወይም በሚጎዳ መንገድ መጠቀም አይችሉም ፡፡\n\nቀይ መስቀል የኤ.ፒ.አይ. እና የመረጃ መቀበያዎች አጠቃቀምዎን ሊከታተል ይችላል። በእንደዚህ ዓይነት ቁጥጥር ውስጥ ጣልቃ ለመግባት ማንኛውንም ቴክኒካዊ ዘዴዎችን አይጠቀሙም ፤ እንዲሁም ቀይ መስቀል ማንኛውንም እንደዚህ ዓይነቱን ጣልቃ ገብነት ለማሸነፍ ቴክኒካዊ መንገዶችን ሊጠቀም ይችላል ፡፡\n\nየዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶች (Prepare, Respond, and Recover Messages) መቅረብ ያለባቸው በወቅቱ የክስተት ማንቂያ (Event Alert) አንገብጋቢ መቼት መሰረት ወቅታዊ ወይም የዘመኑ ሲሆኑ ብቻ ነው ፤ እንዲሁም ግለሰብ የዝግጅት ፣ እያንዳንዳቸውን የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶች (Prepare, Respond, and Recover Messages) በቀይ መስቀል የሚወጡ የመረጃ መቀበያዎች እና/ወይም ተያያዥ የክስተት ማንቂያዎች (Event Alert) ወቅታዊ በሚሆኑበት ወቅት ማዘመን አለብዎት፡፡\n\nእያንዳንዱ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክት (Prepare, Respond, and Recover Message) መገናኘት ያለበት ለወጣበት መልክአ-ምድር ብቻ ነው:: የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶች እንደ አሜሪካን ቀይ መስቀል ወይም ሌላ የቀይ መስቀልን ወይም የቀይ ጨረቃ ብሔራዊ ማኅበረሰብን ወይም ድርጅትን እንደ ማጣቀሻ ከተጠቀሙ (እያንዳንዱ “ምንጭ ማጣቀሻ”) ለመረጃ መቀበያዎች በተዘጋጀው ፎርም ላይ ከእያንዳንዳቸው የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶች ጋር የተገናኘውን ምንጭ ማጣቀሻ መግለፅ አለብዎት፡፡ ማንኛውንም ምንጭ ማጣቀሻ መጠቀም አይቻልም::\n\nየመረጃ መቀበያዎችን ፣ የክስተት ማንቂያዎችን እና / ወይም የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶችን ወደ ሌላ ቋንቋ መተርጎም፣ መጠቀም፣ አርትኦት ማድረግ ወይም መከለስ ወይም የመረጃ መቀበያዎችን ፣ የክስተት ማንቂያዎችን እና / ወይም የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶችን ትርጉም መቀየር አይችሉም ፡፡\n\nየመረጃ መቀበያዎችን በርስዎ ሀላፊነት ወይም ቁጥጥር ውስጥ መሆናቸውን ማረጋገጥ አለብዎት::\n\nየክስተት ማንቂያዎችን እና የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶችን ማንኛውንም ማስታወቂያ ወይም ስፖንሰርሺፕን አካትቶ ለዋና ተጠቃሚዎች እንዲደርሱ ማድረግ አይችሉም ፡፡\n\nበጠቅላላው ወይም በከፊል የመረጃ መቀበያዎችን መዝገብ መያዝ አይችሉም ፡፡", + "body": "በቀይ መስቀል ለእርስዎ የተሰጠውን የምዝገባ ቁልፍ ምስጥራዊነት እና ደህንነት የመጠበቅ ሃላፊነት የእርስዎ ነው ፡፡ ከጊዜ ወደጊዜ ለማዘመን እና መረጃዎችን (Data Feeds) መቀበልን ለመቀጠል ከኤ.ፒ.አይ ጋር ተጓዳኝነትን ማስቀጠል የእርስዎ ሃላፊነት ነው፡፡ ቀይ መስቀል የዘመኑ የኤፒአይ ስሪቶችን እና መረጃዎችን በራሱ ምርጫ ሊለቅ ይችላል። አዲስ ስሪቶች ከቀደሙት ትግበራዎች ጋር ላይጣጣሙ ይችላሉ ፤ እንዲሁም በጣም በቅርብ ጊዜ የተሻሻለውን የመረጃ መቀበያ ስሪት በማንኛውም ጊዜ ለመጠቀም ተስማምተዋል።\n\nማንኛውንም የኤ.ፒ.አይ ክፍልን ወይም ማንኛውንም የቀይ መስቀልን ሶፍትዌር ላለማሻሻል ፣ ላለማሰራጨት ፣ ላለመበተን ፣ ላለማቀናጀት ወይም ላለመቀልበስ ተስማምተዋል ፡፡\n\nኤ.ፒ.አይ.ውን ወይም የመረጃ መቀበያውን ቀይ መስቀል በወሰነው ውሳኔ መሠረት ከተመጣጣኝ የጥያቄ መጠን በላይ ወይም ከመጠን በላይ ወይም አላግባብ ላይጠቀሙ ይችላሉ::\n\nበቀይ መስቀል ብቸኛ ውሳኔ መሠረት ኤ.ፒ.አይ. ወይም የመረጃ መቀበያዎችን በሕገ-ወጥ ፣ በተሳሳተ ፣ በቸልተኛ ፣ በተንኮል-አዘል መንገድ ቀይ መስቀል፣ የአገልግሎት አቅራቢዎች ፣ የይዘት አቅራቢዎች ወይም ሌላ ሰው ላይ ጉዳት ለማድረስ በማሰብ ወይም በሚጎዳ መንገድ መጠቀም አይችሉም ፡፡\n\nቀይ መስቀል የኤ.ፒ.አይ. እና የመረጃ መቀበያዎች አጠቃቀምዎን ሊከታተል ይችላል። በእንደዚህ ዓይነት ቁጥጥር ውስጥ ጣልቃ ለመግባት ማንኛውንም ቴክኒካዊ ዘዴዎችን አይጠቀሙም ፤ እንዲሁም ቀይ መስቀል ማንኛውንም እንደዚህ ዓይነቱን ጣልቃ ገብነት ለማሸነፍ ቴክኒካዊ መንገዶችን ሊጠቀም ይችላል ፡፡\n\nየዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶች (Prepare, Respond, and Recover Messages) መቅረብ ያለባቸው በወቅቱ የክስተት ማንቂያ (Event Alert) አንገብጋቢ መቼት መሰረት ወቅታዊ ወይም የዘመኑ ሲሆኑ ብቻ ነው ፤ እንዲሁም ግለሰብ የዝግጅት ፣ እያንዳንዳቸውን የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶች (Prepare, Respond, and Recover Messages) በቀይ መስቀል የሚወጡ የመረጃ መቀበያዎች እና\/ወይም ተያያዥ የክስተት ማንቂያዎች (Event Alert) ወቅታዊ በሚሆኑበት ወቅት ማዘመን አለብዎት፡፡\n\nእያንዳንዱ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክት (Prepare, Respond, and Recover Message) መገናኘት ያለበት ለወጣበት መልክአ-ምድር ብቻ ነው:: የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶች እንደ አሜሪካን ቀይ መስቀል ወይም ሌላ የቀይ መስቀልን ወይም የቀይ ጨረቃ ብሔራዊ ማኅበረሰብን ወይም ድርጅትን እንደ ማጣቀሻ ከተጠቀሙ (እያንዳንዱ “ምንጭ ማጣቀሻ”) ለመረጃ መቀበያዎች በተዘጋጀው ፎርም ላይ ከእያንዳንዳቸው የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶች ጋር የተገናኘውን ምንጭ ማጣቀሻ መግለፅ አለብዎት፡፡ ማንኛውንም ምንጭ ማጣቀሻ መጠቀም አይቻልም::\n\nየመረጃ መቀበያዎችን ፣ የክስተት ማንቂያዎችን እና \/ ወይም የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶችን ወደ ሌላ ቋንቋ መተርጎም፣ መጠቀም፣ አርትኦት ማድረግ ወይም መከለስ ወይም የመረጃ መቀበያዎችን ፣ የክስተት ማንቂያዎችን እና \/ ወይም የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶችን ትርጉም መቀየር አይችሉም ፡፡\n\nየመረጃ መቀበያዎችን በርስዎ ሀላፊነት ወይም ቁጥጥር ውስጥ መሆናቸውን ማረጋገጥ አለብዎት::\n\nየክስተት ማንቂያዎችን እና የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶችን ማንኛውንም ማስታወቂያ ወይም ስፖንሰርሺፕን አካትቶ ለዋና ተጠቃሚዎች እንዲደርሱ ማድረግ አይችሉም ፡፡\n\nበጠቅላላው ወይም በከፊል የመረጃ መቀበያዎችን መዝገብ መያዝ አይችሉም ፡፡", "contact": "ኤ.ፒ.አይ.ን በተመለከተ ማንኛውም ጥያቄ ካለዎት እባክዎን ቀይ መስቀልን በ {0} ያነጋግሩ ፡፡", - "disclaimer": "ኤ.ፒ.አይ እና የመረጃ መቀበያዎች ለመረጃ እና ለትምህርታዊ ዓላማዎች ብቻ በ 'እንደነበረው' እና 'በተገኘው' መሠረት የተሰጡ ናቸው። ቀይ መስቀል በግልጽም ሆነ በተዘዋዋሪ ምንም ዓይነት ውክልና ወይም ዋስትና አይሰጥም ፡፡ በተዘዋዋሪ የተመለከቱ የመሸጥ ዋስትናዎች እና ብቃት ማረጋገጫዎችን ጨምሮ ቀይ መስቀል ሁሉንም ዋስትናዎች አይቀበልም፡፡ በቀጥታ፣ በተዘዋዋሪ፣ በአጋጣሚ፣ በቅጣት እና በተከታይነት የሚፈጠሩ ጉዳቶችን ጨምሮ ኤ.ፒ.አይን፣ የመረጃ መቀበያዎችን ፣ የክስተት ማንቂያዎችን እና / ወይም የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶችን በመጠቀም ወቅት ለሚደርሱ ጉዳቶች ቀይ መስቀል እና ሰራተኞቹ ፣ መኮንኖች ፣ ገዥዎች እና ወኪሎች እንዲሁም ፈቃድ ሰጪዎች ተጠያቂ አይሆኑም ፡፡\n\nቀይ መስቀል ኤ.ፒ.አይን፣ የመረጃ መቀበያዎችን ፣ የክስተት ማንቂያዎችን እና / ወይም የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶችን ቅደም ተከተል ፣ ትክክለኛነት ፣ እውነተኝነት ወይም ሙሉነት ዋስትና አይሰጥም እንዲሁም በምንም መንገድ ለእርስዎ ወይም ለዋና ተጠቃሚዎችዎ ወይም ለማንኛውም ሶስተኛ አካል ማንኛውንም መዘግየቶች ፣ ጉድለቶች፣ ስህተቶች ወይም ግድፈቶችን ጨምሮ ያለምንም ገደብ ቀጥሎ ያሉትን ኤ.ፒ.አይ፣ የመረጃ መቀበያዎች ፣ የክስተት ማንቂያዎችን እና / ወይም የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶች በተመለከተ ተጠያቂ አይሆንም፡፡", + "disclaimer": "ኤ.ፒ.አይ እና የመረጃ መቀበያዎች ለመረጃ እና ለትምህርታዊ ዓላማዎች ብቻ በ 'እንደነበረው' እና 'በተገኘው' መሠረት የተሰጡ ናቸው። ቀይ መስቀል በግልጽም ሆነ በተዘዋዋሪ ምንም ዓይነት ውክልና ወይም ዋስትና አይሰጥም ፡፡ በተዘዋዋሪ የተመለከቱ የመሸጥ ዋስትናዎች እና ብቃት ማረጋገጫዎችን ጨምሮ ቀይ መስቀል ሁሉንም ዋስትናዎች አይቀበልም፡፡ በቀጥታ፣ በተዘዋዋሪ፣ በአጋጣሚ፣ በቅጣት እና በተከታይነት የሚፈጠሩ ጉዳቶችን ጨምሮ ኤ.ፒ.አይን፣ የመረጃ መቀበያዎችን ፣ የክስተት ማንቂያዎችን እና \/ ወይም የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶችን በመጠቀም ወቅት ለሚደርሱ ጉዳቶች ቀይ መስቀል እና ሰራተኞቹ ፣ መኮንኖች ፣ ገዥዎች እና ወኪሎች እንዲሁም ፈቃድ ሰጪዎች ተጠያቂ አይሆኑም ፡፡\n\nቀይ መስቀል ኤ.ፒ.አይን፣ የመረጃ መቀበያዎችን ፣ የክስተት ማንቂያዎችን እና \/ ወይም የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶችን ቅደም ተከተል ፣ ትክክለኛነት ፣ እውነተኝነት ወይም ሙሉነት ዋስትና አይሰጥም እንዲሁም በምንም መንገድ ለእርስዎ ወይም ለዋና ተጠቃሚዎችዎ ወይም ለማንኛውም ሶስተኛ አካል ማንኛውንም መዘግየቶች ፣ ጉድለቶች፣ ስህተቶች ወይም ግድፈቶችን ጨምሮ ያለምንም ገደብ ቀጥሎ ያሉትን ኤ.ፒ.አይ፣ የመረጃ መቀበያዎች ፣ የክስተት ማንቂያዎችን እና \/ ወይም የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶች በተመለከተ ተጠያቂ አይሆንም፡፡", "entire_agreement": { "body": "የኤ.ፒ.አይ. ውሎች በዚህ ጉዳይ ላይ በቀይ መስቀል እና በርስዎ መካከል የተደረገ የተሟላ እና ብቸኛ ስምምነትን የሚያካትቱ ሲሆን ከዚህ በፊት የተደረጉ የቃል ወይም የጽሑፍ ግንዛቤዎችን ፣ ግንኙነቶችን ወይም በዚህ ውስጥ ያልተካተቱ ስምምነቶችን ሁሉ ይተካሉ ፡፡ ቀይ መስቀል ይህንን ስምምነት በማንኛውም ጊዜ የማሻሻል ወይም የመሻር መብቱ የተጠበቀ ነው ፡፡", "heading": "አጠቃላይ ስምምነት:" @@ -870,12 +867,11 @@ "heading": "የኤ.ፒ.አይ. ዋና ተጠቃሚ ፈቃድ አሰጣጥ ስምምነት", "intro": "እስማማለሁ: አገልግሎቱን በመጠቀም ወይም የቀረበው ሣጥን ላይ ምልክት በማድረግ ተጠቃሚው በዚህ ስምምነት እንዲታሰር እየተስማማ ነው።\n\nኤ.ፒ.አይ.ው እርስዎ (“እርስዎ”) በቀይ መስቀል በኩል የሚቀርቡ የዓለም የአየር ሁኔታ እና የአደጋ ክስተት ማስጠንቀቂያ እና የእይታ ማስታወቂያዎችን (“የክስተት ማንቂያዎች”) እና ተግባራዊ እና አውዳዊ መልእክቶችን ጨምሮ ለአካባቢያዊ አደጋዎች በአደጋው አይነት እና አስቸኳይነት መሰረት መዘጋጀትን ጨምሮ የመረጃ መቀብያዎችን (የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶች እና በአጠቃላይ የክስተት ማንቂያዎችን እና የመረጃ መቀብያዎችን) ሰርስረው እንዲያወጡ የሚያስችልዎ መሳሪያ ነው፡፡ ተዘጋጅ፣ መልስ እና እንደገና አግኝ የሚሉ መልእክቶች ከዝግጅት ማንቂያዎች ወይም ሌላ ማስጠንቀቂያ ጋር እና በእርስዎ መተግበሪያ ውስጥ ከአየር ንብረት እና የአደጋ ክስተት ጋር ተያያዥ ከሆኑ የማሳሰቢያ ማስታዎሻዎች ጋር አብረው እንዲመጡ የሚታሰቡ ናቸው። የእርስዎ መረጃ አቅርቦት በኤፒአይ ቃላት የሚመራ ነው።", "license_limitations": { - "body": "በየጊዜው ከሚታደሰው ከኤፒ አይ ጋር ያለውን ተመጣጣኝነት እስከጠበቁ ድረስ የመረጃ አቅርቦቶችን ለኤፒአይ ውሎች ከሚሆኑ ትግበራዎች ጋር አያይዘው ሊጠቀሙ ይችላሉ። የራስዎን መተግበሪያ (“የመጨረሻ ተጠቃሚዎች”) የክስተት ማስጠንቀቂያዎች እና አግባብነት ያለው ዐውደ-ጽሑፍ የተስተካከለ መልዕክቶችን በአስቸኳይ ፣ በፍጥነት በማደስ ፣ መልሶ የማግኘት ፣ የመጠቀም ፣ የማባዛት እና የማሰራጨት ብቸኛ ያልሆነ ፣ ውስን እና ሊሻር የሚችል መብት ተሰጥቶዎታል ፡፡ በኤፒአይ ውሎች መሠረት ከእያንዳንዱ የውሂብ ምግቦች የግለሰብ የዝግጅት ማስጠንቀቂያዎች ቅንብር። ኤፒአይን መጠቀም የሚችሉት ከንግድ ጋር ያልተያያዙ በኤፒአይን ውል መሠረት የመረጃ አቅርቦቶችን ለማቃለል ብቻ ነው። የመረጃ አቅርቦቶች፣ የዝግጅት ማስጠንቀቂያዎችን እና / ወይም ለማዘጋጀት ፣ ምላሽ ለመስጠት እና መልዕክቶችን ያለገደብ ጨምሮ ፣ መልሶ በመሸጥ ፣ እነሱን ለመድረስ ክፍያ በመጠየቅ ፣ እነሱን እንደገና ለማሰራጨት ክፍያ ለመሙላት ወይም ክፍያ ለመሙላት በማንኛውም ሁኔታ ኤ.ፒ.አይ. መጠቀም አይችሉም ፡፡ በእነሱ ላይ የተመሠረተ የመነሻ ሥራዎችን ለመፍጠር ፡፡ የኤፒአይ ኀላፊነት፣ ባለቤትነት፣ መብትና ትርፍ የቀይ መስቀልና ፈቃድ የሰጡት አካላት ነው። ይህም የሚያካትተው ዝግጅትን፣ ምላሽን፣ የጠፉ መልእክቶችን የመመለስን፣ የኹናት ማስጠንቀቂያዎችን፣ የመረጃ አቅርቦትንና የምንጭ ጣቀሻዎችን ነው። በግልጽ ያልተሰጡ መብቶች በሙሉ ተጠብቀዋል ፡፡", + "body": "በየጊዜው ከሚታደሰው ከኤፒ አይ ጋር ያለውን ተመጣጣኝነት እስከጠበቁ ድረስ የመረጃ አቅርቦቶችን ለኤፒአይ ውሎች ከሚሆኑ ትግበራዎች ጋር አያይዘው ሊጠቀሙ ይችላሉ። የራስዎን መተግበሪያ (“የመጨረሻ ተጠቃሚዎች”) የክስተት ማስጠንቀቂያዎች እና አግባብነት ያለው ዐውደ-ጽሑፍ የተስተካከለ መልዕክቶችን በአስቸኳይ ፣ በፍጥነት በማደስ ፣ መልሶ የማግኘት ፣ የመጠቀም ፣ የማባዛት እና የማሰራጨት ብቸኛ ያልሆነ ፣ ውስን እና ሊሻር የሚችል መብት ተሰጥቶዎታል ፡፡ በኤፒአይ ውሎች መሠረት ከእያንዳንዱ የውሂብ ምግቦች የግለሰብ የዝግጅት ማስጠንቀቂያዎች ቅንብር። ኤፒአይን መጠቀም የሚችሉት ከንግድ ጋር ያልተያያዙ በኤፒአይን ውል መሠረት የመረጃ አቅርቦቶችን ለማቃለል ብቻ ነው። የመረጃ አቅርቦቶች፣ የዝግጅት ማስጠንቀቂያዎችን እና \/ ወይም ለማዘጋጀት ፣ ምላሽ ለመስጠት እና መልዕክቶችን ያለገደብ ጨምሮ ፣ መልሶ በመሸጥ ፣ እነሱን ለመድረስ ክፍያ በመጠየቅ ፣ እነሱን እንደገና ለማሰራጨት ክፍያ ለመሙላት ወይም ክፍያ ለመሙላት በማንኛውም ሁኔታ ኤ.ፒ.አይ. መጠቀም አይችሉም ፡፡ በእነሱ ላይ የተመሠረተ የመነሻ ሥራዎችን ለመፍጠር ፡፡ የኤፒአይ ኀላፊነት፣ ባለቤትነት፣ መብትና ትርፍ የቀይ መስቀልና ፈቃድ የሰጡት አካላት ነው። ይህም የሚያካትተው ዝግጅትን፣ ምላሽን፣ የጠፉ መልእክቶችን የመመለስን፣ የኹናት ማስጠንቀቂያዎችን፣ የመረጃ አቅርቦትንና የምንጭ ጣቀሻዎችን ነው። በግልጽ ያልተሰጡ መብቶች በሙሉ ተጠብቀዋል ፡፡", "heading": "ፈቃድና ገደቦች:-" }, "overview": { - "body": "ግሎባል የአደጋ ዝግጁነት ማዕከል የደህንነት መልዕክት ዳታቤዝ አገልግሎት መተግበሪያ ፕሮግራም በይነገጽ (“ኤፒአይ”) በአሜሪካ ብሔራዊ ቀይ መስቀል (“ቀይ መስቀል”) ለእርስዎ ይገኛል። ኤፒአይ የምዝገባ ቁልፍ ያስፈልገዋል። በምዝገባ ሂደት ውስጥ፣ ከዚህ በታች ያለውን ሰነድ በማውረድ እና ከታች ያለውን 'ተቀብያለሁ' የሚለውን ቁልፍ በመጫን የተጠቃሚውን ስምምነት ውሎች ከዚህ በታች ካለው ሰነድ በማውረድ እና 'ተቀብያለሁ' የሚለውን ቁልፍ በመጫን በ {0} ላይ ከሚገኘው ቀይ መስቀል ድር ጣቢያ የአገልግሎት ውል ስምምነት ውሎች ጋር (በጋራ “ኤፒአይ ውሎች”) መስማማት አለብዎት። ኤፒአይ ውሎች የእርስዎን የኤፒአይ አጠቃቀም እና በኤፒአይ በኩል የሚገኙትን ሊወርዱ የሚችሉ የኤሌክትሮኒክስ ቁሳቁሶችን ይቆጣጠራሉ። {1}", - "cta": "ለመመዝገብ ይህንን ይጫኑ።" + "body": "ግሎባል የአደጋ ዝግጁነት ማዕከል የደህንነት መልዕክት ዳታቤዝ አገልግሎት መተግበሪያ ፕሮግራም በይነገጽ (“ኤፒአይ”) በአሜሪካ ብሔራዊ ቀይ መስቀል (“ቀይ መስቀል”) ለእርስዎ ይገኛል። ኤፒአይ የምዝገባ ቁልፍ ያስፈልገዋል። በምዝገባ ሂደት ውስጥ፣ ከዚህ በታች ያለውን ሰነድ በማውረድ እና ከታች ያለውን 'ተቀብያለሁ' የሚለውን ቁልፍ በመጫን የተጠቃሚውን ስምምነት ውሎች ከዚህ በታች ካለው ሰነድ በማውረድ እና 'ተቀብያለሁ' የሚለውን ቁልፍ በመጫን በ {0} ላይ ከሚገኘው ቀይ መስቀል ድር ጣቢያ የአገልግሎት ውል ስምምነት ውሎች ጋር (በጋራ “ኤፒአይ ውሎች”) መስማማት አለብዎት። ኤፒአይ ውሎች የእርስዎን የኤፒአይ አጠቃቀም እና በኤፒአይ በኩል የሚገኙትን ሊወርዱ የሚችሉ የኤሌክትሮኒክስ ቁሳቁሶችን ይቆጣጠራሉ። {1}", "cta": "ለመመዝገብ ይህንን ይጫኑ።" }, "privacy_policy": { "body": "ኤፒአይ ውስጥ የተወሰኑ መርሃግብሮች፣ አገልግሎቶች፣ ቈሳቍስ፤ የግዢ አማራጮች፤ ዕቆች፤ ወይም መረጃዎች የሚያስፈልጋቸው እርስዎን ሊያሳውቁ የሚችሉ የግል መረጃዎች አቅርቦትን፣ ተጠቃሚነትንና ሥርጭትን መኾኑን ተረድተዋል፣ ተቀብለዋል እንዲሁም ተስማምተዋል። በዚህ መሠረት ኤ.ፒ.አይን ለመድረስ እና ለመጠቀም ከፈለጉ ኤፒአይው መጠቀሙ በ {0} በተለጠፈው የግላዊነት ፖሊሲ ውስጥ የተካተቱትን የግል መለያ መረጃዎችን የመሰብሰብና የመጠቀም ልምዶችን መቀበልን እንደሚቀበል እውቅና ይሰጡዎታል እንዲሁም ይስማማሉ ፡፡", @@ -889,17 +885,17 @@ "two": "በቀይ መስቀል ወይም በኤ.ፒ.አይ. የተቀጠሩ ማናቸውንም የማረጋገጫ ቴክኖሎጂዎች ያለ ምንም ገደብ ጨምሮ ማንኛውንም ቁልፍ ወይም የደህንነት ዘዴዎችን ለመከልከል ወይም ለማሻሻል ፡፡", "three": "ለራስዎ መለያ ለእርስዎ ከሚቀርበው በስተቀር ለቀይ መስቀል የመለያ መግቢያ ስሞችን ፣ የይለፍ ቃሎችን ወይም ሌሎች የማረጋገጫ ማስረጃዎችን ለመጠየቅ ፣ ለመሰብሰብ ፣ ለመጠየቅ ወይም በሌላ መንገድ ለማግኘት ፡፡", "four": " በቀይ መስቀል ወይም ከቀይ መስቀል ጋር ተያያዥነት ባላቸው ድርጅቶች ወይም ማኅበራት መዋሃድን፣ መደገፍን ወይም መታገዝን መግለጽ ወይም ማካተት", - "five": "ኤፒአዩን፣ የመረጃ አቅርቦቱን፣ የክስተት ማንቂያ እና/ ወይም የመዘጋጃ፣ የምላሽ መስጫ፣ እና የመመለሻ መልእክቶችን የእርስዎ እንደሆን ወይም እንደፈጠሩት ለማስቀመጥ ወይም ለማመላከት", + "five": "ኤፒአዩን፣ የመረጃ አቅርቦቱን፣ የክስተት ማንቂያ እና\/ ወይም የመዘጋጃ፣ የምላሽ መስጫ፣ እና የመመለሻ መልእክቶችን የእርስዎ እንደሆን ወይም እንደፈጠሩት ለማስቀመጥ ወይም ለማመላከት", "six": "ለጒዳት የሚያጋልጥ ማንኛውንም ዐይነት ቫይረስ፣ እንቅፋት፣ ትሮጃን ሆርስም ሆነ ሌላ ለማስተላለፍ" } }, - "reserve_rights": "ቀይ መስቀል ኤፒአይ እና የመረጃ ምግቦች ሙሉ በሙሉ ወይም በከፊል ለጊዜው ወይም በቋሚነት በማንኛውም ጊዜ ያለ ቅድመ ማስጠንቀቂያ የመቀየር እና / ወይም ከአሁን በኋላ የመቀበል መብቱ የተጠበቀ ነው ፡፡ ጥርጣሬን ለማስቀረት የቀይ መስቀል ኤ.ፒ.አይ. ወይም የውሂብ ምግቦች ለእርስዎ እንዲገኙ በዚህ ውስጥ የሚያስገድድ አንዳችም ነገር የለም ፣ እናም ማንኛውም መዳረሻ በቀይ መስቀል ብቸኛ እና በፍፁም ውሳኔ ውስጥ መሆኑን ይስማማሉ እና ይቀበላሉ ፡፡", + "reserve_rights": "ቀይ መስቀል ኤፒአይ እና የመረጃ ምግቦች ሙሉ በሙሉ ወይም በከፊል ለጊዜው ወይም በቋሚነት በማንኛውም ጊዜ ያለ ቅድመ ማስጠንቀቂያ የመቀየር እና \/ ወይም ከአሁን በኋላ የመቀበል መብቱ የተጠበቀ ነው ፡፡ ጥርጣሬን ለማስቀረት የቀይ መስቀል ኤ.ፒ.አይ. ወይም የውሂብ ምግቦች ለእርስዎ እንዲገኙ በዚህ ውስጥ የሚያስገድድ አንዳችም ነገር የለም ፣ እናም ማንኛውም መዳረሻ በቀይ መስቀል ብቸኛ እና በፍፁም ውሳኔ ውስጥ መሆኑን ይስማማሉ እና ይቀበላሉ ፡፡", "severability": { "body": "የኤ.ፒ.አይ. ውሎች ማንኛውም ቃል ወይም አቅርቦት ዋጋ ቢስነት የሌላ ማንኛውም አቅርቦት ትክክለኛነት ላይ ተጽዕኖ አይኖረውም ፡፡", "heading": "ሊሰበር የሚችልና የሚተው\n" }, "suspension": { - "body": "ቀይ መስቀሉ በኤፒአይ ውሎች ላይ በተጠቀሰው መሠረት ኤፒአይ ወይም የውሂብ ምግብ ባልተፈቀደ አጠቃቀም ላይ የተሰማሩ እንደሆኑ ወይም ኤ.ፒ.አይ ወይም የውሂብ ምግብን እየተጠቀሙ መሆኑን የሚወስን ከሆነ በቀይ መስቀል ብቸኛ ምርጫው መዳረሻዎን የማገድ ወይም የማቋረጥ መብቱ የተጠበቀ ነው ፡፡ በማንኛውም ሰው ወይም በቀይ መስቀል አውታረመረቦች ደህንነት እና / ወይም ደህንነት ላይ አደጋ በሚያደርስ / በሚጎዳ እንቅስቃሴ ውስጥ ፡፡", + "body": "ቀይ መስቀሉ በኤፒአይ ውሎች ላይ በተጠቀሰው መሠረት ኤፒአይ ወይም የውሂብ ምግብ ባልተፈቀደ አጠቃቀም ላይ የተሰማሩ እንደሆኑ ወይም ኤ.ፒ.አይ ወይም የውሂብ ምግብን እየተጠቀሙ መሆኑን የሚወስን ከሆነ በቀይ መስቀል ብቸኛ ምርጫው መዳረሻዎን የማገድ ወይም የማቋረጥ መብቱ የተጠበቀ ነው ፡፡ በማንኛውም ሰው ወይም በቀይ መስቀል አውታረመረቦች ደህንነት እና \/ ወይም ደህንነት ላይ አደጋ በሚያደርስ \/ በሚጎዳ እንቅስቃሴ ውስጥ ፡፡", "heading": "እገዳ ወይም ማቋረጥ" } }, diff --git a/resources/lang/ar.json b/resources/lang/ar.json index 5e7aced..46fd668 100644 --- a/resources/lang/ar.json +++ b/resources/lang/ar.json @@ -449,9 +449,9 @@ "immediate": "فوري", "warning": "تحذير", "anticipated": "متوقع", - "assess_and_plan": "تقييم وتخطيط", - "mitigate_risks": "تخفيف المخاطرة", - "prepare_to_respond": "الاستعداد للاستجابة", + "assess_and_plan":"تقييم وتخطيط", + "mitigate_risks":"تخفيف المخاطرة", + "prepare_to_respond":"الاستعداد للاستجابة", "recover": "التعافي" }, "content": { @@ -594,8 +594,7 @@ "desc_tool": "قدم وصفًا موجزًا عن الخطر والرسائل. يجب أن يكون هذا من 1-3 جمل.", "title_tool": "على سبيل المثال: رسائل السلامة للفيضانات", "safety_tool": "هذا إجراء ذو أولوية يجب على الشخص اتخاذه للحفاظ على سلامته. يجب أن تكون الرسالة موجهة نحو العمل وموجزة وأقل من 50 حرفًا.", - "supporting_tool": "يوفر هذا مزيدًا من التفاصيل لدعم الإجراء الرئيسي ذي الأولوية. يجب أن تكون الرسالة موجهة نحو العمل وموجزة.", - "mitigate_risk": "تخفيف المخاطرة" + "supporting_tool": "يوفر هذا مزيدًا من التفاصيل لدعم الإجراء الرئيسي ذي الأولوية. يجب أن تكون الرسالة موجهة نحو العمل وموجزة." }, "message_editor": { "title": "محرر الإسناد", diff --git a/resources/lang/bn.json b/resources/lang/bn.json index b872f5a..4efe0b2 100644 --- a/resources/lang/bn.json +++ b/resources/lang/bn.json @@ -197,15 +197,13 @@ "steps": { "one": { "heading": "১ম ধাপ - সাইন আপ", - "body": "নিরাপত্তা বার্তা ডেটাবেস API থেকে ডেটা ব্যবহার শুরু করতে, প্রথমে নিরাপত্তা বার্তা ডেটাবেস পোর্টালে {0} করুন।\n\nআপনি আপনার ফেসবুক ও গুগল অ্যাকাউন্ট অথবা একটি ইমেল ঠিকানা ব্যবহার করে একটি অ্যাকাউন্ট তৈরি করতে পারেন।", - "create_account_alt": "অ্যাকাউন্ট তৈরি করুন", + "body": "নিরাপত্তা বার্তা ডেটাবেস API থেকে ডেটা ব্যবহার শুরু করতে, প্রথমে নিরাপত্তা বার্তা ডেটাবেস পোর্টালে {0} করুন।\n\nআপনি আপনার ফেসবুক ও গুগল অ্যাকাউন্ট অথবা একটি ইমেল ঠিকানা ব্যবহার করে একটি অ্যাকাউন্ট তৈরি করতে পারেন।", "create_account_alt": "অ্যাকাউন্ট তৈরি করুন", "existing_account": "আপনার যদি ইতিমধ্যে একটি অ্যাকাউন্ট থাকে, তবে অনুগ্রহ করে {0} দিন।", "login_cta": "লগ ইন করুন", "sign_up_cta": "সাইন আপ করুন" }, "two": { - "body": "API ব্যবহার করতে, আপনাকে নিরাপত্তা বার্তা ডেটাবেস পোর্টালে একটি অ্যাপ্লিকেশন তৈরি করতে হবে। আপনি কী তৈরি করছেন সে সম্পর্কে আমাদের কিছু বলুন।", - "create_app_alt": "অ্যাপ তৈরি করুন", + "body": "API ব্যবহার করতে, আপনাকে নিরাপত্তা বার্তা ডেটাবেস পোর্টালে একটি অ্যাপ্লিকেশন তৈরি করতে হবে। আপনি কী তৈরি করছেন সে সম্পর্কে আমাদের কিছু বলুন।", "create_app_alt": "অ্যাপ তৈরি করুন", "heading": "২য় ধাপ- অ্যাপ তৈরি করুন" }, "three": { @@ -216,8 +214,7 @@ }, "four": { "api_docs_cta": "এপিআই নথিকরণ", - "body": "নিরাপত্তা বার্তা ডেটাবেস API HTTP(S) ব্যবহার করে এবং প্রকাশিত ডেটা পাওয়ার জন্য RESTful এন্ডপয়েন্ট সরবরাহ করে।\n\nপ্রতিটি অনুরোধ পূর্ববর্তী ধাপে তৈরি API কী ব্যবহার করে প্রমাণীকরণ করা আবশ্যক।", - "example_title": "অনুরোধের উদাহরণ", + "body": "নিরাপত্তা বার্তা ডেটাবেস API HTTP(S) ব্যবহার করে এবং প্রকাশিত ডেটা পাওয়ার জন্য RESTful এন্ডপয়েন্ট সরবরাহ করে।\n\nপ্রতিটি অনুরোধ পূর্ববর্তী ধাপে তৈরি API কী ব্যবহার করে প্রমাণীকরণ করা আবশ্যক।", "example_title": "অনুরোধের উদাহরণ", "heading": "ধাপ ৪- অনুরোধ করুন", "moreInfo": "এপিআই -এর এন্ড পয়েন্টগুলোর উপর অতিরিক্ত তথ্য পেতে, {0} দেখুন।" } @@ -441,9 +438,9 @@ "immediate": "তাৎক্ষণিক", "warning": "সতর্কীকরণ", "anticipated": "প্রত্যাশিত", - "assess_and_plan": "মূল্যায়ন এবং পরিকল্পনা", - "mitigate_risks": "ঝুঁকি হ্রাস করুন", - "prepare_to_respond": "সাড়া দিতে প্রস্তুত", + "assess_and_plan":"মূল্যায়ন এবং পরিকল্পনা", + "mitigate_risks":"ঝুঁকি হ্রাস করুন", + "prepare_to_respond":"সাড়া দিতে প্রস্তুত", "recover": "পুনরুদ্ধার" }, "content": { @@ -526,7 +523,7 @@ "seasonalForecast_extra": "ঋতু ভিত্তিক পূর্বাভাস হল একটি বিপজ্জনক ঘটনার পূর্বাভাসের বিবৃতি। গৃহীত পদক্ষেপগুলো হচ্ছে পরিবারকে সুরক্ষা করার জন্য সম্ভাব্য ঝুঁকিগুলো ধারণা করা এবং ওগুলো কমাতে পরিকল্পিতভাবে কাজ করা।", "watch": "পর্যবেক্ষণ করা", "watch_help": "সাড়া দিতে প্রস্তুত", - "watch_extra": "যখন একটি বিপজ্জনক ঘটনার ঝুঁকি অত্যন্ত প্রবল হয়ে ওঠে তখন একটি পর্যবেক্ষন জারি করা হয় কিন্তু এর উপস্থিতি, অবস্থান এবং/বা সময় তখন পর্যন্ত অনুপস্থিত থাকে। এর উদ্দেশ্য হল প্রতিরক্ষামূলক কাজ এবং প্রস্তুতির জন্য পর্যাপ্ত সময় দেয়া।", + "watch_extra": "যখন একটি বিপজ্জনক ঘটনার ঝুঁকি অত্যন্ত প্রবল হয়ে ওঠে তখন একটি পর্যবেক্ষন জারি করা হয় কিন্তু এর উপস্থিতি, অবস্থান এবং\/বা সময় তখন পর্যন্ত অনুপস্থিত থাকে। এর উদ্দেশ্য হল প্রতিরক্ষামূলক কাজ এবং প্রস্তুতির জন্য পর্যাপ্ত সময় দেয়া।", "warning": "সতর্কীকরণ", "warning_help": "সাড়া দিতে প্রস্তুত", "warning_extra": "যখন কোন বিপজ্জনক ঘটনা ঘটে, ঘটা আসন্ন হয় বা ঘটে যাওয়ার খুব বেশি সম্ভাবনা থাকে তখন একটি সতর্কতা জারি করা হয়। এর অর্থ হল পরিস্থিতি জীবন বা সম্পত্তির জন্য হুমকিস্বরূপ। এই বিপদের সম্মুখে মানুষদের প্রতিরক্ষামূলক পদক্ষেপ নেওয়া দরকার।", @@ -553,8 +550,7 @@ "disaster_risk_reduction": "দুর্যোগ ঝুঁকি হ্রাস", "disaster_risk_reduction_description": "পিএপিই থেকে মূল নিরাপত্তা বার্তা", "recovery": "পুনরুদ্ধার", - "recovery_description": "পুনরুদ্ধার কার্যক্রমের জন্য মূল নিরাপত্তা", - "mitigate_risk": "ঝুঁকি হ্রাস করুন" + "recovery_description": "পুনরুদ্ধার কার্যক্রমের জন্য মূল নিরাপত্তা" }, "message_editor": { "title": "অ্যাট্রিবিউশন সম্পাদক", @@ -614,7 +610,7 @@ "bad_request_error_codes": { "30001": "কলামের শিরোনামগুলো টেমপ্লেটের সাথে মিলছে না", "30002": "অ‍্যাট্রিবিউশনের নাম, বার্তা অথবা URL অনুপস্থিত", - "30003": "অকার্যকর অ‍্যাট্রিবিউশন URL - অনুগ্রহ করে নিশ্চিত করুন যে প্রোটোকল উপস্থিত, যেমন https: //", + "30003": "অকার্যকর অ‍্যাট্রিবিউশন URL - অনুগ্রহ করে নিশ্চিত করুন যে প্রোটোকল উপস্থিত, যেমন https: \/\/", "40001": "অবৈধ দেশ কোড প্রদান করা হয়েছে", "40002": "যে সমাজ নির্বাচিত করা হয়েছে তা নির্বাচিত ফাইলের মধ্যে থাকা সমাজের সঙ্গে মিলছে না", "40003": "যে তারিখে নির্বাচিত ফাইলটি এক্সপোর্ট করা হয়েছে তা ত্রুটিযুক্ত এবং ইমপোর্ট সম্পূর্ণ করা যায় নি" @@ -685,7 +681,7 @@ }, "landing": { "strapline": "নিরাপত্তা বার্তা ডেটাবেস পরিষেবা", - "strapline_part_2": "গ্লোবাল রেড ক্রস / রেড ক্রিসেন্ট এর মূল সুরক্ষা বার্তা", + "strapline_part_2": "গ্লোবাল রেড ক্রস \/ রেড ক্রিসেন্ট এর মূল সুরক্ষা বার্তা", "head_1": "IFRC নিরাপত্তা", "head_2": "বার্তা ডেটাবেস", "head_text_1": "IFRC জনসচেতনতা এবং এর উপর ভিত্তি করে নিরাপত্তা বার্তা", @@ -740,7 +736,7 @@ "fake_alert_heading": "চরম ঠান্ডার জন্য সতর্কীকরণ", "fake_alert_description": "Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est.", "fake_alert_time": "১ ঘণ্টা পূর্বে", - "fake_alert_time_exact": "০৫/০২/১৮ তারিখে ০৫:১৫ কেন্দ্রীয় সময়", + "fake_alert_time_exact": "০৫\/০২\/১৮ তারিখে ০৫:১৫ কেন্দ্রীয় সময়", "use_cases": { "heading": "আরও জানুন", "first_heading": "এটা কিভাবে কাজ করে", @@ -781,7 +777,7 @@ }, "data_preview": { "heading": "নিরাপত্তা বার্তা", - "sub_heading": "বিশ্বব্যাপী রেড ক্রস / রেড ক্রিসেন্ট ন্যাশনাল সোসাইটির কাছ থেকে কী অ‍্যাকশন মেসেজগুলো দেখতে সাইন আপ করুন" + "sub_heading": "বিশ্বব্যাপী রেড ক্রস \/ রেড ক্রিসেন্ট ন্যাশনাল সোসাইটির কাছ থেকে কী অ‍্যাকশন মেসেজগুলো দেখতে সাইন আপ করুন" }, "footer": { "terms_conditions": "নিয়ম ও শর্তাবলী", @@ -837,10 +833,10 @@ "industries": { "media": "মিডিয়া", "emergency": "জরুরি ব্যবস্থাপনা", - "non_profit": "অলাভজনক/এনজিও", + "non_profit": "অলাভজনক\/এনজিও", "humanitarian": "মানবিক সাহায্য সংস্থা", - "red_cross": "রেড ক্রস / রেড ক্রিসেন্ট", - "education": "শিক্ষা/একাডেমিয়া", + "red_cross": "রেড ক্রস \/ রেড ক্রিসেন্ট", + "education": "শিক্ষা\/একাডেমিয়া", "gov": "সরকারী সংস্থা", "other": "অন্যান্য" }, @@ -855,9 +851,9 @@ "body": "ডিসট্রিক্ট অফ কলম্বিয়ার আইন গুলির দ্বারা কোনও নীতি কার্যকর না করে এই চুক্তির অধীনে থাকা সমস্ত অধিকার এবং বাধ্যবাধকতা পরিচালনা করবে।", "heading": "প্রযোজ্য আইন:" }, - "body": "রেড ক্রস প্রদত্ত রেজিষ্ট্রেশন কী-এর গোপনীয়তা এবং সুরক্ষা বজায় রাখার জন্য আপনি দায় বদ্ধ থাকবেন। ডেটা ফিড গুলি গ্রহণ করা চালিয়ে যাওয়ার জন্য মাঝে মাঝে আপডেট হিসাবে API-এর সাথে সামঞ্জস্য বজায় রাখার জন্য আপনি দায়বদ্ধ থাকবেন। রেড ক্রস তার নিজস্ব বিবেচনার ভিত্তিতে এপিআই এবং ডেটা ফিড গুলির আপডেট সংস্করণ প্রকাশ করতে পারে। নতুন সংস্করণগুলো পূর্ববর্তী বাস্তবায়নের সাথে সামঞ্জস্যপূর্ণ নাও হতে পারে এবং আপনি সর্বদা ডেটা ফিড গুলির সর্বশেষ আপডেট হওয়া সংস্করণটি ব্যবহার করতে সম্মত থাকবেন।\n\nআপনাকে সম্মত হতে হবে যে এপিআই বা রেড ক্রসের কোনও সফটওয়্যারের কোনও অংশ সংশোধন, বিতরণ, ডি কম্পাইল, বিচ্ছিন্ন করা, বা রিভার্স ইনজিনিয়ারিং করা যাবে না।\n\nআপনি API বা ডেটা ফিড গুলি এমনভাবে ব্যবহার করতে পারবেন না যা যুক্তিসঙ্গত অনুরোধের পরিমাণকে ছাড়িয়ে যায় বা অতিরিক্ত বা আপত্তিজনক ব্যবহার করে, যা রেড ক্রসের নিজস্ব বিবেচনার ভিত্তিতে নির্ধারিত।\n\nআপনি এপিআই অথবা ডেটা ফিড গুলি এমনভাবে ব্যবহার করতে পারবেন না যা বেআইনী, বিভ্রান্তিকর, অবহেলাপূর্ণ, বিদ্বেষপূর্ণ, যা ক্ষতির কারণ হতে পারে অথবা রেড ক্রস, এর পরিষেবা সরবরাহকারী, এর কনটেন্ট সরবরাহকারী, বা অন্য কোনও ব্যক্তিকে ক্ষতি করে, যা রেড ক্রস দ্বারা এর নিজস্ব বিবেচনার ভিত্তিতে নির্ধারিত।\n\nরেড ক্রস আপনার এপিআই এবং ডেটা ফিড গুলির ব্যবহার পর্যবেক্ষণ করতে পারে। আপনি এই ধরনের পর্যবেক্ষণে হস্তক্ষেপ করার জন্য কোনও প্রযুক্তিগত পদ্ধতি ব্যবহার নাও করতে পারেন, এবং রেড ক্রস এই জাতীয় কোনও হস্তক্ষেপ কাটিয়ে উঠতে প্রযুক্তিগত পদ্ধতি ব্যবহার করতে পারে।\n\nপ্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার করা বার্তা গুলির ব্যবহার কেবলমাত্র বর্তমান হিসাবে উপস্থাপিত হবে বা তৎক্ষনাৎ বর্তমান জরুরী সেটিং-এর সাথে সম্পর্কিত সম্পর্কিত ইভেন্ট অ্যালার্টের আপডেট করা হবে, এবং আপনি রেড ক্রস দ্বারা ডেটা ফিড এবং/অথবা সম্পর্কিত ইভেন্ট সতর্কতার যে কোনও আপডেট হওয়ার পরে পৃথকভাবে প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার করা বার্তাগুলি আপডেট করবেন।\n\nনিজস্ব প্রস্তুতি, প্রতিক্রিয়া, এবং পুনরুদ্ধার বার্তাসমূহ যা আপনি ব‍্যবহার করবেন কেবলমাত্র সংশ্লিষ্ট ভৌগোলিক অঞ্চলের জন‍্য প্রযোজ‍্য হবে। যদি কোনও প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার বার্তা একটি উৎসের সঙ্গে একটি রেফারেন্স যেমন আমেরিকান রেড ক্রস বা অন্য রেড ক্রস বা রেড ক্রিসেন্ট ন্যাশনাল সোসাইটি বা সংগঠন (প্রতিটি ”সোর্স রেফারেন্স”) অন্তর্ভুক্ত করে তবে আপনি ডেটা ফিড গুলোতে প্রদত্ত ফর্মে প্রতিটি প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার এর বার্তাগুলোর সাথে সম্পর্কিত উৎসের রেফারেন্স অন্তর্ভুক্ত করবেন। আপনি আর কোনও উৎস রেফারেন্স ব্যবহার করবেন না।\n\nআপনি অন্য কোন ভাষায় ডেটা ফিড, ইভেন্ট অ্যালার্ট, এবং/অথবা প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার এর বার্তাগুলোর অনুবাদ নাও করতে পারেন, ডেটা ফিড, ইভেন্ট অ্যালার্ট এবং/অথবা প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার এর বার্তাগুলোর কোন ব্যবহার, সম্পাদনা, বা অর্থ পরিবর্তন নাও করতে পারেন।\n\nআপনাকে অবশ্যই নিশ্চিত করতে হবে যে ডেটা ফিড গুলো কেবলমাত্র আপনার দখলে এবং/অথবা নিয়ন্ত্রণে থাকবে।\n\nআপনি প্রান্তিক ব্যবহারকারীদের কাছে বিতরণ করা ইভেন্ট অ্যালার্ট এবং প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার এর বার্তাগুলোতে কোন বিজ্ঞাপন বা স্পনসরশিপ অন্তর্ভুক্ত করার অনুমতি নাও দিতে পারেন।\n\nআপনি পুরোপুরি বা আংশিকভাবে ডাটা ফিডের কোন আর্কাইভ তৈরি নাও করতে পারেন।", + "body": "রেড ক্রস প্রদত্ত রেজিষ্ট্রেশন কী-এর গোপনীয়তা এবং সুরক্ষা বজায় রাখার জন্য আপনি দায় বদ্ধ থাকবেন। ডেটা ফিড গুলি গ্রহণ করা চালিয়ে যাওয়ার জন্য মাঝে মাঝে আপডেট হিসাবে API-এর সাথে সামঞ্জস্য বজায় রাখার জন্য আপনি দায়বদ্ধ থাকবেন। রেড ক্রস তার নিজস্ব বিবেচনার ভিত্তিতে এপিআই এবং ডেটা ফিড গুলির আপডেট সংস্করণ প্রকাশ করতে পারে। নতুন সংস্করণগুলো পূর্ববর্তী বাস্তবায়নের সাথে সামঞ্জস্যপূর্ণ নাও হতে পারে এবং আপনি সর্বদা ডেটা ফিড গুলির সর্বশেষ আপডেট হওয়া সংস্করণটি ব্যবহার করতে সম্মত থাকবেন।\n\nআপনাকে সম্মত হতে হবে যে এপিআই বা রেড ক্রসের কোনও সফটওয়্যারের কোনও অংশ সংশোধন, বিতরণ, ডি কম্পাইল, বিচ্ছিন্ন করা, বা রিভার্স ইনজিনিয়ারিং করা যাবে না।\n\nআপনি API বা ডেটা ফিড গুলি এমনভাবে ব্যবহার করতে পারবেন না যা যুক্তিসঙ্গত অনুরোধের পরিমাণকে ছাড়িয়ে যায় বা অতিরিক্ত বা আপত্তিজনক ব্যবহার করে, যা রেড ক্রসের নিজস্ব বিবেচনার ভিত্তিতে নির্ধারিত।\n\nআপনি এপিআই অথবা ডেটা ফিড গুলি এমনভাবে ব্যবহার করতে পারবেন না যা বেআইনী, বিভ্রান্তিকর, অবহেলাপূর্ণ, বিদ্বেষপূর্ণ, যা ক্ষতির কারণ হতে পারে অথবা রেড ক্রস, এর পরিষেবা সরবরাহকারী, এর কনটেন্ট সরবরাহকারী, বা অন্য কোনও ব্যক্তিকে ক্ষতি করে, যা রেড ক্রস দ্বারা এর নিজস্ব বিবেচনার ভিত্তিতে নির্ধারিত।\n\nরেড ক্রস আপনার এপিআই এবং ডেটা ফিড গুলির ব্যবহার পর্যবেক্ষণ করতে পারে। আপনি এই ধরনের পর্যবেক্ষণে হস্তক্ষেপ করার জন্য কোনও প্রযুক্তিগত পদ্ধতি ব্যবহার নাও করতে পারেন, এবং রেড ক্রস এই জাতীয় কোনও হস্তক্ষেপ কাটিয়ে উঠতে প্রযুক্তিগত পদ্ধতি ব্যবহার করতে পারে।\n\nপ্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার করা বার্তা গুলির ব্যবহার কেবলমাত্র বর্তমান হিসাবে উপস্থাপিত হবে বা তৎক্ষনাৎ বর্তমান জরুরী সেটিং-এর সাথে সম্পর্কিত সম্পর্কিত ইভেন্ট অ্যালার্টের আপডেট করা হবে, এবং আপনি রেড ক্রস দ্বারা ডেটা ফিড এবং\/অথবা সম্পর্কিত ইভেন্ট সতর্কতার যে কোনও আপডেট হওয়ার পরে পৃথকভাবে প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার করা বার্তাগুলি আপডেট করবেন।\n\nনিজস্ব প্রস্তুতি, প্রতিক্রিয়া, এবং পুনরুদ্ধার বার্তাসমূহ যা আপনি ব‍্যবহার করবেন কেবলমাত্র সংশ্লিষ্ট ভৌগোলিক অঞ্চলের জন‍্য প্রযোজ‍্য হবে। যদি কোনও প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার বার্তা একটি উৎসের সঙ্গে একটি রেফারেন্স যেমন আমেরিকান রেড ক্রস বা অন্য রেড ক্রস বা রেড ক্রিসেন্ট ন্যাশনাল সোসাইটি বা সংগঠন (প্রতিটি ”সোর্স রেফারেন্স”) অন্তর্ভুক্ত করে তবে আপনি ডেটা ফিড গুলোতে প্রদত্ত ফর্মে প্রতিটি প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার এর বার্তাগুলোর সাথে সম্পর্কিত উৎসের রেফারেন্স অন্তর্ভুক্ত করবেন। আপনি আর কোনও উৎস রেফারেন্স ব্যবহার করবেন না।\n\nআপনি অন্য কোন ভাষায় ডেটা ফিড, ইভেন্ট অ্যালার্ট, এবং\/অথবা প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার এর বার্তাগুলোর অনুবাদ নাও করতে পারেন, ডেটা ফিড, ইভেন্ট অ্যালার্ট এবং\/অথবা প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার এর বার্তাগুলোর কোন ব্যবহার, সম্পাদনা, বা অর্থ পরিবর্তন নাও করতে পারেন।\n\nআপনাকে অবশ্যই নিশ্চিত করতে হবে যে ডেটা ফিড গুলো কেবলমাত্র আপনার দখলে এবং\/অথবা নিয়ন্ত্রণে থাকবে।\n\nআপনি প্রান্তিক ব্যবহারকারীদের কাছে বিতরণ করা ইভেন্ট অ্যালার্ট এবং প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার এর বার্তাগুলোতে কোন বিজ্ঞাপন বা স্পনসরশিপ অন্তর্ভুক্ত করার অনুমতি নাও দিতে পারেন।\n\nআপনি পুরোপুরি বা আংশিকভাবে ডাটা ফিডের কোন আর্কাইভ তৈরি নাও করতে পারেন।", "contact": "অনুগ্রহ করে এপিআই সম্পর্কিত যে কোন প্রশ্ন করতে রেড ক্রসের সাথে {0} তে যোগাযোগ করুন।", - "disclaimer": "এপিআই এবং ডেটা ফিড গুলি শুধুমাত্র তথ্যমূলক এবং শিক্ষাগত উদ্দেশ্যে সরবরাহ করা হয়, এবং ‘যেমন আছে তেমন’ এবং ‘উপলব্ধ হওয়ার’ ভিত্তিতে সরবরাহ করা হয়। রেড ক্রস কোন ধরণের প্রকাশিত বা নিহিত প্রতিনিধিত্ব বা ওয়ারেন্টি তৈরি করে না। রেড ক্রস প্রকাশিত বা অন্তর্নিহিত সমস্ত ওয়ারেন্টি পরিত্যাগ করে, একটি নির্দিষ্ট উদ্দেশ্যে বাণিজ্য এবং উপযুক্ততার জন্য অন্তর্ভুক্ত কিন্তু অন্তর্নিহিত ওয়ারেন্টির মধ্যে তা সীমাবদ্ধ না। রেড ক্রস এবং এর কর্মচারী, কর্মকর্তা, প্রশাসক এবং প্রতিনিধি এবং লাইসেন্সধারীরা এপিআই, ডেটা ফিড, ইভেন্ট অ্যালার্ট এবং/অথবা প্রিপেয়ার, রেসপন্ড এবং রিকভার মেসেজ ব্যবহার থেকে উদ্ভূত কোন ধরণের ক্ষতির জন্য দায়বদ্ধ হবে না যার মধ্যে অন্তর্ভুক্ত রয়েছে তবে তা প্রত্যক্ষ, পরোক্ষ, আনুষঙ্গিক, শাস্তিমূলক এবং ফলস্বরূপ ক্ষতিতে সীমাবদ্ধ নয়।\n\nরেড ক্রস এপিআই, ডেটা ফিড, ইভেন্ট অ্যালার্ট এবং/অথবা প্রিপেয়ার, রেসপন্ড এবং রিকভার মেসেজ ক্রম, নির্ভুলতা, সত্যতা বা সম্পূর্ণতার গ্যারান্টি দেয় না এবং এখানে প্রদত্ত এপিআই, ডেটা ফিডস, ইভেন্ট অ্যালার্ট এবং/অথবা প্রিপেয়ার, রেসপন্ড এবং রিকভার মেসেজের ক্ষেত্রে কোনও বিলম্ব, ভুল, বা কোন বাদ দেওয়ার সীমাবদ্ধতা ছাড়াই আপনার বা আপনার এন্ড ইউজার বা কোনও তৃতীয় পক্ষের কাছে দায়বদ্ধ থাকবে না।", + "disclaimer": "এপিআই এবং ডেটা ফিড গুলি শুধুমাত্র তথ্যমূলক এবং শিক্ষাগত উদ্দেশ্যে সরবরাহ করা হয়, এবং ‘যেমন আছে তেমন’ এবং ‘উপলব্ধ হওয়ার’ ভিত্তিতে সরবরাহ করা হয়। রেড ক্রস কোন ধরণের প্রকাশিত বা নিহিত প্রতিনিধিত্ব বা ওয়ারেন্টি তৈরি করে না। রেড ক্রস প্রকাশিত বা অন্তর্নিহিত সমস্ত ওয়ারেন্টি পরিত্যাগ করে, একটি নির্দিষ্ট উদ্দেশ্যে বাণিজ্য এবং উপযুক্ততার জন্য অন্তর্ভুক্ত কিন্তু অন্তর্নিহিত ওয়ারেন্টির মধ্যে তা সীমাবদ্ধ না। রেড ক্রস এবং এর কর্মচারী, কর্মকর্তা, প্রশাসক এবং প্রতিনিধি এবং লাইসেন্সধারীরা এপিআই, ডেটা ফিড, ইভেন্ট অ্যালার্ট এবং\/অথবা প্রিপেয়ার, রেসপন্ড এবং রিকভার মেসেজ ব্যবহার থেকে উদ্ভূত কোন ধরণের ক্ষতির জন্য দায়বদ্ধ হবে না যার মধ্যে অন্তর্ভুক্ত রয়েছে তবে তা প্রত্যক্ষ, পরোক্ষ, আনুষঙ্গিক, শাস্তিমূলক এবং ফলস্বরূপ ক্ষতিতে সীমাবদ্ধ নয়।\n\nরেড ক্রস এপিআই, ডেটা ফিড, ইভেন্ট অ্যালার্ট এবং\/অথবা প্রিপেয়ার, রেসপন্ড এবং রিকভার মেসেজ ক্রম, নির্ভুলতা, সত্যতা বা সম্পূর্ণতার গ্যারান্টি দেয় না এবং এখানে প্রদত্ত এপিআই, ডেটা ফিডস, ইভেন্ট অ্যালার্ট এবং\/অথবা প্রিপেয়ার, রেসপন্ড এবং রিকভার মেসেজের ক্ষেত্রে কোনও বিলম্ব, ভুল, বা কোন বাদ দেওয়ার সীমাবদ্ধতা ছাড়াই আপনার বা আপনার এন্ড ইউজার বা কোনও তৃতীয় পক্ষের কাছে দায়বদ্ধ থাকবে না।", "entire_agreement": { "body": "এপিআই শর্তাবলী রেড ক্রস এবং আপনার মধ্যে এর বিষয়বস্তু সম্পর্কিত সম্পূর্ণ এবং একচেটিয়া চুক্তি গঠন করে এবং এখানে নির্দিষ্টভাবে অন্তর্ভুক্ত নয় এমন সমস্ত পূর্ব মৌখিক বা লিখিত বোঝা পড়া, যোগাযোগ বা চুক্তিগুলো বাদ দিয়ে দেয়। রেড ক্রস যে কোন সময় এই চুক্তিটি সংশোধন বা প্রত্যাহার করার অধিকার সংরক্ষণ করে।", "heading": "সম্পূর্ণ চুক্তি:" @@ -865,7 +861,7 @@ "heading": "এপিআই এন্ড ইউজার লাইসেন্সিং চুক্তি", "intro": "সম্মত: পরিষেবাটি ব্যবহার করার মাধ‍্যমে বা প্রদত্ত বক্সটিতে টিক দেওয়ার মাধ‍্যমে, ব্যবহারকারী এই চুক্তিতে আবদ্ধ হতে সম্মত হচ্ছেন।\n\nAPI এমন একটি টুল যা আপনাকে (”আপনি”) রেড ক্রস দ্বারা উপলব্ধ ডেটা ফিড গুলি পুনরুদ্ধার এবং ব্যবহার করতে দেয় যার মধ্যে রয়েছে বিশ্বব্যাপী আবহাওয়া এবং দুর্যোগের ঘটনার সতর্কতা এবং ঘড়ির বিজ্ঞপ্তিগুলো (”ইভেন্ট অ্যালার্ট”) এবং ঝুঁকির ধরণ এবং জরুরির দ্বারা কীভাবে স্থানীয় বিপদের জন্য প্রস্তুতি নেবেন সে সম্পর্কিত বিষয়ে কার্যকর এবং প্রাসঙ্গিক বার্তা গুলির একটি ফিড (\"প্রস্তুত করুন, প্রতিক্রিয়া জানান এবং বার্তা পুনরুদ্ধার করুন\" এবং ইভেন্ট অ্যালার্টের সাথে \"ডেটা ফিডS\")। প্রিপেয়ার, রেসপন্ড, এবং রিকভার বার্তা গুলোর উদ্দেশ্য ইভেন্ট অ্যালার্ট বা অন্যান্য সতর্কতার সাথে যুক্ত হওয়া এবং আপনার নিজের অ্যাপ্লিকেশনে আবহাওয়া এবং দুর্যোগের ঘটনার সাথে সম্পর্কিত বিজ্ঞপ্তিগুলো দেখা। আপনার ডেটা ফিড গুলির ব্যবহার এপিআই শর্তাবলী দ্বারা পরিচালিত হয়।", "license_limitations": { - "body": "আপনি শুধুমাত্র API-এর শর্তাবলী সাপেক্ষে আপনার নিজের অ্যাপ্লিকেশনের সাথে সামঞ্জস্য রেখে ডেটা ফিড গুলি ব্যবহার করতে পারেন এবং মাঝে মাঝে আপডেট হওয়ার সাথে সাথে আপনি API-এর সাথে সামঞ্জস্য বজায় রাখতে পারেন। আপনাকে এপিআই শর্তাবলী সাপেক্ষে ডেটা ফিডগুলি থেকে স্বতন্ত্র ইভেন্ট অ্যালার্ট এর জরুরি সেটিং-এর সাথে সামঞ্জস্য রেখে আপনার নিজস্ব অ্যাপ্লিকেশনের প্রান্তিক ব্যবহারকারীদের ইভেন্ট অ্যালার্ট এবং প্রাসঙ্গিক পরিপ্রেক্ষিত ভিত্তিক প্রস্তুতি, প্রতিক্রিয়া, এবং বার্তা পুনরুদ্ধার, ডাউনলোড, ব্যবহার, পুনরুত্পাদন এবং বিতরণ করার একটি অ-একচেটিয়া, সীমিত এবং প্রত্যাখ্যান যোগ্য অধিকার দেওয়া হয় (“প্রান্তিক ব্যবহারকারী”)। আপনি শুধুমাত্র এপিআই শর্তাবলী অনুসারে ডেটা ফিড গুলির অ-বাণিজ্যিক ব্যবহারের সুবিধার্থে এপিআই ব্যবহার করতে পারবেন। আপনি কোন ইভেন্টে এপিআই ব্যবহার করে ডেটা ফিডস, ইভেন্ট অ্যালার্ট এবং/অথবা প্রস্তুতি, প্রতিক্রিয়া এবং বার্তা পুনরুদ্ধার, বাণিজ্যিক ব্যবহার সহজতর করতে পারবেন না।\nসীমাবদ্ধতা ছাড়াই, পুনরায় বিক্রয়, ওগুলোতে প্রবেশের মূল্য নেয়া, পুনরায় বিতরণ করার জন্য মূল্য গ্রহন, বা ওগুলোর উপর ভিত্তি করে কিছু তৈরি করা হলে তার উপর মূল্য গ্রহন করতে পারবেন না। রেড ক্রস এবং এর লাইসেন্স দাতারা এতে এবং এর মধ্যে API- এর সমস্ত শিরোনাম, মালিকানা, অধিকার এবং আগ্রহ বজায় রাখেন, বার্তার প্রস্তুতি, বার্তার প্রতিক্রিয়া এবং পুনরুদ্ধার, ইভেন্ট সতর্কতা, ডেটা ফিড এবং উত্স রেফারেন্স গুলি (নীচে সংজ্ঞায়িত হিসাবে) এতে রয়েছে। স্পষ্টভাবে অনুমোদিত নয় এমন সমস্ত অধিকার সংরক্ষিত।", + "body": "আপনি শুধুমাত্র API-এর শর্তাবলী সাপেক্ষে আপনার নিজের অ্যাপ্লিকেশনের সাথে সামঞ্জস্য রেখে ডেটা ফিড গুলি ব্যবহার করতে পারেন এবং মাঝে মাঝে আপডেট হওয়ার সাথে সাথে আপনি API-এর সাথে সামঞ্জস্য বজায় রাখতে পারেন। আপনাকে এপিআই শর্তাবলী সাপেক্ষে ডেটা ফিডগুলি থেকে স্বতন্ত্র ইভেন্ট অ্যালার্ট এর জরুরি সেটিং-এর সাথে সামঞ্জস্য রেখে আপনার নিজস্ব অ্যাপ্লিকেশনের প্রান্তিক ব্যবহারকারীদের ইভেন্ট অ্যালার্ট এবং প্রাসঙ্গিক পরিপ্রেক্ষিত ভিত্তিক প্রস্তুতি, প্রতিক্রিয়া, এবং বার্তা পুনরুদ্ধার, ডাউনলোড, ব্যবহার, পুনরুত্পাদন এবং বিতরণ করার একটি অ-একচেটিয়া, সীমিত এবং প্রত্যাখ্যান যোগ্য অধিকার দেওয়া হয় (“প্রান্তিক ব্যবহারকারী”)। আপনি শুধুমাত্র এপিআই শর্তাবলী অনুসারে ডেটা ফিড গুলির অ-বাণিজ্যিক ব্যবহারের সুবিধার্থে এপিআই ব্যবহার করতে পারবেন। আপনি কোন ইভেন্টে এপিআই ব্যবহার করে ডেটা ফিডস, ইভেন্ট অ্যালার্ট এবং\/অথবা প্রস্তুতি, প্রতিক্রিয়া এবং বার্তা পুনরুদ্ধার, বাণিজ্যিক ব্যবহার সহজতর করতে পারবেন না।\nসীমাবদ্ধতা ছাড়াই, পুনরায় বিক্রয়, ওগুলোতে প্রবেশের মূল্য নেয়া, পুনরায় বিতরণ করার জন্য মূল্য গ্রহন, বা ওগুলোর উপর ভিত্তি করে কিছু তৈরি করা হলে তার উপর মূল্য গ্রহন করতে পারবেন না। রেড ক্রস এবং এর লাইসেন্স দাতারা এতে এবং এর মধ্যে API- এর সমস্ত শিরোনাম, মালিকানা, অধিকার এবং আগ্রহ বজায় রাখেন, বার্তার প্রস্তুতি, বার্তার প্রতিক্রিয়া এবং পুনরুদ্ধার, ইভেন্ট সতর্কতা, ডেটা ফিড এবং উত্স রেফারেন্স গুলি (নীচে সংজ্ঞায়িত হিসাবে) এতে রয়েছে। স্পষ্টভাবে অনুমোদিত নয় এমন সমস্ত অধিকার সংরক্ষিত।", "heading": "লাইসেন্স এবং সীমাবদ্ধতা:" }, "overview": { @@ -884,17 +880,17 @@ "two": "সীমাবদ্ধতা ছাড়াই কোন সত্যতা যাচাইয়ের প্রযুক্তিসহ, রেড ক্রস বা এপিআই দ্বারা নিযুক্ত কোনও কী বা সুরক্ষা ব্যবস্থা এড়াতে বা সংশোধন করতে।", "three": "আপনার নিজের অ্যাকাউন্টের জন্য যা আপনাকে সরবরাহ করা হয়েছে তা ছাড়া রেড ক্রসের অন‍্য সাইন-ইন নাম, পাসওয়ার্ড বা অন্যান্য যাচাইকরণ গোপনীয় তথ‍্য লাভের অনুরোধ করা, সংগ্রহ করা, আবেদন করা বা অন্য কোনো উপায়ে সংগ্রহ করা।", "four": "রেডক্রস বা অন্য কোন রেড ক্রস বা রেড ক্রিসেন্ট ন্যাশনাল সোসাইটি বা সংগঠনের সাথে সংশ্লিষ্টতা, স্পন্সরশিপ বা এনডোর্সমেন্ট প্রকাশ করা।", - "five": "API বা ডেটা ফিড গুলো, ইভেন্ট অ্যালার্টস এবং/অথবা প্রস্তুতি, প্রতিক্রিয়া এবং বার্তা পুনরুদ্ধারের মালিকানা আপনার বা আপনি তা তৈরি করেছেন তা প্রকাশ বা নিহিত করতে।", + "five": "API বা ডেটা ফিড গুলো, ইভেন্ট অ্যালার্টস এবং\/অথবা প্রস্তুতি, প্রতিক্রিয়া এবং বার্তা পুনরুদ্ধারের মালিকানা আপনার বা আপনি তা তৈরি করেছেন তা প্রকাশ বা নিহিত করতে।", "six": "কোনো ভাইরাস, ও‍য়ার্মস ডিফেক্টস, ট্রোজান হর্স অথবা অন‍্য কোনও ধ্বংসাত্মক কিছু ট্রান্সমিট করা।" } }, - "reserve_rights": "রেড ক্রস পূর্ব ঘোষণা ছাড়াই যে কোন সময়ে অস্থায়ী বা স্থায়ীভাবে সম্পূর্ণ বা আংশিকভাবে এপিআই এবং ডেটা ফিডস পরিবর্তন এবং/ বা আর সরবরাহ না করার অধিকার সংরক্ষণ করে। সংশয় এড়াতে, এ কথা জানানো হচ্ছে যে এগুলোর মধ্যে কোন কিছুই রেড ক্রসকে তার API বা ডেটা ফিড গুলো আপনার কাছে উপলভ‍্য করতে বাধ্য করে না এবং আপনি সম্মত হচ্ছেন এবং স্বীকার করছেন যে, যে কোন প্রকার অ্যাক্সেস রেড ক্রসের একমাত্র এবং পূর্ণ ইচ্ছাধীনতার মধ্যে রয়েছে।", + "reserve_rights": "রেড ক্রস পূর্ব ঘোষণা ছাড়াই যে কোন সময়ে অস্থায়ী বা স্থায়ীভাবে সম্পূর্ণ বা আংশিকভাবে এপিআই এবং ডেটা ফিডস পরিবর্তন এবং\/ বা আর সরবরাহ না করার অধিকার সংরক্ষণ করে। সংশয় এড়াতে, এ কথা জানানো হচ্ছে যে এগুলোর মধ্যে কোন কিছুই রেড ক্রসকে তার API বা ডেটা ফিড গুলো আপনার কাছে উপলভ‍্য করতে বাধ্য করে না এবং আপনি সম্মত হচ্ছেন এবং স্বীকার করছেন যে, যে কোন প্রকার অ্যাক্সেস রেড ক্রসের একমাত্র এবং পূর্ণ ইচ্ছাধীনতার মধ্যে রয়েছে।", "severability": { "body": "এপিআই শর্তাবলির কোন শর্তের বা বিধানের অবৈধতা অন্য কোন বিধানের বৈধতা প্রভাবিত করবে না।", "heading": "তীব্রতা এবং অধিকার পরিত্যাগের ঘোষণা:" }, "suspension": { - "body": "রেড ক্রস যদি এর পূর্ণ স্বাধীন ইচ্ছায় ঠিক করে যে আপনি এপিআই শর্তাবলির এপিআই বা ডাটা ফিড ব্যবহারের অননুমোদিত ব‍্যবহারে নিয়োজিত বা আপনি এপিআই বা ডেটা ফিড এমন কোন কাজে ব্যবহার করছেন যা রেডক্রস নেটওয়ার্কগুলোর বা কোন ব্যক্তির নিরাপত্তার জন্য হুমকি/আপস করে তাহলে রেড ক্রস আপনার প্রবেশাধিকার স্থগিত বা স্্থগিত করার অধিকার রাখে।", + "body": "রেড ক্রস যদি এর পূর্ণ স্বাধীন ইচ্ছায় ঠিক করে যে আপনি এপিআই শর্তাবলির এপিআই বা ডাটা ফিড ব্যবহারের অননুমোদিত ব‍্যবহারে নিয়োজিত বা আপনি এপিআই বা ডেটা ফিড এমন কোন কাজে ব্যবহার করছেন যা রেডক্রস নেটওয়ার্কগুলোর বা কোন ব্যক্তির নিরাপত্তার জন্য হুমকি\/আপস করে তাহলে রেড ক্রস আপনার প্রবেশাধিকার স্থগিত বা স্্থগিত করার অধিকার রাখে।", "heading": "স্থগিতকরণ বা সমাপ্তি:" } }, @@ -907,7 +903,7 @@ "alert_preview": "সতর্কতার পূর্বরূপ", "cap_alerts": "সিএপি এলার্ট", "onset": "শুরু", - "severity": "গুরুতর/কঠোরতা", + "severity": "গুরুতর\/কঠোরতা", "title": "শিরোনাম", "date": "তারিখ", "headline": "শিরোনাম", @@ -921,7 +917,7 @@ "type": "ধরন", "status": "স্ট‍্যাটাস", "urgency": "ত্বরা", - "severity": "গুরুতর/কঠোরতা", + "severity": "গুরুতর\/কঠোরতা", "certainty": "নিশ্চয়তা", "sent": "প্রেরিত", "effective": "কার্যকর", diff --git a/resources/lang/de.json b/resources/lang/de.json index 0a38610..aa4e494 100644 --- a/resources/lang/de.json +++ b/resources/lang/de.json @@ -40,7 +40,7 @@ "name": "Name", "first_name": "Vorname", "last_name": "Nachname", - "toggle_navigation": "Navigation ein-/ausblenden", + "toggle_navigation": "Navigation ein-\/ausblenden", "you_are_logged_in": "Sie sind eingeloggt!", "reset_password": "Passwort zurücksetzen", "set_password": "Passwort einrichten", @@ -441,9 +441,9 @@ "immediate": "Sofort", "warning": "Warnung", "anticipated": "Erwartet", - "assess_and_plan": "Bewerten und planen", - "mitigate_risks": "Risiko mindern", - "prepare_to_respond": "Auf die Reaktion vorbereiten", + "assess_and_plan":"Bewerten und planen", + "mitigate_risks":"Risiko mindern", + "prepare_to_respond":"Auf die Reaktion vorbereiten", "recover": "Wiederherstellen" }, "content": { @@ -526,7 +526,7 @@ "seasonalForecast_extra": "Eine saisonale Vorhersage ist eine Aussage über die Vorhersehbarkeit eines gefährlichen Ereignisses. Die ergriffenen Maßnahmen dienen der Bewertung potenzieller Risiken und der Planung von Aktivitäten zur Risikominderung und zum Schutz des Haushalts.", "watch": "Ansehen", "watch_help": "Bereiten Sie sich vor, zu reagieren", - "watch_extra": "Eine Frühwarnung wird ausgegeben, wenn das Risiko eines gefährlichen Ereignisses erheblich gestiegen ist, aber sein Auftreten, sein Ort und/oder sein Zeitpunkt noch ungewiss sind. Sie soll genügend Zeit für Schutzmaßnahmen und die Vorbereitung auf die Reaktion bieten.", + "watch_extra": "Eine Frühwarnung wird ausgegeben, wenn das Risiko eines gefährlichen Ereignisses erheblich gestiegen ist, aber sein Auftreten, sein Ort und\/oder sein Zeitpunkt noch ungewiss sind. Sie soll genügend Zeit für Schutzmaßnahmen und die Vorbereitung auf die Reaktion bieten.", "warning": "Warnung", "warning_help": "Bereiten Sie sich vor, zu reagieren", "warning_extra": "Eine Warnung wird ausgegeben, wenn ein gefährliches Ereignis eintritt, unmittelbar bevorsteht oder eine sehr hohe Eintrittswahrscheinlichkeit hat. Es bedeutet, dass die Bedingungen eine Gefahr für Leben oder Eigentum darstellen. Personen, die sich im Wirkungsbereich dieser Gefahr befinden, müssen Schutzmaßnahmen ergreifen.", @@ -558,8 +558,7 @@ "content_edit_title": "Inhalt bearbeiten", "content_add_hazard_title": "Gefahr hinzufügen", "key_message_label": "Titel der Hauptnachricht", - "supporting_message_label": "Unterstützende Nachricht", - "mitigate_risk": "Risiko mindern" + "supporting_message_label": "Unterstützende Nachricht" }, "message_editor": { "title": "Attribution Editor", @@ -619,7 +618,7 @@ "bad_request_error_codes": { "30001": "Spaltenüberschriften stimmen nicht mit der Vorlage überein", "30002": "Zuordnungsname, Nachricht oder URL fehlen", - "30003": "Ungültige Zuordnungs-URL - bitte stellen Sie sicher, dass das Protokoll vorhanden ist, z. B. https://", + "30003": "Ungültige Zuordnungs-URL - bitte stellen Sie sicher, dass das Protokoll vorhanden ist, z. B. https:\/\/", "40001": "Ungültiger Ländercode angegeben", "40002": "Ausgewählte Gesellschaft stimmt nicht mit der Gesellschaft für die ausgewählte Datei überein", "40003": "Das Datum, an dem die ausgewählte Datei exportiert wurde, ist fehlerhaft und der Import kann nicht abgeschlossen werden" @@ -690,7 +689,7 @@ }, "landing": { "strapline": "Datenbankdienst für Sicherheitsmeldungen", - "strapline_part_2": "Die wichtigsten Sicherheitsbotschaften des Globalen Roten Kreuzes / Roten Halbmondes", + "strapline_part_2": "Die wichtigsten Sicherheitsbotschaften des Globalen Roten Kreuzes \/ Roten Halbmondes", "head_1": "IFRC-Sicherheit", "head_2": "Nachrichten-Datenbank", "head_text_1": "Sicherheitsbotschaften auf der Grundlage von IFRC Public Awareness and", @@ -786,7 +785,7 @@ }, "data_preview": { "heading": "Sicherheitshinweise", - "sub_heading": "Melden Sie sich an und sehen Sie sich die wichtigsten Aktionsbotschaften der Nationalen Gesellschaften des Roten Kreuzes / Roten Halbmondes in aller Welt an" + "sub_heading": "Melden Sie sich an und sehen Sie sich die wichtigsten Aktionsbotschaften der Nationalen Gesellschaften des Roten Kreuzes \/ Roten Halbmondes in aller Welt an" }, "footer": { "terms_conditions": "Geschäftsbedingungen", @@ -842,10 +841,10 @@ "industries": { "media": "Mediathek", "emergency": "Notfallmanagement", - "non_profit": "Non-Profit/NGO", + "non_profit": "Non-Profit\/NGO", "humanitarian": "Humanitäre Organisation", - "red_cross": "Rotes Kreuz/Roter Halbmond", - "education": "Bildungswesen/Wissenschaft", + "red_cross": "Rotes Kreuz\/Roter Halbmond", + "education": "Bildungswesen\/Wissenschaft", "gov": "Regierungsbehörde", "other": "Sonstiges" }, @@ -860,9 +859,9 @@ "body": "Die Gesetze des District of Columbia bestimmen alle Rechte und Pflichten dieser Vereinbarung unter Ausschluss der Grundsätze des Kollisionsrechts.", "heading": "Geltendes Recht:" }, - "body": "Sie sind verantwortlich für die Geheimhaltung und Sicherheit des Registrierungsschlüssels, der Ihnen vom Roten Kreuz zur Verfügung gestellt wird. Sie sind dafür verantwortlich, die Kompatibilität mit der von Zeit zu Zeit aktualisierten API aufrechtzuerhalten, um weiterhin die Daten-Feeds zu erhalten. Das Rote Kreuz kann nach eigenem Ermessen aktualisierte Versionen der API und der Daten-Feeds veröffentlichen. Neue Versionen sind möglicherweise nicht mit früheren Implementierungen kompatibel, und Sie erklären sich damit einverstanden, stets die zuletzt aktualisierte Version der Daten-Feeds zu verwenden.\n\nSie erklären sich damit einverstanden, keinen Teil der API oder Software vom Roten Kreuz zu verändern, zu vertreiben, zu entschlüsseln, zu disassemblieren oder zu rekonstruieren.\n\nSie dürfen die API oder Datenfeeds nicht in einer Weise nutzen, die ein angemessenes Anfragevolumen überschreitet oder eine exzessive oder missbräuchliche Nutzung darstellt, wie vom Roten Kreuz nach eigenem Ermessen festgelegt.\n\nSie dürfen die API oder Datenfeeds nicht in einer Weise nutzen, die rechtswidrig, irreführend, fahrlässig, böswillig oder in der Absicht, Schaden zu verursachen, ist oder das Rote Kreuz, seinen Dienstanbietern, seinen Inhaltsanbietern oder einer anderen Person schadet, wie vom Roten Kreuz nach eigenem Ermessen festgelegt.\n\nDas Rote Kreuz kann Ihre Nutzung der API und Daten-Feeds überwachen. Sie dürfen keine technischen Mittel einsetzen, um diese Überwachung zu stören, und das Rote Kreuz darf technische Mittel einsetzen, um eine solche Störung zu überwinden.\n\nDie Verwendung von Prepare-, Respond- und Recover-Nachrichten darf nur als aktuell oder als aktualisiert auf die damals aktuelle Dringlichkeitseinstellung der damit verbundenen Ereigniswarnung dargestellt werden, und Sie müssen einzelne Prepare-, Respond- und Recover-Nachrichten bei jeder Aktualisierung der Daten-Feeds und/oder korrelierten Ereigniswarnungen durch das Rote Kreuz aktualisieren.\n\nEinzelne Prepare-, Respond- und Recover-Nachrichten, die Sie verwenden, werden nur mit der geografischen Region in Verbindung gebracht, für die sie freigegeben sind. Wenn eine Prepare-, Respond- und Recover-Nachricht einen Verweis auf eine Quelle wie das Amerikanische Rote Kreuz oder eine andere nationale Gesellschaft oder Organisation des Roten Kreuzes oder des Roten Halbmonds (jeweils ein \"Quellenverweis\") enthält, müssen Sie den Quellenverweis, der mit jeder Prepare-, Respond- und Recover-Nachricht verbunden ist, in der in den Daten-Feeds bereitgestellten Form angeben. Sie dürfen die Quellverweise nicht weiter verwenden.\n\nEs ist nicht gestattet, die Daten-Feeds, Ereigniswarnungen und/oder Prepare-, Respond- und Recover-Nachrichten in eine andere Sprache zu übersetzen, zu verwenden, zu bearbeiten oder zu überarbeiten oder die Bedeutung der Daten-Feeds, Ereigniswarnungen und/oder Prepare-, Respond- und Recover-Nachrichten zu verändern.\n\nSie müssen sicherstellen, dass die Daten-Feeds in Ihrem alleinigen Besitz und/oder unter Ihrer Kontrolle sind.\n\nSie dürfen nicht zulassen, dass Ereigniswarnungen und Prepare-, Respond- und Recover-Nachrichten, die an Endbenutzer gesendet werden, Werbung oder Sponsoring enthalten.\n\nSie dürfen die Daten-Feeds weder ganz noch teilweise archivieren.", + "body": "Sie sind verantwortlich für die Geheimhaltung und Sicherheit des Registrierungsschlüssels, der Ihnen vom Roten Kreuz zur Verfügung gestellt wird. Sie sind dafür verantwortlich, die Kompatibilität mit der von Zeit zu Zeit aktualisierten API aufrechtzuerhalten, um weiterhin die Daten-Feeds zu erhalten. Das Rote Kreuz kann nach eigenem Ermessen aktualisierte Versionen der API und der Daten-Feeds veröffentlichen. Neue Versionen sind möglicherweise nicht mit früheren Implementierungen kompatibel, und Sie erklären sich damit einverstanden, stets die zuletzt aktualisierte Version der Daten-Feeds zu verwenden.\n\nSie erklären sich damit einverstanden, keinen Teil der API oder Software vom Roten Kreuz zu verändern, zu vertreiben, zu entschlüsseln, zu disassemblieren oder zu rekonstruieren.\n\nSie dürfen die API oder Datenfeeds nicht in einer Weise nutzen, die ein angemessenes Anfragevolumen überschreitet oder eine exzessive oder missbräuchliche Nutzung darstellt, wie vom Roten Kreuz nach eigenem Ermessen festgelegt.\n\nSie dürfen die API oder Datenfeeds nicht in einer Weise nutzen, die rechtswidrig, irreführend, fahrlässig, böswillig oder in der Absicht, Schaden zu verursachen, ist oder das Rote Kreuz, seinen Dienstanbietern, seinen Inhaltsanbietern oder einer anderen Person schadet, wie vom Roten Kreuz nach eigenem Ermessen festgelegt.\n\nDas Rote Kreuz kann Ihre Nutzung der API und Daten-Feeds überwachen. Sie dürfen keine technischen Mittel einsetzen, um diese Überwachung zu stören, und das Rote Kreuz darf technische Mittel einsetzen, um eine solche Störung zu überwinden.\n\nDie Verwendung von Prepare-, Respond- und Recover-Nachrichten darf nur als aktuell oder als aktualisiert auf die damals aktuelle Dringlichkeitseinstellung der damit verbundenen Ereigniswarnung dargestellt werden, und Sie müssen einzelne Prepare-, Respond- und Recover-Nachrichten bei jeder Aktualisierung der Daten-Feeds und\/oder korrelierten Ereigniswarnungen durch das Rote Kreuz aktualisieren.\n\nEinzelne Prepare-, Respond- und Recover-Nachrichten, die Sie verwenden, werden nur mit der geografischen Region in Verbindung gebracht, für die sie freigegeben sind. Wenn eine Prepare-, Respond- und Recover-Nachricht einen Verweis auf eine Quelle wie das Amerikanische Rote Kreuz oder eine andere nationale Gesellschaft oder Organisation des Roten Kreuzes oder des Roten Halbmonds (jeweils ein \"Quellenverweis\") enthält, müssen Sie den Quellenverweis, der mit jeder Prepare-, Respond- und Recover-Nachricht verbunden ist, in der in den Daten-Feeds bereitgestellten Form angeben. Sie dürfen die Quellverweise nicht weiter verwenden.\n\nEs ist nicht gestattet, die Daten-Feeds, Ereigniswarnungen und\/oder Prepare-, Respond- und Recover-Nachrichten in eine andere Sprache zu übersetzen, zu verwenden, zu bearbeiten oder zu überarbeiten oder die Bedeutung der Daten-Feeds, Ereigniswarnungen und\/oder Prepare-, Respond- und Recover-Nachrichten zu verändern.\n\nSie müssen sicherstellen, dass die Daten-Feeds in Ihrem alleinigen Besitz und\/oder unter Ihrer Kontrolle sind.\n\nSie dürfen nicht zulassen, dass Ereigniswarnungen und Prepare-, Respond- und Recover-Nachrichten, die an Endbenutzer gesendet werden, Werbung oder Sponsoring enthalten.\n\nSie dürfen die Daten-Feeds weder ganz noch teilweise archivieren.", "contact": "Bitte kontaktieren Sie bei Fragen zur API das Rote Kreuz unter {0}.", - "disclaimer": "Die API und die Daten-Feeds werden NUR ZU INFORMATIONS- UND BILDUNGSZWECKEN UND auf einer Basis \"wie vorliegend\" und \"wie verfügbar\" zur Verfügung gestellt. Das Rote Kreuz trifft keinerlei ausdrückliche oder implizite Zusicherungen oder Garantien. Das Rote Kreuz lehnt alle ausdrücklichen oder impliziten Garantien ab, einschließlich, aber nicht beschränkt auf implizite Garantien der Marktgängigkeit und Eignung für einen bestimmten Zweck. Das Rote Kreuz und seine Mitarbeiter, leitenden Angestellten, Geschäftsführer und Vertreter sowie Lizenzgeber haften nicht für Schäden jeglicher Art, die aus der Nutzung der API, der DatenFeeds, der Ereigniswarnungen und/oder der Prepare-, Respond- und Recover-Nachrichten entstehen, einschließlich, aber nicht beschränkt auf direkte, indirekte, zufällige, strafbare und mittelbare Schäden.\n\nDas Rote Kreuz übernimmt keine Garantie für die Reihenfolge, Genauigkeit, Authentizität oder Vollständigkeit der API, der Daten-Feeds, der Ereigniswarnungen und/oder der Prepare-, Respond- und Recover-Nachrichten und haftet in keiner Weise gegenüber Ihnen oder Ihren Endnutzern oder Dritten, insbesondere nicht für Verzögerungen, Ungenauigkeiten, Fehler oder Auslassungen in Bezug auf die API, die Datenfeeds, die Ereigniswarnungen und/oder die Prepare-, Respond- und Recover-Nachrichten, die im Rahmen dieser Vereinbarung bereitgestellt werden.", + "disclaimer": "Die API und die Daten-Feeds werden NUR ZU INFORMATIONS- UND BILDUNGSZWECKEN UND auf einer Basis \"wie vorliegend\" und \"wie verfügbar\" zur Verfügung gestellt. Das Rote Kreuz trifft keinerlei ausdrückliche oder implizite Zusicherungen oder Garantien. Das Rote Kreuz lehnt alle ausdrücklichen oder impliziten Garantien ab, einschließlich, aber nicht beschränkt auf implizite Garantien der Marktgängigkeit und Eignung für einen bestimmten Zweck. Das Rote Kreuz und seine Mitarbeiter, leitenden Angestellten, Geschäftsführer und Vertreter sowie Lizenzgeber haften nicht für Schäden jeglicher Art, die aus der Nutzung der API, der DatenFeeds, der Ereigniswarnungen und\/oder der Prepare-, Respond- und Recover-Nachrichten entstehen, einschließlich, aber nicht beschränkt auf direkte, indirekte, zufällige, strafbare und mittelbare Schäden.\n\nDas Rote Kreuz übernimmt keine Garantie für die Reihenfolge, Genauigkeit, Authentizität oder Vollständigkeit der API, der Daten-Feeds, der Ereigniswarnungen und\/oder der Prepare-, Respond- und Recover-Nachrichten und haftet in keiner Weise gegenüber Ihnen oder Ihren Endnutzern oder Dritten, insbesondere nicht für Verzögerungen, Ungenauigkeiten, Fehler oder Auslassungen in Bezug auf die API, die Datenfeeds, die Ereigniswarnungen und\/oder die Prepare-, Respond- und Recover-Nachrichten, die im Rahmen dieser Vereinbarung bereitgestellt werden.", "entire_agreement": { "body": "Die API-Bedingungen stellen die vollständige und ausschließliche Vereinbarung zwischen dem Roten Kreuz und Ihnen in Bezug auf den Vertragsgegenstand dar und ersetzen alle früheren mündlichen oder schriftlichen Absprachen, Mitteilungen oder Vereinbarungen, die nicht ausdrücklich hierin enthalten sind. Das Rote Kreuz behält sich das Recht vor, diese Vereinbarung jederzeit zu ändern oder zu widerrufen.", "heading": "Gesamte Vereinbarung:" @@ -870,7 +869,7 @@ "heading": "API ENDBENUTZER-LIZENZVERTRAG", "intro": "ZUSTIMMEN: DURCH DIE NUTZUNG DES DIENSTES ODER DAS ANKREUZEN DES VORGESEHENEN KÄSTCHENS STIMMT DER BENUTZER ZU, AN DIESE VEREINBARUNG GEBUNDEN ZU SEIN.\n\nDie API ist ein Tool, das es Ihnen (\"Sie\") ermöglicht, die vom Roten Kreuz zur Verfügung gestellten Daten-Feeds abzurufen und zu nutzen, einschließlich eines Feeds mit globalen Wetter- und Katastrophenwarnungen und -beobachtungen (\"Ereigniswarnungen\") und eines Feeds mit umsetzbaren und kontextualisierten Nachrichten zur Vorbereitung auf lokale Gefahren nach Gefahrentyp und Dringlichkeit (\"Prepare-, Respond- und Recover-Nachrichten\", und zusammen mit den Ereigniswarnungen die \"Daten-Feeds\"). Prepare-, Respond- und Recover-Meldungen dienen dazu, Ereigniswarnungen oder andere Warn- und Beobachtungsmeldungen im Zusammenhang mit Wetter- und Katastrophenereignissen in Ihrer eigenen Anwendung zu begleiten. Ihre Nutzung der Daten-Feeds wird durch die API-Bedingungen geregelt.", "license_limitations": { - "body": "Sie sind nur berechtigt, die Daten-Feeds in Verbindung mit Ihrer eigenen Anwendung zu nutzen, vorbehaltlich der API-Bedingungen und unter der Voraussetzung, dass Sie die Kompatibilität mit der von Zeit zu Zeit aktualisierten API gewährleisten. Ihnen wird ein nicht-exklusives, beschränktes und widerrufliches Recht eingeräumt, Ereigniswarnungen und relevante kontextualisierte Prepare-, Respond- und Recover-Meldungen in Verbindung mit der Dringlichkeitseinstellung einzelner Ereigniswarnungen aus den Daten-Feeds gemäß den API-Bedingungen herunterzuladen, zu verwenden, zu vervielfältigen und an Endnutzer Ihrer eigenen Anwendung („Endnutzer“) zu verteilen. Sie dürfen die API nur nutzen, um die nicht-kommerzielle Nutzung der Daten-Feeds in Übereinstimmung mit den API-Bedingungen zu ermöglichen. Sie sind keinesfalls berechtigt, die API zu nutzen, um eine kommerzielle Nutzung der Daten-Feeds, Ereigniswarnungen und/oder Prepare-, Respond- und Recover-Meldungen zu ermöglichen, einschließlich, aber nicht beschränkt auf den Weiterverkauf, die Erhebung von Gebühren für den Zugriff auf die Daten-Feeds, die Weiterverbreitung der Daten-Feeds oder die Erstellung von abgeleiteten Werken auf der Grundlage der Daten-Feeds. Das Rote Kreuz und seine Lizenzgeber besitzen alle Titel, Eigentumsrechte, Rechte und Interessen an der API, den Prepare-, Respond- und Recover-Meldungen, den Ereigniswarnungen, den Daten-Feeds und den Quellenverweisen (wie unten definiert). Alle nicht ausdrücklich gewährten Rechte sind vorbehalten.", + "body": "Sie sind nur berechtigt, die Daten-Feeds in Verbindung mit Ihrer eigenen Anwendung zu nutzen, vorbehaltlich der API-Bedingungen und unter der Voraussetzung, dass Sie die Kompatibilität mit der von Zeit zu Zeit aktualisierten API gewährleisten. Ihnen wird ein nicht-exklusives, beschränktes und widerrufliches Recht eingeräumt, Ereigniswarnungen und relevante kontextualisierte Prepare-, Respond- und Recover-Meldungen in Verbindung mit der Dringlichkeitseinstellung einzelner Ereigniswarnungen aus den Daten-Feeds gemäß den API-Bedingungen herunterzuladen, zu verwenden, zu vervielfältigen und an Endnutzer Ihrer eigenen Anwendung („Endnutzer“) zu verteilen. Sie dürfen die API nur nutzen, um die nicht-kommerzielle Nutzung der Daten-Feeds in Übereinstimmung mit den API-Bedingungen zu ermöglichen. Sie sind keinesfalls berechtigt, die API zu nutzen, um eine kommerzielle Nutzung der Daten-Feeds, Ereigniswarnungen und\/oder Prepare-, Respond- und Recover-Meldungen zu ermöglichen, einschließlich, aber nicht beschränkt auf den Weiterverkauf, die Erhebung von Gebühren für den Zugriff auf die Daten-Feeds, die Weiterverbreitung der Daten-Feeds oder die Erstellung von abgeleiteten Werken auf der Grundlage der Daten-Feeds. Das Rote Kreuz und seine Lizenzgeber besitzen alle Titel, Eigentumsrechte, Rechte und Interessen an der API, den Prepare-, Respond- und Recover-Meldungen, den Ereigniswarnungen, den Daten-Feeds und den Quellenverweisen (wie unten definiert). Alle nicht ausdrücklich gewährten Rechte sind vorbehalten.", "heading": "Lizenz und Beschränkungen:" }, "overview": { @@ -889,17 +888,17 @@ "two": "Die Umgehung oder Modifizierung von Schlüsseln oder Sicherheitsmechanismen, die vom Roten Kreuz oder der API verwendet werden, einschließlich und ohne Einschränkung jeglicher Authentifizierungstechnologien.", "three": "Die Anforderung, Sammlung, Aufforderung oder anderweitige Erlangung des Zugangs zu Anmeldenamen, Passwörtern oder anderen Authentifizierungsdaten für das Rote Kreuz, die Ihnen nicht für Ihr eigenes Konto zur Verfügung gestellt wurden.", "four": "Die Zugehörigkeit, das Sponsoring oder die Befürwortung durch das Rote Kreuz oder eine andere nationale Gesellschaft oder Organisation des Roten Kreuzes oder des Roten Halbmonds anzugeben oder zu implizieren.", - "five": "Die Angabe oder Andeutung, dass Sie Eigentümer oder Ersteller der API, der Daten-Feeds, der Ereigniswarnungen und/oder der Prepare-, Respond- und Recover-Meldungen sind.", + "five": "Die Angabe oder Andeutung, dass Sie Eigentümer oder Ersteller der API, der Daten-Feeds, der Ereigniswarnungen und\/oder der Prepare-, Respond- und Recover-Meldungen sind.", "six": "Die Übertragung von Viren, Würmern, Trojanern oder anderen zerstörerischen Elementen." } }, - "reserve_rights": "Das Rote Kreuz behält sich das Recht vor, die API und Daten-Feeds jederzeit ohne vorherige Ankündigung ganz oder teilweise, entweder vorübergehend oder dauerhaft, zu ändern und/oder nicht mehr zur Verfügung zu stellen. Um Missverständnisse zu vermeiden: Nichts hierin verpflichtet das Rote Kreuz dazu, Ihnen die API oder Daten-Feeds zur Verfügung zu stellen, und Sie stimmen zu und erkennen an, dass jeglicher Zugriff im alleinigen und absoluten Ermessen des Roten Kreuzes liegt.", + "reserve_rights": "Das Rote Kreuz behält sich das Recht vor, die API und Daten-Feeds jederzeit ohne vorherige Ankündigung ganz oder teilweise, entweder vorübergehend oder dauerhaft, zu ändern und\/oder nicht mehr zur Verfügung zu stellen. Um Missverständnisse zu vermeiden: Nichts hierin verpflichtet das Rote Kreuz dazu, Ihnen die API oder Daten-Feeds zur Verfügung zu stellen, und Sie stimmen zu und erkennen an, dass jeglicher Zugriff im alleinigen und absoluten Ermessen des Roten Kreuzes liegt.", "severability": { "body": "Die Ungültigkeit einzelner Bestimmungen dieser Nutzungsbedingung hat keine Auswirkungen auf die Gültigkeit der übrigen Bestimmungen.", "heading": "Salvatorische Klausel und Verzichtserklärung:" }, "suspension": { - "body": "Das Rote Kreuz behält sich das Recht vor, Ihren Zugang zu sperren oder zu beenden, wenn das Rote Kreuz nach eigenem Ermessen feststellt, dass Sie die API oder den Daten-Feed wie in den API-Bedingungen beschrieben unberechtigt nutzen oder dass Sie die API oder den Daten-Feed für Aktivitäten nutzen, die die Sicherheit einer Person oder der Netzwerke des Roten Kreuzes bedrohen/kompromittieren.", + "body": "Das Rote Kreuz behält sich das Recht vor, Ihren Zugang zu sperren oder zu beenden, wenn das Rote Kreuz nach eigenem Ermessen feststellt, dass Sie die API oder den Daten-Feed wie in den API-Bedingungen beschrieben unberechtigt nutzen oder dass Sie die API oder den Daten-Feed für Aktivitäten nutzen, die die Sicherheit einer Person oder der Netzwerke des Roten Kreuzes bedrohen\/kompromittieren.", "heading": "Aufhebung oder Beendigung:" } }, diff --git a/resources/lang/en.json b/resources/lang/en.json index dcdc386..a16aaaa 100644 --- a/resources/lang/en.json +++ b/resources/lang/en.json @@ -607,8 +607,7 @@ "desc_tool": "Give a brief description about the hazard and messages. This should be 1-3 sentences long", "title_tool": "For example: Safety messages for Floods", "safety_tool": "This is a priority action that a person should take to stay safe. The message should be action-oriented, concise, and under 50 characters.", - "supporting_tool": "This provides more detail to support the priority key action. The message should be action-oriented and concise.", - "mitigate_risk": "Mitigate Risk" + "supporting_tool": "This provides more detail to support the priority key action. The message should be action-oriented and concise." }, "message_editor": { "title": "Attribution Editor", @@ -1072,4 +1071,4 @@ "draft": "Draft", "bulkUploadDraft": "Message File Upload Draft" } -} +} \ No newline at end of file diff --git a/resources/lang/es.json b/resources/lang/es.json index 3763bc0..8adc7b3 100644 --- a/resources/lang/es.json +++ b/resources/lang/es.json @@ -594,8 +594,7 @@ "desc_tool": "Proporciona una breve descripción sobre el peligro y los mensajes. Debe tener de 1 a 3 frases.", "title_tool": "Por ejemplo: Mensajes de seguridad para Inundaciones", "safety_tool": "Esta es una acción prioritaria que una persona debe tomar para mantenerse segura. El mensaje debe estar orientado a la acción, ser conciso y tener menos de 50 caracteres.", - "supporting_tool": "Esto proporciona más detalles para apoyar la acción clave prioritaria. El mensaje debe estar orientado a la acción y ser conciso.", - "mitigate_risk": "Mitigar Riesgo" + "supporting_tool": "Esto proporciona más detalles para apoyar la acción clave prioritaria. El mensaje debe estar orientado a la acción y ser conciso." }, "message_editor": { "title": "Editor de Atribución", diff --git a/resources/lang/fr.json b/resources/lang/fr.json index d0f9d86..41bb9dd 100644 --- a/resources/lang/fr.json +++ b/resources/lang/fr.json @@ -594,8 +594,7 @@ "desc_tool": "Donnez une brève description du danger et des messages. Cela devrait faire 1 à 3 phrases.", "title_tool": "Par exemple : Messages de sécurité pour les Inondations", "safety_tool": "Ceci est une action prioritaire qu'une personne devrait entreprendre pour rester en sécurité. Le message doit être orienté vers l'action, concis et faire moins de 50 caractères.", - "supporting_tool": "Ceci fournit plus de détails pour soutenir l'action clé prioritaire. Le message doit être orienté vers l'action et concis.", - "mitigate_risk": "Atténuer le Risque" + "supporting_tool": "Ceci fournit plus de détails pour soutenir l'action clé prioritaire. Le message doit être orienté vers l'action et concis." }, "message_editor": { "title": "Éditeur d'Attribution", diff --git a/resources/lang/ht.json b/resources/lang/ht.json index 2ebe89e..8af2708 100644 --- a/resources/lang/ht.json +++ b/resources/lang/ht.json @@ -30,7 +30,7 @@ "email_confirmed": "Mèsi pou konfime adrès imel ou. Silvouplè konekte.", "confirmation_failed": "Adrès imel ou a pa ka konfime, tanpri kontakte administratè ou a pou eseye ankò.", "home_redirect": "Ale sou paj akèy la", - "status": "Eta/Kondisyon", + "status": "Eta\/Kondisyon", "remember_me": "Sonje m", "old_password": "Modpas ou gen kounye a", "password": "Modpas", @@ -197,15 +197,13 @@ "steps": { "one": { "heading": "Etap 1 - Enskri", - "body": "Pou kòmanse itilize done ki soti nan API Baz Done Mesaj Sekirite a, premye {0} nan Portal Baz Done Mesaj Sekirite a.\n\nOu ka itilize kont Facebook ak Google ou, oswa yon adrès imel pou kreye yon kont.", - "create_account_alt": "kreye yon kont", + "body": "Pou kòmanse itilize done ki soti nan API Baz Done Mesaj Sekirite a, premye {0} nan Portal Baz Done Mesaj Sekirite a.\n\nOu ka itilize kont Facebook ak Google ou, oswa yon adrès imel pou kreye yon kont.", "create_account_alt": "kreye yon kont", "existing_account": "Si w gen yon kont deja, tanpri {0}.", "login_cta": "konekte", "sign_up_cta": "enskri" }, "two": { - "body": "Pou itilize API a, ou dwe kreye yon aplikasyon nan Portal Baz Done Mesaj Sekirite a. Di nou yon ti kras sou sa w ap bati a.", - "create_app_alt": "kreye yon aplikasyon", + "body": "Pou itilize API a, ou dwe kreye yon aplikasyon nan Portal Baz Done Mesaj Sekirite a. Di nou yon ti kras sou sa w ap bati a.", "create_app_alt": "kreye yon aplikasyon", "heading": "Etap 2 - Kreye yon aplikasyon" }, "three": { @@ -216,8 +214,7 @@ }, "four": { "api_docs_cta": "Dokiman API", - "body": "API Baz Done Mesaj Sekirite a itilize HTTP(S) epi li bay pwen final RESTful pou jwenn done pibliye yo.\n\nChak demann dwe otantifye lè l sèvi avèk kle API ki te kreye nan etap anvan an.", - "example_title": "Egzanp demann", + "body": "API Baz Done Mesaj Sekirite a itilize HTTP(S) epi li bay pwen final RESTful pou jwenn done pibliye yo.\n\nChak demann dwe otantifye lè l sèvi avèk kle API ki te kreye nan etap anvan an.", "example_title": "Egzanp demann", "heading": "Etap 4 - Fè yon demann", "moreInfo": "Pou plis enfòmasyon sou tout pwen final API yo, gade {0}." } @@ -441,9 +438,9 @@ "immediate": "Imedyat", "warning": "Avètisman", "anticipated": "Antisipe", - "assess_and_plan": "Evalye epi Planifye", - "mitigate_risks": "Diminye Risk", - "prepare_to_respond": "Prepare pou Reponn", + "assess_and_plan":"Evalye epi Planifye", + "mitigate_risks":"Diminye Risk", + "prepare_to_respond":"Prepare pou Reponn", "recover": "Rekipere" }, "content": { @@ -514,8 +511,7 @@ "content_description_description": "Deskripsyon Mesaj Sekirite sa yo", "content_label": "Tanpri antre enfòmasyon danje yo", "content_url": "URL", - "content_url_description": "URL pou plis enfòmasyon sou Mesaj Sekirite sa yo. Tanpri enkli pwotokòl la, sa vle di http:// oswa https://", - "created": "kreye", + "content_url_description": "URL pou plis enfòmasyon sou Mesaj Sekirite sa yo. Tanpri enkli pwotokòl la, sa vle di http:// oswa https://", "created": "kreye", "pieces_edited": " Moso edite", "content_placeholder": "Tanpri antre yon mesaj", "mitigation": "Alèjman", @@ -526,7 +522,7 @@ "seasonalForecast_extra": "Yon previzyon sezonye se yon deklarasyon sou prediksyon yon evènman danjere. Aksyon ki poze yo fèt pou evalye potansyèl risk yo epitou planifye aktivite yo pou diminye oswa pwoteje kay la.", "watch": "Gade", "watch_help": "Prepare pou reponn", - "watch_extra": "Yon alèt bay lè gen risk pou yo yon evènman ki gen danje ladan ogmante siyifikativman, men ensidan li yo, kote, ak / oswa distribisyon yo toujou ensèten. Li fèt nan entansyon pou bay ase tan pou aksyon pwoteksyon ak preparasyon reponn.", + "watch_extra": "Yon alèt bay lè gen risk pou yo yon evènman ki gen danje ladan ogmante siyifikativman, men ensidan li yo, kote, ak \/ oswa distribisyon yo toujou ensèten. Li fèt nan entansyon pou bay ase tan pou aksyon pwoteksyon ak preparasyon reponn.", "warning": "Avètisman", "warning_help": "Prepare pou reponn", "warning_extra": "Yon avètisman bay lè yon evènman danjere k ap rive, tou pre, oswa gen trè gwo pwobablite pou l rive. Sa vle di kondisyon yo poze yon menas pou lavi oswa pwopriyete. Moun ki sou chemen danjere sa a bezwen poze aksyon yo k ap pwoteje.", @@ -558,8 +554,7 @@ "content_edit_title": "Edite Kontni", "content_add_hazard_title": "Ajoute Danje", "key_message_label": "Tit Mesaj Kle", - "supporting_message_label": "Mesaj Sipò", - "mitigate_risk": "Diminye Risk" + "supporting_message_label": "Mesaj Sipò" }, "message_editor": { "title": "Editè Atribisyon", @@ -619,7 +614,7 @@ "bad_request_error_codes": { "30001": "Tit kolòn ki pa mache ak modèl la", "30002": "Non atribisyon, mesaj oswa url ki manke", - "30003": "Atribisyon url ki pa valab - tanpri asire pwotokòl la prezan, eg. https://", + "30003": "Atribisyon url ki pa valab - tanpri asire pwotokòl la prezan, eg. https:\/\/", "40001": "Kòd peyi ki pa valid yo bay", "40002": "Sosyete chwazi ki pa mache sosyete pou achiv chwazi", "40003": "Done nan achiv chwazi ki te ekspòte e malfòme ak enpòtasyon pa kapab konplè" @@ -690,7 +685,7 @@ }, "landing": { "strapline": "Sèvis Baz Done Mesaj Sekirite", - "strapline_part_2": "Kwa Wouj Global/ Mesaj Kle yo pou sekirite Kwa Wouj", + "strapline_part_2": "Kwa Wouj Global\/ Mesaj Kle yo pou sekirite Kwa Wouj", "head_1": "Sekirite IFRC", "head_2": "Baz Done Mesaj", "head_text_1": "Mesaj Sekirite ki baze sou Konsyantizasyon Piblik IFRC ak", @@ -745,7 +740,7 @@ "fake_alert_heading": "Avètisman fwa ekstrèm", "fake_alert_description": "Men, sa a egzije pou yon distenksyon senp epi fasil. Pou tan lib lè pouvwa nou an.", "fake_alert_time": "1 è PASE", - "fake_alert_time_exact": "05/02/18 a 5:15 CT", + "fake_alert_time_exact": "05\/02\/18 a 5:15 CT", "use_cases": { "heading": "Aprann plis", "first_heading": "kijan li fonksyone", @@ -786,7 +781,7 @@ }, "data_preview": { "heading": "Mesaj Sekirite", - "sub_heading": "Enskri epi gade mesaj aksyon kle ki soti nan Lakwa Wouj / Kwasan Wouj Sosyete Nasyonal atravè monn lan\n" + "sub_heading": "Enskri epi gade mesaj aksyon kle ki soti nan Lakwa Wouj \/ Kwasan Wouj Sosyete Nasyonal atravè monn lan\n" }, "footer": { "terms_conditions": "Tèm ak kondisyon yo\n", @@ -842,10 +837,10 @@ "industries": { "media": "Medya", "emergency": "Jesyon Ijans", - "non_profit": "Òganizasyon Non-gouvènmantal (ONG)/Ki pa Peye", + "non_profit": "Òganizasyon Non-gouvènmantal (ONG)\/Ki pa Peye", "humanitarian": "Òganizasyon Imanitè", - "red_cross": "Lakwa Wouj/Kwasan Wouj", - "education": "Edikasyon/Akademi", + "red_cross": "Lakwa Wouj\/Kwasan Wouj", + "education": "Edikasyon\/Akademi", "gov": "Ajans Gouvènman an", "other": "Lòt" }, @@ -860,9 +855,9 @@ "body": "Lwa yo nan Distri a nan Kolonbi pral gouvène tout dwa ak obligasyon anba Kontra sa-a, san yo pa bay efè nan nenpòt prensip nan konfli nan lwa yo.", "heading": "Lwa ki aplikab:" }, - "body": "Ou responsab pou kenbe sekrè ak sekirite kle enskripsyon Lakwa Wouj ba ou an. Ou responsab pou kenbe konpatibilite ak API a, jan yo mete ajou de tanzantan, pou kontinye resevwa Transmisyon Done yo. Lakwa Wouj ka lage vèsyon ki ajou nan API a ak Transmisyon Done yo nan sèl diskresyon li. Nouvo vèsyon yo ka pa konpatib ak aplikasyon anvan yo, epi ou dakò pou itilize vèsyon ki pi resamman mete ajou nan Transmisyon Done yo a toutan.\n\nOu dakò pa modifye, distribye, dekonpilasyon, demonte, oswa ranvèse enjenyè nenpòt pòsyon nan API a oswa nenpòt lojisyèl nan Lakwa Wouj.\n\nOu pa ka sèvi ak API la oswa Transmisyon Done yo nan yon fason ki depase volim demann rezonab oswa konstitye yo oswa itilizasyon abizif, jan yo detèmine pa Lakwa Wouj nan sèl diskresyon li.\n\nOu pa ka sèvi ak API a oswa Transmisyon Done yo nan yon fason ki ilegal, twonpè, neglijan, malveyan, lide lakòz domaj, oswa sa nwi Lakwa Wouj, founisè sèvis li yo, founisè kontni li yo, oswa nenpòt ki lòt moun, tankou detèmine pa Kwasan Wouj nan sèl diskresyon li.\n\nLakwa Wouj ka siveye itilizasyon API a ak Transmisyon Done yo. Ou pa ka itilize okenn mwayen teknik pou entèfere ak siveyans sa yo, epi Lakwa Wouj ka itilize mwayen teknik pou simonte nenpòt entèferans sa yo.\n\nItilizasyon prepasyon an, nan repons lan, ak rekiperasyon an pa dwe prezante sèlman kòm aktyèlman oswa mete ajou sou premye paramèt lan nan epòk lan, epi pral mete ajou preparasyon endividyèl la, reponn epi rekipere mesaj mizajou a nan transmisyon done yo ak / oswa alèt evènman korelate pa Lakwa Wouj la.\n\nPrepare ou, reponn epi rekipere mesaj yo ke ou itilize pa dwe asosye avek rejyon jeyografik la pou li ke yo bay li a. Itilizasyon preparasyon an, nan repons ak rekiperasyon an pa dwe prezante ke kòm aktyèlman oswa mizajou sou paramèt ijans nan epòk la, epi mete ajou preparasyon endividyèl la, reponn epi rekipere mesaj yo nan mizajou transmisyon done yo ak / oswa alèt evènman korelate Lakwa Wouj la. Ou pa dwe kontinye sèvi ak nenpòt Sous Referans.\n\nOu pa ka tradui transmisyon done yo, alet evènman yo ak / oswa prepare, reponn ak rekipere mesaj yo nan yon lòt lang, pote yon itilizasyon, modifikasyon ak revizyon, oswa modifikasyon siyifikasyon an nan transmisyon done yo, alèt evènman yo ak / oswa prepare, reponn ak rekipere mesaj yo.\n\nOu dwe asire ke Transmisyon Done yo rete nan posesyon ak/oubyen sèl kontwòl ou.\n\nOu pa ka otorize alèt evènman yo epi prepare, reponn, epi rekipere mesaj livre a itilizate final yo pou entegre tout piblisite oswa parenaj.\n\nOu pa ka fè achiv nan oken pati Transmisyon Done yo.", + "body": "Ou responsab pou kenbe sekrè ak sekirite kle enskripsyon Lakwa Wouj ba ou an. Ou responsab pou kenbe konpatibilite ak API a, jan yo mete ajou de tanzantan, pou kontinye resevwa Transmisyon Done yo. Lakwa Wouj ka lage vèsyon ki ajou nan API a ak Transmisyon Done yo nan sèl diskresyon li. Nouvo vèsyon yo ka pa konpatib ak aplikasyon anvan yo, epi ou dakò pou itilize vèsyon ki pi resamman mete ajou nan Transmisyon Done yo a toutan.\n\nOu dakò pa modifye, distribye, dekonpilasyon, demonte, oswa ranvèse enjenyè nenpòt pòsyon nan API a oswa nenpòt lojisyèl nan Lakwa Wouj.\n\nOu pa ka sèvi ak API la oswa Transmisyon Done yo nan yon fason ki depase volim demann rezonab oswa konstitye yo oswa itilizasyon abizif, jan yo detèmine pa Lakwa Wouj nan sèl diskresyon li.\n\nOu pa ka sèvi ak API a oswa Transmisyon Done yo nan yon fason ki ilegal, twonpè, neglijan, malveyan, lide lakòz domaj, oswa sa nwi Lakwa Wouj, founisè sèvis li yo, founisè kontni li yo, oswa nenpòt ki lòt moun, tankou detèmine pa Kwasan Wouj nan sèl diskresyon li.\n\nLakwa Wouj ka siveye itilizasyon API a ak Transmisyon Done yo. Ou pa ka itilize okenn mwayen teknik pou entèfere ak siveyans sa yo, epi Lakwa Wouj ka itilize mwayen teknik pou simonte nenpòt entèferans sa yo.\n\nItilizasyon prepasyon an, nan repons lan, ak rekiperasyon an pa dwe prezante sèlman kòm aktyèlman oswa mete ajou sou premye paramèt lan nan epòk lan, epi pral mete ajou preparasyon endividyèl la, reponn epi rekipere mesaj mizajou a nan transmisyon done yo ak \/ oswa alèt evènman korelate pa Lakwa Wouj la.\n\nPrepare ou, reponn epi rekipere mesaj yo ke ou itilize pa dwe asosye avek rejyon jeyografik la pou li ke yo bay li a. Itilizasyon preparasyon an, nan repons ak rekiperasyon an pa dwe prezante ke kòm aktyèlman oswa mizajou sou paramèt ijans nan epòk la, epi mete ajou preparasyon endividyèl la, reponn epi rekipere mesaj yo nan mizajou transmisyon done yo ak \/ oswa alèt evènman korelate Lakwa Wouj la. Ou pa dwe kontinye sèvi ak nenpòt Sous Referans.\n\nOu pa ka tradui transmisyon done yo, alet evènman yo ak \/ oswa prepare, reponn ak rekipere mesaj yo nan yon lòt lang, pote yon itilizasyon, modifikasyon ak revizyon, oswa modifikasyon siyifikasyon an nan transmisyon done yo, alèt evènman yo ak \/ oswa prepare, reponn ak rekipere mesaj yo.\n\nOu dwe asire ke Transmisyon Done yo rete nan posesyon ak\/oubyen sèl kontwòl ou.\n\nOu pa ka otorize alèt evènman yo epi prepare, reponn, epi rekipere mesaj livre a itilizate final yo pou entegre tout piblisite oswa parenaj.\n\nOu pa ka fè achiv nan oken pati Transmisyon Done yo.", "contact": "Tanpri kontakte Lakwa Rouj nan [nimewo telefòn] avèk nenpòt kesyon ou genyen konsènan API a.", - "disclaimer": "API ak Transmisyon Done yo founi inikman pou enfòmasyon ak edikasyon, epi sou yon baz de \" tankou \" epi \"disponib tou\". Lakwa Wouj pa fè okenn reprezantasyon oswa garanti nenpòt kalite, ekspresyon oswa enplisit. Lakwa Wouj refize tout garanti eksprime ni enplisit, tankou garanti enplisit nan komès ak kapasite pou yon rezon patikilye. Lakwa Wouj ak anplwaye li yo, ofisye yo, gouvènè yo ak ajan yo ak lisansye yo p ap responsab pou oken domaj ki rive nan itilizasyon API, Transmisyon Done, Alèt Evènman, ak / oubyen mesaj Prepare, Reponn, ak Rekipere, tankou domaj endirèk, ensidan, ak domaj konsekan.\n\nLakwa Wouj pa garanti sekans, presizyon, otantisite oubyen konpletid nan API a, Transmisyon Done yo, Avètisman Evènman ak / oubyen mesaj Prepare, Reponn, epi Rekipere epi yo pa dwe responsab nan okenn fason pou ou menm oubyen itilizatè ou oubyen nenpòt twazyèm pati, tankou pou nenpòt ki reta, erè oswa omisyon, ki gen rapò ak API a, Transmisyon Done yo, Evènman Alèt ak / oubyen mesaj Prepare, reponn, epi rekipere ki bay.", + "disclaimer": "API ak Transmisyon Done yo founi inikman pou enfòmasyon ak edikasyon, epi sou yon baz de \" tankou \" epi \"disponib tou\". Lakwa Wouj pa fè okenn reprezantasyon oswa garanti nenpòt kalite, ekspresyon oswa enplisit. Lakwa Wouj refize tout garanti eksprime ni enplisit, tankou garanti enplisit nan komès ak kapasite pou yon rezon patikilye. Lakwa Wouj ak anplwaye li yo, ofisye yo, gouvènè yo ak ajan yo ak lisansye yo p ap responsab pou oken domaj ki rive nan itilizasyon API, Transmisyon Done, Alèt Evènman, ak \/ oubyen mesaj Prepare, Reponn, ak Rekipere, tankou domaj endirèk, ensidan, ak domaj konsekan.\n\nLakwa Wouj pa garanti sekans, presizyon, otantisite oubyen konpletid nan API a, Transmisyon Done yo, Avètisman Evènman ak \/ oubyen mesaj Prepare, Reponn, epi Rekipere epi yo pa dwe responsab nan okenn fason pou ou menm oubyen itilizatè ou oubyen nenpòt twazyèm pati, tankou pou nenpòt ki reta, erè oswa omisyon, ki gen rapò ak API a, Transmisyon Done yo, Evènman Alèt ak \/ oubyen mesaj Prepare, reponn, epi rekipere ki bay.", "entire_agreement": { "body": "Regleman API yo konstitye akò konplè ak eksklizif ant Lakwa Wouj ak ou menm ki gen rapò ak sijè sa a epi ranplase tout konpreyansyon alavans oral oubyen ekri, kominikasyon, oubyen akò ki pa espesyalman enkòpore nan dokiman sa a. Lakwa Wouj rezève dwa pou li modifye oubyen anile akò sa a nenpòt lè.", "heading": "Akò Konplè a:" @@ -870,12 +865,11 @@ "heading": "AKÒ LISANS ITILIZATÈ FINAL API", "intro": "AKÒ: PA ITILIZE SÈVIS LA OUBYEN TCHEKE BWAT YO BAY LA, ITILIZATÈ DAKÒ AK AKÒ SA a.\n\nAPI a se yon zouti ki pèmèt ou (\"Ou\") rekipere epi sèvi ak done ki disponib pa Lakwa Wouj tankou yon rezo nan move tan mondyal ak avètisman evènman dezas epi gade avi (\"Alèt Evènman\") ak yon transmisyon mesaj kontèksyalize aksyonab sou kòman yo prepare danje lokal yo pa kalite danje ak ijans (\"Mesaj Prepare, Reponn, ak Rekipere\", ak kolektivman ak Alèt yo Evènman, \"Transmisyon Done yo\"). Prepare, Reponn, Rejwenn mesaj la pou akonpaye Alèt evènman oswa lòt avètisman epi gade avi ki asosye ak metewo ak katastwòf nan aplikasyon w lan. Se kondisyon API yo ki reglemante itlizasyon w ap fè ak Done yo.", "license_limitations": { - "body": "Ou ka itilize Transmisyon Done yo sèlman ak aplikasyon w lan ki reglemante pa kondisyon API yo, e te bay pou kenbe konpatibilte ak API yo, jan mizajou yo fèt detanzantan. Yo ba w dwa (e se pa ou sèl ki genyen l, li limite e w ka pèdi) pou w telechaje, itilize, repwodui epi distribiye bay itilizatè final yo pwòp aplikasyon w (“End Users”) Alèt evènman e prepare, reponn, ak rejwenn mesaj an kolaborasyon ak paramèt ijans alèt evènman endividyèl ki soti nan Transmisyon Done yo ki anba tèm API yo. Ou ka sèlman itilize API pou fasilite itilizasyon ki pa komèsyal Transmisyon Done yo annakò ak Tèm API yo. Nan okenn ka ou pa ka itilize API a pou fasilte itilizasyon komèsyal Transmisyon Done yo, Evènman alèt yo ak/oswa Prepare,repon, ak Rejwenn mesaj, sa gen ladan l, san okenn limit, revann yo, fè peye pou gen aksè ak yo, fè peye pou redistribiye yo, oswa fè peye pou kreye pwodui derive ki soti nan yo. Kwa Wouj ak moun ki bay lisans li yo kenbe tout tit, pwopriyete, dwa ak enterè nan API a, Prepare, reponn, ak Rejwenn mesaj, Transmisyon Done yo, Evènman alèt yo ak sous referans yo (jan yo defini sa anba a) nan dokiman sa a. Tout dwa pa eksprèseman akòde yo rezève.", + "body": "Ou ka itilize Transmisyon Done yo sèlman ak aplikasyon w lan ki reglemante pa kondisyon API yo, e te bay pou kenbe konpatibilte ak API yo, jan mizajou yo fèt detanzantan. Yo ba w dwa (e se pa ou sèl ki genyen l, li limite e w ka pèdi) pou w telechaje, itilize, repwodui epi distribiye bay itilizatè final yo pwòp aplikasyon w (“End Users”) Alèt evènman e prepare, reponn, ak rejwenn mesaj an kolaborasyon ak paramèt ijans alèt evènman endividyèl ki soti nan Transmisyon Done yo ki anba tèm API yo. Ou ka sèlman itilize API pou fasilite itilizasyon ki pa komèsyal Transmisyon Done yo annakò ak Tèm API yo. Nan okenn ka ou pa ka itilize API a pou fasilte itilizasyon komèsyal Transmisyon Done yo, Evènman alèt yo ak\/oswa Prepare,repon, ak Rejwenn mesaj, sa gen ladan l, san okenn limit, revann yo, fè peye pou gen aksè ak yo, fè peye pou redistribiye yo, oswa fè peye pou kreye pwodui derive ki soti nan yo. Kwa Wouj ak moun ki bay lisans li yo kenbe tout tit, pwopriyete, dwa ak enterè nan API a, Prepare, reponn, ak Rejwenn mesaj, Transmisyon Done yo, Evènman alèt yo ak sous referans yo (jan yo defini sa anba a) nan dokiman sa a. Tout dwa pa eksprèseman akòde yo rezève.", "heading": "Lisans ak Limit:" }, "overview": { - "body": "Entèfas Pwogram Aplikasyon Sèvis Baz Done Mesaj Sekirite Sant Preparasyon Global pou Katastwòf la (“API”) disponib pou ou pa Lakwa Wouj Nasyonal Ameriken an (“Lakwa Wouj”). API a mande yon kle enskripsyon. Pandan pwosesis enskripsyon an, ou dwe dakò ak tèm ak kondisyon sa yo, ansanm ak tèm ak kondisyon nan Akò Tèm Sèvis Sit Wèb Lakwa Wouj ki disponib nan {0} (ansanm, “Tèm API yo”). Tèm API yo pral gouvène itilizasyon API ou a ak materyèl elektwonik telechaje ki disponib atravè API a. {1}", - "cta": "Klike la a pou ou enkri." + "body": "Entèfas Pwogram Aplikasyon Sèvis Baz Done Mesaj Sekirite Sant Preparasyon Global pou Katastwòf la (“API”) disponib pou ou pa Lakwa Wouj Nasyonal Ameriken an (“Lakwa Wouj”). API a mande yon kle enskripsyon. Pandan pwosesis enskripsyon an, ou dwe dakò ak tèm ak kondisyon sa yo, ansanm ak tèm ak kondisyon nan Akò Tèm Sèvis Sit Wèb Lakwa Wouj ki disponib nan {0} (ansanm, “Tèm API yo”). Tèm API yo pral gouvène itilizasyon API ou a ak materyèl elektwonik telechaje ki disponib atravè API a. {1}", "cta": "Klike la a pou ou enkri." }, "privacy_policy": { "body": "Ou konprann, ou rekonèt, e ou dakò ak operasyon kèk pwogram, sèvis, zouti, opsyon acha, oswa enfòmasyon nan API a egzije pou ou soumisyon, itilizasyon piblikasyon divès enfòmasyon a karaktè pèsonèl. Pa konsekan, si ou vle gen aksè epi itilize API a, ou rekonèt e ou dakò itilizasyon API a vle di ou aksepte koleksyon enfòmasyon a karaktè pèsonèl ak itilizasyon pratik ki nan politik konfidansyalite ki pibliye yo: {0}", @@ -889,17 +883,17 @@ "two": "Kontoune oswa modifye nenpòt kle oswa sekirite mekanism travay pa Lakwa Wouj oswa API a, ki gen ladan san limitasyon teknoloji otantifikasyon yo.", "three": "Pou mande, kolekte, solisite oswa jwenn aksè pou konekte non, modpas oswa lòt idantifyan pou Kwa Wouj ki pa sa yo te ba ou yo pou pwòp kont ou.", "four": "Pou deklare oswa fè konnen yon fason endirèk yon afilyasyon, parenaj oswa apui Sosyete Lakwa wouj oswa Kwasan Wouj bay.", - "five": "Pou deklare oswa fè konnen yon fason endirèk ou gen oswa ou te kreye yon API, Transmisyon Done yo, Alèt evènman ak/oswa Prepare, Reponn oswa rejwenn mesaj yo.", + "five": "Pou deklare oswa fè konnen yon fason endirèk ou gen oswa ou te kreye yon API, Transmisyon Done yo, Alèt evènman ak\/oswa Prepare, Reponn oswa rejwenn mesaj yo.", "six": "Transmèt nenpòt viris, viris ki rele Trojan horses la, oswa nenpòt lòt bagay ki ka fè dega enfòmatik." } }, - "reserve_rights": "Kwa Wouj gen dwa pou l modifye ak/oswa ba bay API ak Transmisyon Done yo annantye oswa an pati, tanporèman oswa definitivman, nenpòt kilè san avètisman alavans. Pou evite dout, anyen nan dokiman sa a pa oblije Kwa Wouj mete API ak Transmisyon Done li yo disponib pou ou, e ou dakò e ou rekonèt nenpòt aksè avèk yo, se tout responsablite Kwa Wouj pou l deside sa.", + "reserve_rights": "Kwa Wouj gen dwa pou l modifye ak\/oswa ba bay API ak Transmisyon Done yo annantye oswa an pati, tanporèman oswa definitivman, nenpòt kilè san avètisman alavans. Pou evite dout, anyen nan dokiman sa a pa oblije Kwa Wouj mete API ak Transmisyon Done li yo disponib pou ou, e ou dakò e ou rekonèt nenpòt aksè avèk yo, se tout responsablite Kwa Wouj pou l deside sa.", "severability": { "body": "Nenpòt tèm oswa dispozisyon nan Tèm API yo p ap afekte validite nenpòt lòt dispozisyon.", "heading": "Diviziblite ak renonsyasyon:" }, "suspension": { - "body": "Kwa Wouj gen dwa kanpe oswa mete fen nan aksè ou si Kwa Wouj deside sa, sa nan otorite l, si ou kòmanse itilize API oswa Transmisyon Done yo yon fason ki pa otorize jan sa dekri nan Tèm API yo oswa ou ap itilize API oswa Transmisyon Done yo nan nenpòt aktivite ki menase/mete an danje sekirite nenpòt moun oswa rezo Kwa wouj yo.", + "body": "Kwa Wouj gen dwa kanpe oswa mete fen nan aksè ou si Kwa Wouj deside sa, sa nan otorite l, si ou kòmanse itilize API oswa Transmisyon Done yo yon fason ki pa otorize jan sa dekri nan Tèm API yo oswa ou ap itilize API oswa Transmisyon Done yo nan nenpòt aktivite ki menase\/mete an danje sekirite nenpòt moun oswa rezo Kwa wouj yo.", "heading": "Sispansyon oswa Revokasyon:" } }, diff --git a/resources/lang/id.json b/resources/lang/id.json index 725ffee..7335ad6 100644 --- a/resources/lang/id.json +++ b/resources/lang/id.json @@ -441,9 +441,9 @@ "immediate": "Immediate", "warning": "Warning", "anticipated": "Anticipated", - "assess_and_plan": "Assess and Plan", - "mitigate_risks": "Mitigate Risk", - "prepare_to_respond": "Prepare to Respond", + "assess_and_plan":"Assess and Plan", + "mitigate_risks":"Mitigate Risk", + "prepare_to_respond":"Prepare to Respond", "recover": "Recover" }, "content": { @@ -526,7 +526,7 @@ "seasonalForecast_extra": "Prakiraan iklim musiman merupakan sebuah pernyataan prediksi atas peristiwa berbahaya. Tindakan yang dilakukan adalah menilai potensi risiko dan merencanakan aktivitas untuk mengurangi risiko dan melindungi rumah tangga.", "watch": "Pengawasan", "watch_help": "Bersiap untuk menanggapi", - "watch_extra": "Pengawasan dilakukan ketika risiko suatu peristiwa berbahaya telah meningkat secara signifikan, tetapi kemunculannya, lokasi, dan/atau waktunya masih belum pasti. Tujuannya yaitu menyediakan waktu yang cukup untuk tindakan perlindungan dan persiapan.", + "watch_extra": "Pengawasan dilakukan ketika risiko suatu peristiwa berbahaya telah meningkat secara signifikan, tetapi kemunculannya, lokasi, dan\/atau waktunya masih belum pasti. Tujuannya yaitu menyediakan waktu yang cukup untuk tindakan perlindungan dan persiapan.", "warning": "Peringatan", "warning_help": "Bersiap untuk menanggapi", "warning_extra": "Peringatan dikeluarkan saat peristiwa berbahaya sedang terjadi, akan segera terjadi, atau memiliki kemungkinan yang sangat tinggi untuk terjadi. Ini berarti kondisi yang dapat mengancam nyawa atau harta benda. Orang-orang yang berada di jalur bahaya ini perlu mengambil tindakan perlindungan.", @@ -558,8 +558,7 @@ "content_edit_title": "Content Edit", "content_add_hazard_title": "Add Hazard", "key_message_label": "Key message title", - "supporting_message_label": "Supporting message", - "mitigate_risk": "Mitigate Risk" + "supporting_message_label": "Supporting message" }, "message_editor": { "title": "Editor Atribusi", @@ -619,7 +618,7 @@ "bad_request_error_codes": { "30001": "Judul kolom tidak cocok dengan templat", "30002": "Nama atribusi, pesan atau url hilang", - "30003": "Url atribusi tidak valid - pastikan protokolnya disertakan, yaitu https://", + "30003": "Url atribusi tidak valid - pastikan protokolnya disertakan, yaitu https:\/\/", "40001": "Kode negara yang disediakan tidak valid", "40002": "Perhimpunan yang dipilih tidak sesuai dengan berkas yang dipilih", "40003": "Tanggal ekspor berkas yang dipilih memiliki format yang salah dan impor tidak dapat diselesaikan" @@ -690,7 +689,7 @@ }, "landing": { "strapline": "Layanan Basis Data Pesan Keamanan", - "strapline_part_2": "Pesan Keamanan Utama Palang Merah / Bulan Sabit Merah Global", + "strapline_part_2": "Pesan Keamanan Utama Palang Merah \/ Bulan Sabit Merah Global", "head_1": "Keselamatan IFRC", "head_2": "Basis Data Pesan", "head_text_1": "Pesan keselamatan berdasarkan Kesadaran Publik IFRC dan", @@ -745,7 +744,7 @@ "fake_alert_heading": "Peringatan Cuaca Dingin Ekstrim", "fake_alert_description": "Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est.", "fake_alert_time": "1 JAM YANG LALU", - "fake_alert_time_exact": "05/02/18 jam 05:15 CT", + "fake_alert_time_exact": "05\/02\/18 jam 05:15 CT", "use_cases": { "heading": "Pelajari Lebih Lanjut", "first_heading": "Cara Kerja", @@ -786,7 +785,7 @@ }, "data_preview": { "heading": "Pesan Keselamatan", - "sub_heading": "Daftar dan lihat pesan tindakan utama dari Perhimpunan Nasional Palang Merah / Bulan Sabit Merah di seluruh dunia" + "sub_heading": "Daftar dan lihat pesan tindakan utama dari Perhimpunan Nasional Palang Merah \/ Bulan Sabit Merah di seluruh dunia" }, "footer": { "terms_conditions": "Syarat & Ketentuan", @@ -844,8 +843,8 @@ "emergency": "Manajemen Darurat", "non_profit": "Nirlaba", "humanitarian": "Organisasi Kemanusiaan", - "red_cross": "Palang Merah/Bulan Sabit Merah", - "education": "Pendidikan/Akademik", + "red_cross": "Palang Merah\/Bulan Sabit Merah", + "education": "Pendidikan\/Akademik", "gov": "Badan Pemerintahan", "other": "Lainnya" }, @@ -860,9 +859,9 @@ "body": "Undang-undang Distrik Kolombia akan mengatur semua hak dan kewajiban yang terdapat dalam Perjanjian ini, tanpa memengaruhi prinsip-prinsip konflik hukum.", "heading": "Hukum yang berlaku:" }, - "body": "Anda bertanggung jawab untuk menjaga kerahasiaan dan keamanan kode registrasi yang diberikan oleh Palang Merah kepada Anda. Anda bertanggung jawab untuk menjaga kompatibilitas dengan API, yang diperbarui dari waktu ke waktu, agar terus menerima Umpan Data. Palang Merah dapat merilis versi terbaru dari API dan Umpan Data atas kebijakannya sendiri. Versi baru mungkin tidak kompatibel dengan penerapan sebelumnya, dan Anda setuju untuk menggunakan versi terbaru dari Umpan Data setiap saat.\n\nAnda setuju untuk tidak mengubah, mendistribusikan, mendekompilasi, membongkar, atau merekayasa balik bagian mana pun dari API atau perangkat lunak Palang Merah.\n\nAnda tidak boleh menggunakan API atau Umpan Data dengan cara yang melebihi volume permintaan yang wajar atau penggunaan yang berlebihan atau disalahgunakan, sebagaimana yang telah ditentukan oleh Palang Merah atas kebijakannya sendiri.\n\nAnda tidak boleh menggunakan API atau Umpan Data dengan cara yang melanggar hukum, menyesatkan, melalaikan, yang bermaksud untuk menyebabkan kerugian, atau merugikan Palang Merah, penyedia layanannya, penyedia kontennya, atau pun pihak lain, sebagaimana ditentukan oleh Palang Merah atas kebijakannya sendiri.\n\nPalang Merah dapat memantau penggunaan API dan Umpan Data Anda. Anda tidak boleh menggunakan cara teknis apa pun untuk mengganggu pemantauan tersebut, dan Palang Merah dapat menggunakan cara teknis untuk mengatasi gangguan tersebut.\n\nPenggunaan Pesan Siap, Tanggap dan Pulihkan hanya akan ditampilkan sebagai pengaturan terkini atau terbaru ke pengaturan urgensi terkini dari Peringatan Peristiwa terkait, dan Anda harus memperbarui Pesan Siap, Tanggap dan Pulihkan Perseorangan setelah pemutakhiran Umpan Data dan/atau terkait Peringatan Peristiwa oleh Palang Merah.\n\nPesan Siap, Tanggap dan Pulihkan perseorangan yang Anda gunakan sebaiknya hanya diasosiasikan dengan letak geografis di mana ia diterbitkan. Apabila Pesan Siap, Tanggap dan Pulihkan menyertakan referensi ke sebuah sumber seperti American Red Cross atau organisasi atau perhimpunan Palang Merah atau Bulan Sabit Merah nasional lainnya (tiap “Referensi Sumber”), Anda harus menyertakan Referensi Sumber yang diasosiasikan dengan tiap Pesan Siap, Tanggap dan Pulihkan dalam formulir yang disediakan di Umpan Data. Anda tidak boleh lagi menggunakan Referensi Sumber lainnya.\n\nAnda tidak boleh menerjemahkan Umpan Data, Peringatan Peristiwa dan/atau Pesan Siap, Tanggap dan Pulihkan ke dalam bahasa lain, menggunakan, mengedit atau merevisi, apalagi mengubah arti Umpan Data, Peringatan Acara dan/atau Pesan Siap, Tanggap dan Pulihkan.\n\nAnda harus memastikan Umpan Data, tetap dalam kepemilikan dan/atau kendali Anda sendiri.\n\nAnda dapat tidak memberikan izin Peringatan Peristiwa dan Pesan Siap, Tanggap dan Pulihkan yang dikirim kepada Pengguna Langsung bersamaan dengan iklan atau sponsor apa pun.\n\nAnda tidak boleh mengarsipkan Umpan Data secara keseluruhan mau pun sebagian.", + "body": "Anda bertanggung jawab untuk menjaga kerahasiaan dan keamanan kode registrasi yang diberikan oleh Palang Merah kepada Anda. Anda bertanggung jawab untuk menjaga kompatibilitas dengan API, yang diperbarui dari waktu ke waktu, agar terus menerima Umpan Data. Palang Merah dapat merilis versi terbaru dari API dan Umpan Data atas kebijakannya sendiri. Versi baru mungkin tidak kompatibel dengan penerapan sebelumnya, dan Anda setuju untuk menggunakan versi terbaru dari Umpan Data setiap saat.\n\nAnda setuju untuk tidak mengubah, mendistribusikan, mendekompilasi, membongkar, atau merekayasa balik bagian mana pun dari API atau perangkat lunak Palang Merah.\n\nAnda tidak boleh menggunakan API atau Umpan Data dengan cara yang melebihi volume permintaan yang wajar atau penggunaan yang berlebihan atau disalahgunakan, sebagaimana yang telah ditentukan oleh Palang Merah atas kebijakannya sendiri.\n\nAnda tidak boleh menggunakan API atau Umpan Data dengan cara yang melanggar hukum, menyesatkan, melalaikan, yang bermaksud untuk menyebabkan kerugian, atau merugikan Palang Merah, penyedia layanannya, penyedia kontennya, atau pun pihak lain, sebagaimana ditentukan oleh Palang Merah atas kebijakannya sendiri.\n\nPalang Merah dapat memantau penggunaan API dan Umpan Data Anda. Anda tidak boleh menggunakan cara teknis apa pun untuk mengganggu pemantauan tersebut, dan Palang Merah dapat menggunakan cara teknis untuk mengatasi gangguan tersebut.\n\nPenggunaan Pesan Siap, Tanggap dan Pulihkan hanya akan ditampilkan sebagai pengaturan terkini atau terbaru ke pengaturan urgensi terkini dari Peringatan Peristiwa terkait, dan Anda harus memperbarui Pesan Siap, Tanggap dan Pulihkan Perseorangan setelah pemutakhiran Umpan Data dan\/atau terkait Peringatan Peristiwa oleh Palang Merah.\n\nPesan Siap, Tanggap dan Pulihkan perseorangan yang Anda gunakan sebaiknya hanya diasosiasikan dengan letak geografis di mana ia diterbitkan. Apabila Pesan Siap, Tanggap dan Pulihkan menyertakan referensi ke sebuah sumber seperti American Red Cross atau organisasi atau perhimpunan Palang Merah atau Bulan Sabit Merah nasional lainnya (tiap “Referensi Sumber”), Anda harus menyertakan Referensi Sumber yang diasosiasikan dengan tiap Pesan Siap, Tanggap dan Pulihkan dalam formulir yang disediakan di Umpan Data. Anda tidak boleh lagi menggunakan Referensi Sumber lainnya.\n\nAnda tidak boleh menerjemahkan Umpan Data, Peringatan Peristiwa dan\/atau Pesan Siap, Tanggap dan Pulihkan ke dalam bahasa lain, menggunakan, mengedit atau merevisi, apalagi mengubah arti Umpan Data, Peringatan Acara dan\/atau Pesan Siap, Tanggap dan Pulihkan.\n\nAnda harus memastikan Umpan Data, tetap dalam kepemilikan dan\/atau kendali Anda sendiri.\n\nAnda dapat tidak memberikan izin Peringatan Peristiwa dan Pesan Siap, Tanggap dan Pulihkan yang dikirim kepada Pengguna Langsung bersamaan dengan iklan atau sponsor apa pun.\n\nAnda tidak boleh mengarsipkan Umpan Data secara keseluruhan mau pun sebagian.", "contact": "Silakan hubungi Palang Merah di {0} untuk pertanyaan mengenai API.", - "disclaimer": "API dan Umpan Data disediakan HANYA UNTUK TUJUAN INFORMASI DAN EDUKASI, dan atas dasar 'sebagaimana adanya' dan 'sebagaimana tersedia'. Palang Merah tidak membuat pernyataan atau jaminan apa pun, tersurat mau pun tersirat. Palang Merah menyangkal semua jaminan, tersurat mau pun tersirat, termasuk namun tidak terbatas pada jaminan tersirat mengenai kelayakan untuk diperdagangkan dan kesesuaian untuk tujuan tertentu. Palang Merah dan para karyawan, pejabat, gubernur dan agen serta pemberi lisensinya tidak akan bertanggung jawab atas kerusakan dalam bentuk apa pun yang timbul dari penggunaan API, Umpan Data, Peringatan Peristiwa, dan/atau Pesan Siap, Tanggap dan Pulihkan termasuk namun tidak terbatas pada kerusakan langsung, tidak langsung, insidental, punitif dan konsekuensial.\n\nPalang Merah tidak menjamin urutan, keakuratan, keaslian atau kelengkapan API, Umpan Data, Peringatan Peristiwa dan/atau Pesan Siap, Tanggap dan Pulihkan serta tidak akan bertanggung jawab dengan cara apa pun kepada Anda atau pun Pengguna Langsung bahkan pihak ketiga mana pun, termasuk namun tidak terbatas pada, keterlambatan, ketidakakuratan, kesalahan atau kelalaian, sehubungan dengan API, Umpan Data, Peringatan Peristiwa dan/atau Pesan Siap, Tanggap dan Pulihkan yang disediakan di bawah ini.", + "disclaimer": "API dan Umpan Data disediakan HANYA UNTUK TUJUAN INFORMASI DAN EDUKASI, dan atas dasar 'sebagaimana adanya' dan 'sebagaimana tersedia'. Palang Merah tidak membuat pernyataan atau jaminan apa pun, tersurat mau pun tersirat. Palang Merah menyangkal semua jaminan, tersurat mau pun tersirat, termasuk namun tidak terbatas pada jaminan tersirat mengenai kelayakan untuk diperdagangkan dan kesesuaian untuk tujuan tertentu. Palang Merah dan para karyawan, pejabat, gubernur dan agen serta pemberi lisensinya tidak akan bertanggung jawab atas kerusakan dalam bentuk apa pun yang timbul dari penggunaan API, Umpan Data, Peringatan Peristiwa, dan\/atau Pesan Siap, Tanggap dan Pulihkan termasuk namun tidak terbatas pada kerusakan langsung, tidak langsung, insidental, punitif dan konsekuensial.\n\nPalang Merah tidak menjamin urutan, keakuratan, keaslian atau kelengkapan API, Umpan Data, Peringatan Peristiwa dan\/atau Pesan Siap, Tanggap dan Pulihkan serta tidak akan bertanggung jawab dengan cara apa pun kepada Anda atau pun Pengguna Langsung bahkan pihak ketiga mana pun, termasuk namun tidak terbatas pada, keterlambatan, ketidakakuratan, kesalahan atau kelalaian, sehubungan dengan API, Umpan Data, Peringatan Peristiwa dan\/atau Pesan Siap, Tanggap dan Pulihkan yang disediakan di bawah ini.", "entire_agreement": { "body": "Syarat API merupakan perjanjian lengkap dan eksklusif antara Palang Merah dan Anda sehubungan dengan materi pokok dalam perjanjian ini dan menggantikan semua pemahaman, komunikasi, atau perjanjian lisan mau pun tertulis sebelumnya yang tidak secara khusus dimasukkan dalam perjanjian ini. Palang Merah berhak untuk memodifikasi atau menghentikan perjanjian ini setiap saat.", "heading": "Keseluruhan Perjanjian:" @@ -870,7 +869,7 @@ "heading": "PERJANJIAN LISENSI PENGGUNA LANGSUNG API", "intro": "SETUJU: DENGAN MENGGUNAKAN LAYANAN INI ATAU MENCENTANG KOTAK YANG DISEDIAKAN, PENGGUNA SETUJU UNTUK TERIKAT DALAM PERJANJIAN INI.\n\nAPI merupakan alat yang memungkinkan Anda (“Anda”) untuk mengambil dan menggunakan umpan data yang disediakan oleh Palang Merah termasuk umpan peringatan cuaca dan bencana global dan notifikasi pengawasan (“Peringatan Peristiwa”) serta umpan pesan yang dapat ditindaklanjuti dan kontekstual dengan cara menghadapi bahaya lokal tergantung jenis bahaya dan urgensinya (“Pesan Siap, Tanggap dan Pulihkan”, dan secara kolektif dengan Peringatan Peristiwa, “ Umpan Data”). Pesan Siap, Tanggap dan Pulihkan dimaksudkan untuk menyertakan Peringatan Peristiwa atau peringatan dan notifikasi pengawasan lainnya yang berkaitan dengan peristiwa cuaca dan bencana dalam aplikasi Anda sendiri. Penggunaan Umpan Data diatur oleh Syarat API.", "license_limitations": { - "body": "Anda dapat menggunakan Umpan Data hanya terkait dengan aplikasi Anda sendiri yang tunduk pada Syarat API, dan Anda wajib menjaga kompatibilitas dengan API, yang diperbarui dari waktu ke waktu. Anda diberikan hak non-eksklusif, terbatas dan dapat dibatalkan untuk mengunduh, menggunakan, mereproduksi dan mendistribusikan ke pengguna langsung aplikasi Anda sendiri (“Pengguna Langsung”) Peringatan Peristiwa serta Pesan Siap, Tanggap dan Pulihkan yang relevan dan kontekstual dengan pengaturan urgensi pada masing-masing Peringatan Peristiwa dari Umpan Data, tunduk pada Syarat API. Anda hanya dapat menggunakan API untuk memfasilitasi penggunaan non-komersial dari Umpan Data sesuai dengan Syarat API. Anda tidak diperkenankan dalam hal apa pun menggunakan API untuk memfasilitasi penggunaan komersial dari Umpan Data, Peringatan Peristiwa dan/atau Pesan Siap, Tanggap dan Pulihkan, termasuk namun tidak terbatas pada, menjual ulang, meminta imbalan untuk mengaksesnya, meminta imbalan untuk meredistribusi, atau meminta imbalan untuk membuat karya turunan berdasarkan karya mereka. Palang Merah dan pemberi lisensinya mempertahankan semua hak milik, kepemilikan, hak dan kepentingan dalam dan untuk API, Pesan Siap, Tanggap dan Pulihkan, Peringatan Peristiwa, Umpan Data dan Referensi Sumber (sebagaimana yang didefinisikan berikut) di dalamnya. Semua hak yang tidak diberikan secara tersurat dilindungi.", + "body": "Anda dapat menggunakan Umpan Data hanya terkait dengan aplikasi Anda sendiri yang tunduk pada Syarat API, dan Anda wajib menjaga kompatibilitas dengan API, yang diperbarui dari waktu ke waktu. Anda diberikan hak non-eksklusif, terbatas dan dapat dibatalkan untuk mengunduh, menggunakan, mereproduksi dan mendistribusikan ke pengguna langsung aplikasi Anda sendiri (“Pengguna Langsung”) Peringatan Peristiwa serta Pesan Siap, Tanggap dan Pulihkan yang relevan dan kontekstual dengan pengaturan urgensi pada masing-masing Peringatan Peristiwa dari Umpan Data, tunduk pada Syarat API. Anda hanya dapat menggunakan API untuk memfasilitasi penggunaan non-komersial dari Umpan Data sesuai dengan Syarat API. Anda tidak diperkenankan dalam hal apa pun menggunakan API untuk memfasilitasi penggunaan komersial dari Umpan Data, Peringatan Peristiwa dan\/atau Pesan Siap, Tanggap dan Pulihkan, termasuk namun tidak terbatas pada, menjual ulang, meminta imbalan untuk mengaksesnya, meminta imbalan untuk meredistribusi, atau meminta imbalan untuk membuat karya turunan berdasarkan karya mereka. Palang Merah dan pemberi lisensinya mempertahankan semua hak milik, kepemilikan, hak dan kepentingan dalam dan untuk API, Pesan Siap, Tanggap dan Pulihkan, Peringatan Peristiwa, Umpan Data dan Referensi Sumber (sebagaimana yang didefinisikan berikut) di dalamnya. Semua hak yang tidak diberikan secara tersurat dilindungi.", "heading": "Perizinan dan Pembatasan:" }, "overview": { @@ -889,17 +888,17 @@ "two": "Menghindari atau memodifikasi kode atau mekanisme keamanan yang digunakan oleh Palang Merah atau API, termasuk namun tidak terbatas pada teknologi autentikasi apa pun.", "three": "Meminta, mengumpulkan, memohon atau mendapatkan akses akun, kata sandi atau pun autentikasi rahasia Palang Merah lainnya selain yang diberikan kepada Anda untuk akun pribadi Anda.", "four": "Menyatakan atau menyiratkan afiliasi, sponsor atau dukungan oleh Palang Merah atau organisasi atau perhimpunan nasional Palang Merah atau Bulan Sabit Merah lainnya.", - "five": "Menyatakan atau menyiratkan bahwa Anda yang memiliki dan membuat API, Umpan Data, Peringatan Peristiwa dan/atau Pesan Siap, Tanggap dan Pulihkan.", + "five": "Menyatakan atau menyiratkan bahwa Anda yang memiliki dan membuat API, Umpan Data, Peringatan Peristiwa dan\/atau Pesan Siap, Tanggap dan Pulihkan.", "six": "Menularkan virus, worm, Trojan horse, atau item apa pun yang bersifat destruktif." } }, - "reserve_rights": "Palang Merah berhak untuk mengubah dan/atau tidak lagi menyediakan API dan Umpan Data secara keseluruhan atau sebagian, baik untuk sementara atau permanen, kapan pun tanpa pemberitahuan sebelumnya. Untuk menghilangkan keraguan, Palang Merah tidak diwajibkan untuk menyediakan API atau Umpan Data untuk Anda, dan Anda setuju serta mengetahui bahwa tiap akses dalam kebijakan tunggal dan mutlak Palang Merah.", + "reserve_rights": "Palang Merah berhak untuk mengubah dan\/atau tidak lagi menyediakan API dan Umpan Data secara keseluruhan atau sebagian, baik untuk sementara atau permanen, kapan pun tanpa pemberitahuan sebelumnya. Untuk menghilangkan keraguan, Palang Merah tidak diwajibkan untuk menyediakan API atau Umpan Data untuk Anda, dan Anda setuju serta mengetahui bahwa tiap akses dalam kebijakan tunggal dan mutlak Palang Merah.", "severability": { "body": "Ketidakabsahan atas tiap syarat atau ketentuan dari Syarat API tidak akan memengaruhi keabsahan ketentuan lainnya.", "heading": "Keterpisahan dan Pengabaian:" }, "suspension": { - "body": "Palang Merah berhak untuk menangguhkan atau menghentikan akses Anda jika Palang Merah menetapkan, dengan kebijakannya sendiri, bahwa Anda terlibat dalam penggunaan yang tidak sah dari API atau Umpan Data sebagaimana diuraikan dalam Syarat API atau Anda menggunakan API mau pun Umpan Data dalam tiap aktivitas yang mengancam/membahayakan keselamatan dan/atau keamanan seseorang atau jaringan Palang Merah.", + "body": "Palang Merah berhak untuk menangguhkan atau menghentikan akses Anda jika Palang Merah menetapkan, dengan kebijakannya sendiri, bahwa Anda terlibat dalam penggunaan yang tidak sah dari API atau Umpan Data sebagaimana diuraikan dalam Syarat API atau Anda menggunakan API mau pun Umpan Data dalam tiap aktivitas yang mengancam\/membahayakan keselamatan dan\/atau keamanan seseorang atau jaringan Palang Merah.", "heading": "Penangguhan atau Penghentian:" } }, @@ -1021,4 +1020,4 @@ "draft": "Draft", "bulkUploadDraft": "Draf Unggah File Pesan" } -} \ No newline at end of file +} diff --git a/resources/lang/it.json b/resources/lang/it.json index 9720c5a..a93b6f8 100644 --- a/resources/lang/it.json +++ b/resources/lang/it.json @@ -441,9 +441,9 @@ "immediate": "Immediato", "warning": "Avviso", "anticipated": "Previsto", - "assess_and_plan": "Valuta e Pianifica", - "mitigate_risks": "Mitiga il Rischio", - "prepare_to_respond": "Preparati a Rispondere", + "assess_and_plan":"Valuta e Pianifica", + "mitigate_risks":"Mitiga il Rischio", + "prepare_to_respond":"Preparati a Rispondere", "recover": "Recupera" }, "content": { @@ -526,7 +526,7 @@ "seasonalForecast_extra": "Una previsione stagionale è la previsione di un evento pericoloso. Le azioni intraprese servono a valutare i potenziali rischi e pianificare le attività per ridurre i rischi e proteggere la famiglia.", "watch": "Periodo di osservazione", "watch_help": "Preparati a rispondere", - "watch_extra": "Un periodo di osservazione inizia quando il rischio di un evento pericoloso è aumentato in modo significativo, ma il suo avvenimento, l'ubicazione e / o la tempistica sono ancora incerti. Si prevede di fornire tempo sufficiente per azioni protettive e la preparazione a rispondere.", + "watch_extra": "Un periodo di osservazione inizia quando il rischio di un evento pericoloso è aumentato in modo significativo, ma il suo avvenimento, l'ubicazione e \/ o la tempistica sono ancora incerti. Si prevede di fornire tempo sufficiente per azioni protettive e la preparazione a rispondere.", "warning": "Avviso", "warning_help": "Preparati a rispondere", "warning_extra": "Viene emesso un avviso quando un evento pericoloso è in corso, è imminente o la probabilità che si verifichi è elevata. Indica che le condizioni dell'evento rappresentano una minaccia per la vita o la proprietà. Le persone che si trovino nel raggio d'azione di questo pericolo necessitano di azioni protettive.", @@ -558,8 +558,7 @@ "content_edit_title": "Modifica Contenuto", "content_add_hazard_title": "Aggiungi Pericolo", "key_message_label": "Titolo del messaggio chiave", - "supporting_message_label": "Messaggio di supporto", - "mitigate_risk": "Mitiga il Rischio" + "supporting_message_label": "Messaggio di supporto" }, "message_editor": { "title": "Attribuzione dell'editore", @@ -619,7 +618,7 @@ "bad_request_error_codes": { "30001": "I titoli delle colonne non corrispondono al modello", "30002": "Unità, messaggi o URL assenti", - "30003": "URL unità non valido - assicurati che sia presente il protocollo, es. https://", + "30003": "URL unità non valido - assicurati che sia presente il protocollo, es. https:\/\/", "40001": "Codice paese non valido", "40002": "La società selezionata non corrisponde alla società per il file selezionato", "40003": "La data in cui è stato esportato il file selezionato non è valida e l'importazione non può essere completata" @@ -745,7 +744,7 @@ "fake_alert_heading": "Avviso di freddo estremo", "fake_alert_description": "Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est.", "fake_alert_time": "1H FA", - "fake_alert_time_exact": "05/02/18 alle 05:15 CT", + "fake_alert_time_exact": "05\/02\/18 alle 05:15 CT", "use_cases": { "heading": "Scopri di più", "first_heading": "Come funziona", @@ -842,10 +841,10 @@ "industries": { "media": "Contenuto multimediale", "emergency": "Gestione delle Emergenze", - "non_profit": "Non-profit/Organizzazione Non Governativa", + "non_profit": "Non-profit\/Organizzazione Non Governativa", "humanitarian": "Organizzazione umanitaria", - "red_cross": "Croce Rossa/Mezzaluna Rossa", - "education": "Istruzione / Università", + "red_cross": "Croce Rossa\/Mezzaluna Rossa", + "education": "Istruzione \/ Università", "gov": "Agenzia governativa", "other": "Altro" }, @@ -860,9 +859,9 @@ "body": "Le leggi del Distretto della Columbia regolano tutti i diritti e gli obblighi del presente accordo, senza dare effetto a nessun principio di conflitto legislativo.", "heading": "Legge vigente:" }, - "body": "L'utente è l'unico responsabile del mantenimento della riservatezza e della sicurezza della chiave di accesso fornita dalla Croce Rossa. L'utente è responsabile del mantenimento della compatibilità con l'API, aggiornandolo di volta in volta, al fine di continuare a ricevere i Feed di Dati. Croce Rossa può rilasciare versioni aggiornate dell'API e dei Feed di Dati a sua esclusiva discrezione. Le nuove versioni potrebbero non essere compatibili con precedenti implementazioni e l'utente accetta di usare la versione più aggiornata dei Feed dei Dati ogni volta.\n\nL'utente accetta di non copiare, distribuire, vendere, modificare, decompilare, decodificare, disassemblare o creare opere derivate da qualsiasi Software.\n\nL'utente non può utilizzare l'API o il Feed di Dati in maniera tale da superare un volume ragionevole di richieste o da costituire un uso eccessivo o abusivo, come determinato da Croce Rossa a sua esclusiva discrezione.\n\nL'utente non può utilizzare l'API o i Feed di Dati in modo illegale, fuorviante, negligente, malevolo, con l'intenzione di causare danni o che danneggi Croce Rossa, i suoi fornitori di servizi, i suoi fornitori di contenuti o qualsiasi altra persona, come stabilito da Croce Rossa a sua esclusiva discrezione.\n\nCroce Rossa potrebbe controllare l'uso da parte dell'utente dell'Api e dei Feed di Dati. L'utente non può utilizzare alcun mezzo tecnico per interferire con tale monitoraggio e Croce Rossa può utilizzare mezzi tecnici per superare tali interferenze.\n\nL'uso dei messaggi Preparazione, Risposta e Recupero sarà presentato solo come attuale o aggiornato all'impostazione di urgenza attuale dell'Avviso di evento correlato e l'utente dovrà aggiornare i singoli messaggi di preparazione, risposta e recupero in seguito a qualsiasi aggiornamento dei Feed di Dati e/o degli avvisi di evento correlati da parte di Croce Rossa.\n\n I messaggi individuali Preparazione, Risposta e Recupero sono associati solo alla regione geografica per la quale sono stati emessi. Se un Messaggio Preparazione, Risposta e Recupero include un riferimento a una fonte come la Croce Rossa Americana o un'altra società o organizzazione nazionale della Croce Rossa o della Mezzaluna Rossa (ognuno un \"Riferimento alla Fonte\"), l'utente dovrà includere il Riferimento alla Fonte associato a ciascun Messaggio Preparazione, Risposta e Recupero nella forma fornita nei Feed di Dati. L'utente non farà più alcun uso di nessun Riferimento alla Fonte.\n\nL'utente non può tradurre i Feed di Dati, gli Avvisi di eventi e/o i Messaggi Preparazione, Risposta e Recupero in qualsiasi altra lingua, fare qualsiasi uso, modifica o revisione, o alterare il significato dei Feed di Dati degli Avvisi di eventi e/o dei Messaggi Preparazione, Risposta e Recupero.\n\nL'utente deve assicurarsi che i Feed di Dati rimangano esclusivamente in proprio possesso e sotto il proprio controllo.\n\nL'utente non può permettere che gli Avvisi di Eventi e i Messaggi Preparazione, Risposta e Recupero inviati all'Utente Finale contengano qualche pubblicità o sponsorizzazione.\n\nL'utente non può archiviare né interamente né parzialmente i Feed di Dati.", + "body": "L'utente è l'unico responsabile del mantenimento della riservatezza e della sicurezza della chiave di accesso fornita dalla Croce Rossa. L'utente è responsabile del mantenimento della compatibilità con l'API, aggiornandolo di volta in volta, al fine di continuare a ricevere i Feed di Dati. Croce Rossa può rilasciare versioni aggiornate dell'API e dei Feed di Dati a sua esclusiva discrezione. Le nuove versioni potrebbero non essere compatibili con precedenti implementazioni e l'utente accetta di usare la versione più aggiornata dei Feed dei Dati ogni volta.\n\nL'utente accetta di non copiare, distribuire, vendere, modificare, decompilare, decodificare, disassemblare o creare opere derivate da qualsiasi Software.\n\nL'utente non può utilizzare l'API o il Feed di Dati in maniera tale da superare un volume ragionevole di richieste o da costituire un uso eccessivo o abusivo, come determinato da Croce Rossa a sua esclusiva discrezione.\n\nL'utente non può utilizzare l'API o i Feed di Dati in modo illegale, fuorviante, negligente, malevolo, con l'intenzione di causare danni o che danneggi Croce Rossa, i suoi fornitori di servizi, i suoi fornitori di contenuti o qualsiasi altra persona, come stabilito da Croce Rossa a sua esclusiva discrezione.\n\nCroce Rossa potrebbe controllare l'uso da parte dell'utente dell'Api e dei Feed di Dati. L'utente non può utilizzare alcun mezzo tecnico per interferire con tale monitoraggio e Croce Rossa può utilizzare mezzi tecnici per superare tali interferenze.\n\nL'uso dei messaggi Preparazione, Risposta e Recupero sarà presentato solo come attuale o aggiornato all'impostazione di urgenza attuale dell'Avviso di evento correlato e l'utente dovrà aggiornare i singoli messaggi di preparazione, risposta e recupero in seguito a qualsiasi aggiornamento dei Feed di Dati e\/o degli avvisi di evento correlati da parte di Croce Rossa.\n\n I messaggi individuali Preparazione, Risposta e Recupero sono associati solo alla regione geografica per la quale sono stati emessi. Se un Messaggio Preparazione, Risposta e Recupero include un riferimento a una fonte come la Croce Rossa Americana o un'altra società o organizzazione nazionale della Croce Rossa o della Mezzaluna Rossa (ognuno un \"Riferimento alla Fonte\"), l'utente dovrà includere il Riferimento alla Fonte associato a ciascun Messaggio Preparazione, Risposta e Recupero nella forma fornita nei Feed di Dati. L'utente non farà più alcun uso di nessun Riferimento alla Fonte.\n\nL'utente non può tradurre i Feed di Dati, gli Avvisi di eventi e\/o i Messaggi Preparazione, Risposta e Recupero in qualsiasi altra lingua, fare qualsiasi uso, modifica o revisione, o alterare il significato dei Feed di Dati degli Avvisi di eventi e\/o dei Messaggi Preparazione, Risposta e Recupero.\n\nL'utente deve assicurarsi che i Feed di Dati rimangano esclusivamente in proprio possesso e sotto il proprio controllo.\n\nL'utente non può permettere che gli Avvisi di Eventi e i Messaggi Preparazione, Risposta e Recupero inviati all'Utente Finale contengano qualche pubblicità o sponsorizzazione.\n\nL'utente non può archiviare né interamente né parzialmente i Feed di Dati.", "contact": "Per favore, contattare Croce Rossa al {0} per qualsiasi domanda riguardo all'API.", - "disclaimer": "L'API e i Feed di Dati sono forniti SOLO PER SCOPI INFORMATIVI ED EDUCATIVI, E su una base \"come è\" e \"come disponibile\". Croce Rossa non rilascia dichiarazioni o garanzie di alcun tipo, esplicite o implicite. Croce Rossa declina ogni altra garanzia, esplicita o implicita, tra cui, a titolo esemplificativo, garanzie implicite di commerciabilità e idoneità per uno scopo particolare. Croce Rossa e i suoi dipendenti, funzionari, governatori, agenti e licenziatari non saranno responsabili per danni di qualsiasi tipo derivanti dall'uso dell'API, dei Feed di Dati, degli Avvisi di Eventi e/o dei messaggi di Preparazione, Risposta e Recupero, compresi, ma non solo, i danni diretti, indiretti, incidentali, punitivi e consequenziali.\n\nCroce Rossa non garantisce la sequenza, l'accuratezza, l'autenticità o la completezza dell'API, dei Feed di Dati, degli Avvisi degli Eventi e/o dei messaggi di Preparazione, Risposta e Recupero e non sarà ritenuta responsabile in alcun modo nei confronti dell'utente o dei suoi Utenti Finali o di terzi, inclusi, senza limitazione, eventuali ritardi, imprecisioni, errori o omissioni, relativamente alle API, ai Feed di Dati, agli Avvisi di Eventi e/o ai messaggi di Preparazione, Risposta e Recupero forniti nel presente documento.", + "disclaimer": "L'API e i Feed di Dati sono forniti SOLO PER SCOPI INFORMATIVI ED EDUCATIVI, E su una base \"come è\" e \"come disponibile\". Croce Rossa non rilascia dichiarazioni o garanzie di alcun tipo, esplicite o implicite. Croce Rossa declina ogni altra garanzia, esplicita o implicita, tra cui, a titolo esemplificativo, garanzie implicite di commerciabilità e idoneità per uno scopo particolare. Croce Rossa e i suoi dipendenti, funzionari, governatori, agenti e licenziatari non saranno responsabili per danni di qualsiasi tipo derivanti dall'uso dell'API, dei Feed di Dati, degli Avvisi di Eventi e\/o dei messaggi di Preparazione, Risposta e Recupero, compresi, ma non solo, i danni diretti, indiretti, incidentali, punitivi e consequenziali.\n\nCroce Rossa non garantisce la sequenza, l'accuratezza, l'autenticità o la completezza dell'API, dei Feed di Dati, degli Avvisi degli Eventi e\/o dei messaggi di Preparazione, Risposta e Recupero e non sarà ritenuta responsabile in alcun modo nei confronti dell'utente o dei suoi Utenti Finali o di terzi, inclusi, senza limitazione, eventuali ritardi, imprecisioni, errori o omissioni, relativamente alle API, ai Feed di Dati, agli Avvisi di Eventi e\/o ai messaggi di Preparazione, Risposta e Recupero forniti nel presente documento.", "entire_agreement": { "body": "I Termini dell'API costituiscono l'accordo completo ed esclusivo tra Croce Rossa e l'utente in relazione all'oggetto del presente documento e sostituiscono tutte le precedenti intese, comunicazioni o accordi orali o scritti non specificamente incorporati nel presente documento. Croce Rossa si riserva il diritto di modificare o revocare tale accordo in qualsiasi momento.", "heading": "Intero accordo:" @@ -870,7 +869,7 @@ "heading": "ACCORDO DI LICENZA PER UTENTE FINALE DELL'API", "intro": "ACCORDO: UTILIZZANDO IL SERVIZIO O SELEZIONANDO LA CASELLA FORNITA, L'UTENTE ACCETTA DI ESSERE VINCOLATO A QUESTO ACCORDO.\n\nL'API è uno strumento che ti permette (\"Tu\") di recuperare e utilizzare i feed di dati messi a disposizione da Croce Rossa, tra cui un feed di avvisi di eventi meteorologici e catastrofici globali (\"Avvisi di Eventi\") e un feed di messaggi attuabili e contestualizzati su come prepararsi ai rischi locali per tipo di pericolo e urgenza (\"Messaggi di Preparazione, Risposta e Recupero\" e collettivamente con gli Avvisi di Eventi, i \"Feed di Dati\"). I messaggi di Preparazione, Risposta e Recupero sono destinati ad accompagnare gli Avvisi di Eventi o altri avvisi di allerta e vigilanza associati a eventi meteorologici e disastri nella tua applicazione. L'uso dei feed di dati da parte dell'utente è regolato dai Termini API.", "license_limitations": { - "body": "L'utente può utilizzare i Feed di Dati solo in associazione con la sua applicazione soggetta ai Termini API, e a condizione che mantenga la compatibilità con l'API, come aggiornato di volta in volta. All'utente viene concesso un diritto non esclusivo, limitato e revocabile di scaricare, utilizzare, riprodurre e distribuire agli utenti finali della propria applicazione (\"End Users\") gli avvisi di eventi e i relativi messaggi contestualizzati di Preparazione, Risposta e Recupero in associazione all'impostazione di urgenza dei singoli avvisi di eventi dai Feed di Dati, in base ai Termini API. L'utente può utilizzare l'API solo per facilitare gli usi non commerciali dei Feed di Dati in conformità con i Termini API. L'utente non può in nessun caso utilizzare l'API per facilitare gli usi commerciali dei Feed di Dati, degli Avvisi di eventi e/o dei Messaggi di Preparazione, Risposta e Recupero, compresi, senza limitazione, la rivendita, l'addebito per accedervi, l'addebito per ridistribuirli o l'addebito per creare opere derivate basate su di essi. La Croce Rossa e i suoi concessori di licenza mantengono tutti i titoli, la proprietà, i diritti e gli interessi in e verso l'API, i messaggi di Preparazione, Risposta e Recupero, gli avvisi di eventi, i Feed di Dati e i riferimenti alla fonte (come definiti di seguito) in essi contenuti. Tutti i diritti non espressamente concessi sono riservati.", + "body": "L'utente può utilizzare i Feed di Dati solo in associazione con la sua applicazione soggetta ai Termini API, e a condizione che mantenga la compatibilità con l'API, come aggiornato di volta in volta. All'utente viene concesso un diritto non esclusivo, limitato e revocabile di scaricare, utilizzare, riprodurre e distribuire agli utenti finali della propria applicazione (\"End Users\") gli avvisi di eventi e i relativi messaggi contestualizzati di Preparazione, Risposta e Recupero in associazione all'impostazione di urgenza dei singoli avvisi di eventi dai Feed di Dati, in base ai Termini API. L'utente può utilizzare l'API solo per facilitare gli usi non commerciali dei Feed di Dati in conformità con i Termini API. L'utente non può in nessun caso utilizzare l'API per facilitare gli usi commerciali dei Feed di Dati, degli Avvisi di eventi e\/o dei Messaggi di Preparazione, Risposta e Recupero, compresi, senza limitazione, la rivendita, l'addebito per accedervi, l'addebito per ridistribuirli o l'addebito per creare opere derivate basate su di essi. La Croce Rossa e i suoi concessori di licenza mantengono tutti i titoli, la proprietà, i diritti e gli interessi in e verso l'API, i messaggi di Preparazione, Risposta e Recupero, gli avvisi di eventi, i Feed di Dati e i riferimenti alla fonte (come definiti di seguito) in essi contenuti. Tutti i diritti non espressamente concessi sono riservati.", "heading": "Licenza e Limitazioni:" }, "overview": { @@ -889,17 +888,17 @@ "two": "Eludere o modificare qualsiasi chiave o meccanismo di sicurezza impiegato dalla Croce Rossa o dall'API, compresa, senza limitazione, qualsiasi tecnologia di autenticazione.", "three": "Richiedere, raccogliere, sollecitare o ottenere in altro modo l'accesso a utenti, password o altre credenziali di autenticazione per accedere alla Croce Rossa diverse da quelle fornite all'utente per il proprio account.", "four": "Affermare o implicare l'affiliazione, il patrocinio o l'approvazione da parte della Croce Rossa o di qualsiasi altra società o organizzazione nazionale della Croce Rossa o della Mezzaluna Rossa.", - "five": "Affermare o sottintendere che l'utente possiede o ha creato l'API, i Feed di Dati, gli avvisi di eventi e/o i messaggi di preparazione, risposta e recupero.", + "five": "Affermare o sottintendere che l'utente possiede o ha creato l'API, i Feed di Dati, gli avvisi di eventi e\/o i messaggi di preparazione, risposta e recupero.", "six": "Trasmettere qualsiasi virus, worms, cavalli di Troia, o qualsiasi elemento progettato per danneggiare." } }, - "reserve_rights": "La Croce Rossa si riserva il diritto di modificare e/o non fornire più l'API e i feed di dati in tutto o in parte, temporaneamente o permanentemente, in qualsiasi momento e senza preavviso. A scanso di equivoci, nulla nel presente documento obbliga la Croce Rossa a rendere disponibili all'utente le sue API o i suoi feed di dati e l'utente accetta e riconosce che qualsiasi accesso è a sola e assoluta discrezione della Croce Rossa.", + "reserve_rights": "La Croce Rossa si riserva il diritto di modificare e\/o non fornire più l'API e i feed di dati in tutto o in parte, temporaneamente o permanentemente, in qualsiasi momento e senza preavviso. A scanso di equivoci, nulla nel presente documento obbliga la Croce Rossa a rendere disponibili all'utente le sue API o i suoi feed di dati e l'utente accetta e riconosce che qualsiasi accesso è a sola e assoluta discrezione della Croce Rossa.", "severability": { "body": "L'invalidità di una qualsiasi disposizione dei Termini Api non influirà sulla validità di qualsiasi altra disposizione.", "heading": "Divisibilità e Rinuncia:" }, "suspension": { - "body": "La Croce Rossa si riserva il diritto di sospendere o terminare l'accesso dell'utente se stabilisce, a sua esclusiva discrezione, che l'utente è impegnato in un uso non autorizzato dell'API o del Feed di Dati come indicato nei Termini API o che l'utente sta usando l'API o il Feed di Dati in attività che minacciano/compromettono la sicurezza di qualsiasi persona o della rete della Croce Rossa.", + "body": "La Croce Rossa si riserva il diritto di sospendere o terminare l'accesso dell'utente se stabilisce, a sua esclusiva discrezione, che l'utente è impegnato in un uso non autorizzato dell'API o del Feed di Dati come indicato nei Termini API o che l'utente sta usando l'API o il Feed di Dati in attività che minacciano\/compromettono la sicurezza di qualsiasi persona o della rete della Croce Rossa.", "heading": "Sospensione o Risoluzione:" } }, diff --git a/resources/lang/ja.json b/resources/lang/ja.json index ae5a8e6..58d5b1d 100644 --- a/resources/lang/ja.json +++ b/resources/lang/ja.json @@ -441,9 +441,9 @@ "immediate": "即時", "warning": "警告", "anticipated": "予測", - "assess_and_plan": "評価と計画", - "mitigate_risks": "リスク軽減", - "prepare_to_respond": "対応準備", + "assess_and_plan":"評価と計画", + "mitigate_risks":"リスク軽減", + "prepare_to_respond":"対応準備", "recover": "復旧" }, "content": { @@ -558,8 +558,7 @@ "content_edit_title": "コンテンツ編集", "content_add_hazard_title": "危険を追加", "key_message_label": "主要メッセージのタイトル", - "supporting_message_label": "サポートメッセージ", - "mitigate_risk": "リスク軽減" + "supporting_message_label": "サポートメッセージ" }, "message_editor": { "title": "アトリビューション・エディター", @@ -619,7 +618,7 @@ "bad_request_error_codes": { "30001": "列見出しがテンプレートと一致しません", "30002": "組織名、メッセージ、またはURLがありません", - "30003": "組織名のURLが無効です。https://などのプロトコルが存在することを確認してください", + "30003": "組織名のURLが無効です。https:\/\/などのプロトコルが存在することを確認してください", "40001": "不正な国コードが入力されました", "40002": "選択した組織は、選択したファイルの組織と一致しません", "40003": "選択したファイルがエクスポートされた日付は不正に作成され、インポートが完了していません" diff --git a/resources/lang/my.json b/resources/lang/my.json index 05fc638..74a40c7 100644 --- a/resources/lang/my.json +++ b/resources/lang/my.json @@ -197,15 +197,13 @@ "steps": { "one": { "heading": "အဆင့် ၁ - စာရင်းသွင်းပါ", - "body": "လုံခြုံရေးသတင်းစကား ဒေတာဘေ့စ် API မှ ဒေတာကို အသုံးပြုခြင်းစတင်ရန်၊ ဦးစွာ လုံခြုံရေးသတင်းစကား ဒေတာဘေ့စ် ပေါ်တယ်သို့ {0} ဝင်ရောက်ပါ။\n\nသင်သည် သင်၏ Facebook နှင့် Google အကောင့်များ သို့မဟုတ် အီးမေးလ်လိပ်စာကို အသုံးပြု၍ အကောင့်တစ်ခု ဖန်တီးနိုင်သည်။", - "create_account_alt": "အကောင့်တစ်ခုဖန်တီးခြင်း", + "body": "လုံခြုံရေးသတင်းစကား ဒေတာဘေ့စ် API မှ ဒေတာကို အသုံးပြုခြင်းစတင်ရန်၊ ဦးစွာ လုံခြုံရေးသတင်းစကား ဒေတာဘေ့စ် ပေါ်တယ်သို့ {0} ဝင်ရောက်ပါ။\n\nသင်သည် သင်၏ Facebook နှင့် Google အကောင့်များ သို့မဟုတ် အီးမေးလ်လိပ်စာကို အသုံးပြု၍ အကောင့်တစ်ခု ဖန်တီးနိုင်သည်။", "create_account_alt": "အကောင့်တစ်ခုဖန်တီးခြင်း", "existing_account": "သင့်တွင်အကောင့်တစ်ခုရှိပြီးဖြစ်ပါကက ကျေးဇူးပြု၍ {0}။", "login_cta": "လော့ဂ်အင်ဝင်ရန်", "sign_up_cta": "စာရင်းသွင်းရန်" }, "two": { - "body": "API ကို အသုံးပြုရန်၊ သင်သည် လုံခြုံရေးသတင်းစကား ဒေတာဘေ့စ် ပေါ်တယ်တွင် အပလီကေးရှင်းတစ်ခု ဖန်တီးရပါမည်။ သင်ဘာတည်ဆောက်နေသည်ကို အနည်းငယ်ပြောပြပါ။", - "create_app_alt": "အက်ပ် ဖန်တီးပါ", + "body": "API ကို အသုံးပြုရန်၊ သင်သည် လုံခြုံရေးသတင်းစကား ဒေတာဘေ့စ် ပေါ်တယ်တွင် အပလီကေးရှင်းတစ်ခု ဖန်တီးရပါမည်။ သင်ဘာတည်ဆောက်နေသည်ကို အနည်းငယ်ပြောပြပါ။", "create_app_alt": "အက်ပ် ဖန်တီးပါ", "heading": "အဆင့် ၂ - အက်ပ်တစ်ခုဖန်တီးပါ" }, "three": { @@ -216,8 +214,7 @@ }, "four": { "api_docs_cta": "API စာရွက်စာတမ်း", - "body": "API ကို အသုံးပြုရန်၊ သင်သည် လုံခြုံရေးသတင်းစကား ဒေတာဘေ့စ် ပေါ်တယ်တွင် အပလီကေးရှင်းတစ်ခု ဖန်တီးရပါမည်။ သင်ဘာတည်ဆောက်နေသည်ကို အနည်းငယ်ပြောပြပါ။", - "example_title": "တောင်းခံလွှာနမူနာ", + "body": "API ကို အသုံးပြုရန်၊ သင်သည် လုံခြုံရေးသတင်းစကား ဒေတာဘေ့စ် ပေါ်တယ်တွင် အပလီကေးရှင်းတစ်ခု ဖန်တီးရပါမည်။ သင်ဘာတည်ဆောက်နေသည်ကို အနည်းငယ်ပြောပြပါ။", "example_title": "တောင်းခံလွှာနမူနာ", "heading": "အဆင့် ၄ - တောင်းဆိုမှုတစ်ခု ပြုပါ", "moreInfo": "API အဆုံးသတ်အမှတ်များအားလုံးနှင့် ပတ်သက်သည့်အချက်အလက်များ ပိုမိုသိရှိလိုပါက {0} ကိုကြည့်ပါ။" } @@ -441,9 +438,9 @@ "immediate": "ချက်ချင်း", "warning": "သတိပေးချက်", "anticipated": "မျှော်မှန်းထားသည်", - "assess_and_plan": "အကဲဖြတ်ပြီး စီစဉ်ပါ", - "mitigate_risks": "အန္တရာယ်ကို လျှော့ချပါ", - "prepare_to_respond": "တုံ့ပြန်ရန် ပြင်ဆင်ပါ", + "assess_and_plan":"အကဲဖြတ်ပြီး စီစဉ်ပါ", + "mitigate_risks":"အန္တရာယ်ကို လျှော့ချပါ", + "prepare_to_respond":"တုံ့ပြန်ရန် ပြင်ဆင်ပါ", "recover": "ပြန်လည်နာလန်ထူပါ" }, "content": { @@ -526,7 +523,7 @@ "seasonalForecast_extra": "ရာသီအလိုက်ခန့်မှန်းချက်တစ်ခုဆိုသည်မှာ အန္တရာယ်ရှိသောဖြစ်စဉ်တစ်ခုကို ကြိုတင်ခန့်မှန်းသည့် ဖော်ပြချက်တစ်ခုဖြစ်ပါသည်။ လုပ်ဆောင်သည့်အရာများမှာ အိမ်ထောင်စုကို ကာကွယ်ရန်နှင့် ဘေးအန္တရာယ်လျှော့ချရန် ဖြစ်နိုင်ချေရှိသော ဘေးအန္တရာယ်များကို အကဲဖြတ်ခြင်းနှင့် လုပ်ဆောင်ချက်များကို ကြိုတင်စီမံခြင်းဖြစ်သည်။", "watch": "စောင့်ကြည့်ပါ", "watch_help": "တုံ့ပြန်ရန် ကြိုတင်ပြင်ဆင်ပါ", - "watch_extra": "အန္တရာယ်ရှိသောအဖြစ်အပျက်တစ်ခု၏အန္တရာယ် သိသိသာသာ မြှင့်တက်လာသောအခါ စောင့်ကြည့်မှုပြုရန် ကြေညာချက်ထုတ်သော်လည်း ၎င်း၏ဖြစ်ပျက်မှု၊ တည်နေရာ နှင့်/သို့မဟုတ် အချိန်ကိုက်မှုများသည် မသေချာသေးပါ။ ဤသည်က ကြိုတင်ကာကွယ်သည့် လုပ်ဆောင်ချက်များနှင့် တုံ့ပြန်ရန်ပြင်ဆင်မှုများအတွက် လုံလောက်သောအချိန်ပေးရန် ရည်ရွယ်သည်။", + "watch_extra": "အန္တရာယ်ရှိသောအဖြစ်အပျက်တစ်ခု၏အန္တရာယ် သိသိသာသာ မြှင့်တက်လာသောအခါ စောင့်ကြည့်မှုပြုရန် ကြေညာချက်ထုတ်သော်လည်း ၎င်း၏ဖြစ်ပျက်မှု၊ တည်နေရာ နှင့်\/သို့မဟုတ် အချိန်ကိုက်မှုများသည် မသေချာသေးပါ။ ဤသည်က ကြိုတင်ကာကွယ်သည့် လုပ်ဆောင်ချက်များနှင့် တုံ့ပြန်ရန်ပြင်ဆင်မှုများအတွက် လုံလောက်သောအချိန်ပေးရန် ရည်ရွယ်သည်။", "warning": "သတိပေးချက်", "warning_help": "တုံ့ပြန်ရန် ကြိုတင်ပြင်ဆင်ပါ", "warning_extra": "ဘေးအန္တရာယ်ရှိသောဖြစ်စဉ်တစ်ခု ဖြစ်ပေါ်နေစဉ်၊ ဖြစ်အံ့ဆဲဆဲ သို့မဟုတ် ဖြစ်ပေါ်နိုင်ချေ အလွန်မြင့်မားသည့်အခါ သတိပေးချက်ကို ထုတ်ပြန်သည်။ ဆိုလိုသည်မှာ အသက် သို့မဟုတ် ပိုင်ဆိုင်မှုကို ခြိမ်းခြောက်သည့် အခြေအနေများ ဖြစ်ပေါ်စေခြင်းဖြစ်သည်။ ဤဘေးအန္တရာယ် လမ်းကြောင်းရှိလူများသည် ကြိုတင်ကာကွယ်သည့် လုပ်ဆောင်ချက်များ လုပ်ဆောင်ရန် လိုအပ်သည်။", @@ -558,8 +555,7 @@ "content_edit_title": "အကြောင်းအရာ တည်းဖြတ်ခြင်း", "content_add_hazard_title": "အန္တရာယ် ထည့်ပါ", "key_message_label": "အဓိက သတင်းစကား ခေါင်းစဉ်", - "supporting_message_label": "အထောက်အပံ့ သတင်းစကား", - "mitigate_risk": "အန္တရာယ်ကို လျှော့ချပါ" + "supporting_message_label": "အထောက်အပံ့ သတင်းစကား" }, "message_editor": { "title": "ဂုဏ်ပြုခြင်း တည်းဖြတ်သူ", @@ -619,7 +615,7 @@ "bad_request_error_codes": { "30001": "ကော်လံ ခေါင်းစဉ်ကြီးများသည် ပုံစံနှင့်မကိုက်ညီပါ", "30002": "မူလလက်ရာရှင်အမည်၊ မက်ဆေ့ခ်ျ သို့မဟုတ် url များ ပျောက်နေသည်", - "30003": "မူလလက်ရာရှင် url မမှန်ပါ - ကျေးဇူးပြု၍ လုပ်ထုံး ဥပမာ - https:// ရှိကြောင်း သေချာပါစေ", + "30003": "မူလလက်ရာရှင် url မမှန်ပါ - ကျေးဇူးပြု၍ လုပ်ထုံး ဥပမာ - https:\/\/ ရှိကြောင်း သေချာပါစေ", "40001": "ပေးထားသော နိုင်ငံကုဒ် မမှန်ပါ", "40002": "ရွေးချယ်ထားသောလူ့အဖွဲ့အစည်းသည် ရွေးချယ်ထားသောဖိုင်အတွက် လူ့အဖွဲ့အစည်းနှင့် မကိုက်ညီပါ", "40003": "ရွေးချယ်ထားသောဖိုင် တင်ပို့ခဲ့သည့်ရက်စွဲသည် မပြည့်စုံသဖြင့် တင်သွင်းမှု မပြီးမြောက်ပါ" @@ -690,7 +686,7 @@ }, "landing": { "strapline": "လုံခြုံရေးသတင်းစကား ဒေတာဘေ့စ် ဝန်ဆောင်မှု", - "strapline_part_2": "ကမ္ဘာလုံးဆိုင်ရာ ကြက်ခြေနီ/ လခြမ်းနီ ၏အဓိက ဘေးအန္တရာယ်ကင်းရှင်းရေး သတင်းစကားများ", + "strapline_part_2": "ကမ္ဘာလုံးဆိုင်ရာ ကြက်ခြေနီ\/ လခြမ်းနီ ၏အဓိက ဘေးအန္တရာယ်ကင်းရှင်းရေး သတင်းစကားများ", "head_1": "IFRC လုံခြုံရေး", "head_2": "သတင်းစကား ဒေတာဘေ့စ်", "head_text_1": "IFRC ပြည်သူ့အသိပညာပေးမှုနှင့် အခြေခံထားသော လုံခြုံရေးသတင်းစကားများ", @@ -745,7 +741,7 @@ "fake_alert_heading": "အအေးဓာတ်လွန်ကဲနိုင်ကြောင်း သတိပေးချက်", "fake_alert_description": "Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est.", "fake_alert_time": "၁ နာရီအကြာက", - "fake_alert_time_exact": "၀၅/၀၂/၁၈ ရက်နေ့ ၀၅:၁၅ CT အချိန်တွင်", + "fake_alert_time_exact": "၀၅\/၀၂\/၁၈ ရက်နေ့ ၀၅:၁၅ CT အချိန်တွင်", "use_cases": { "heading": "ပိုမိုသိရှိရန်", "first_heading": "အလုပ်လုပ်ပုံ", @@ -786,7 +782,7 @@ }, "data_preview": { "heading": "လုံခြုံရေး သတင်းစကားများ", - "sub_heading": "ကမ္ဘာတစ်ဝှမ်းရှိ ကြက်ခြေနီ / လခြမ်းနီ အမျိုးသားလူ့အဖွဲ့အစည်းများထံမှ သော့ချက်စာတမ်းများကို ဆိုင်းအပ် လုပ်၍ ကြည့်ပါ" + "sub_heading": "ကမ္ဘာတစ်ဝှမ်းရှိ ကြက်ခြေနီ \/ လခြမ်းနီ အမျိုးသားလူ့အဖွဲ့အစည်းများထံမှ သော့ချက်စာတမ်းများကို ဆိုင်းအပ် လုပ်၍ ကြည့်ပါ" }, "footer": { "terms_conditions": "စည်းမျဉ်းများနှင့် အခြေအနေများ", @@ -844,8 +840,8 @@ "emergency": "အရေးပေါ် စီမံခန့်ခွဲမှု", "non_profit": "အကျိုးအမြတ်အတွက်မဟုတ်သော NGO များ", "humanitarian": "လူသားချင်းစာနာမှုအဖွဲ့အစည်း", - "red_cross": "ကြက်ခြေနီ /လခြမ်းနီ", - "education": "ပညာရေး /ပညာရပ်", + "red_cross": "ကြက်ခြေနီ \/လခြမ်းနီ", + "education": "ပညာရေး \/ပညာရပ်", "gov": "အစိုးရအေဂျင်စီ", "other": "အခြား" }, @@ -860,7 +856,7 @@ "body": "ဤပဋိညာဉ်ပါ အခွင့်အရေးများနှင့် တာဝန်ဝတ္တရားများအား ဥပဒေချင်း ပဋိပက္ခဖြစ်မှု တစ်စုံတစ်ရာ မရှိစေရဘဲ ကိုလံဘီယာခရိုင်၏ ဥပဒေများမှ အုပ်ချုပ်ထားသည်။", "heading": "သက်ဆိုင်သောဥပဒေ -" }, - "body": "ကြက်ခြေနီမှ သင့်အား ပေးအပ်သည့် မှတ်ပုံတင်သော့၏ လျှို့ဝှက်ချက်နှင့် လုံခြုံမှုကို ထိန်းသိမ်းရန် သင့်တွင်တာဝန်ရှိသည်။ API သည် အချိန်နှင့်အမျှ ပြင်ဆင်ပြောင်းလဲနေပါသဖြင့် Data Feeds ကို ဆက်လက်ရရှိရန်အတွက် သင့်အနေဖြင့် ယင်းနှင့်လိုက်ဖက်အောင် ထိန်းသိမ်းရန် တာ၀န်ရှိသည်။ ကြက်ခြေနီသည် API နှင့် Data Feeds ၏ နောက်ဆုံးပေါ်မူကွဲများကို ၎င်း၏ ကိုယ်ပိုင်ဆုံးဖြတ်ချက်ဖြင့် ထုတ်ပြန်နိုင်သည်။ မူကွဲအသစ်များသည် ယခင်အကောင်အထည်ဖော်မှုများနှင့် မကိုက်ညီနိုင်ပါ။ သင်နောက်ဆုံးပေါ် မွမ်းမံထားသောအချက်အလက်ထည့်သွင်းမှု မူကွဲဗားရှင်းကို အချိန်တိုင်းအသုံးပြုရန် သင်သဘောတူသည်။\n\nAPI ၏ မည်သည့်အစိတ်အပိုင်းကိုမဆို (သို့မဟုတ်) ကြက်ခြေနီ၏ မည်သည့်ဆော့ဝဲလ်ကိုမဆို ပြုပြင်ခြင်း၊ ဖြန့်ဝေခြင်း၊ ဖြိုခွဲခြင်း၊ ဖြိုဖျက်ခြင်း၊ ပြောင်းပြန်ပြောင်းလဲအသုံးပြုခြင်း မပြုလုပ်ရန် သင်သဘောတူသည်။\n\nကြက်ခြေနီ တစ်ခုတည်း၏ ကိုယ်ပိုင်ဆုံးဖြတ်ခွင့်ဖြင့် ဆုံးဖြတ်ထားသည့်အတိုင်း သင့်လျော်သော တောင်းဆိုမှုပမာဏထက် ကျော်လွန်၍ သို့မဟုတ် အလွန်အကျွံ သို့မဟုတ် အလွဲသုံးစားမှုအသုံးပြုခြင်းဖြင့် အသုံးပြုသည့် API သို့မဟုတ် Data Feeds ကို သင်အသုံးမပြုနိုင်ပါ။\n\nသင်သည် API သို့မဟုတ် Data Feeds ကို တရားမဝင်သော၊ လွဲမှားယူဆစေနိုင်သော၊ ပေါ့ဆသော၊ အဆိုးသဘောဆောင်သာ၊ ထိခိုက်စေလိုသော ရည်ရွယ်ချက်ပါဝင်သည့် အပြုအမူများ သို့မဟုတ် ကြက်ခြေနီ၊ ယင်းအား ဝန်ဆောင်မှုပေးသူများ၊ ယင်းအား ပါဝင်အကြောင်းအရာပေးသူများ သို့မဟုတ် အခြားသော မည်သူ့ကိုဖြစ်စေ ထိခိုက်စေလိုသော အပြုအမူများဟု ကြက်ခြေနီတစ်ခုတည်းမှ အဆုံးအဖြတ်ပေးထားသော အပြုအမူများဖြင့် အသုံးမပြုရ။\n\nကြက်ခြေနီသည် သင်၏ API နှင့် Data Feeds အသုံးပြုမှုကိုစောင့်ကြည့်နိုင်သည်။ သင်သည် ထိုကဲ့သို့သော စောင့်ကြည့်စစ်ဆေးမှုကို ဝင်ရောက်စွက်ဖက်ရန်အတွက် မည်သည့် နည်းပညာဆိုင်ရာနည်းလမ်းကိုမှ အသုံးမပြုနိုင်ဘဲ ကြက်ခြေနီသည် ထိုကဲ့သို့သော ဝင်ရောက်စွက်ဖက်မှုများကို ကျော်လွှားရန် နည်းပညာဆိုင်ရာနည်းလမ်းများကို အသုံးပြုမည်ဖြစ်သည်။\n\nပြင်ဆင်ခြင်း၊ တုန့်ပြန်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်းဆိုင်ရာ မက်ဆေ့ခ်ျများအား အသုံးပြုခြင်းကို လက်ရှိ (သို့မဟုတ်) နောက်ဆုံးပေါ် ဆက်စပ်မှုအဖြစ်အပျက်အချက်ပေးမှု၏ လက်ရှိအရေးပေါ်အခြေအနေအဖြစ်သာ တင်ပြရမည်။ အချက်အလက်များပေးပို့ခြင်း နှင့်/သို့မဟုတ် ဆက်နွယ်သော အဖြစ်အပျက်ဆိုင်ရာ သတိပေးချက်များကို ကြက်ခြေနီမှ ပြင်ဆင်မှုများပြုလုပ်ပြီးပါက သင်သည် ပြင်ဆင်ခြင်း၊ တုန့်ပြန်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်းဆိုင်ရာ မက်ဆေ့ခ်ျတစ်ခုချင်းစီအား ပုံစံအသစ်ဖြင့် ပြန်လည်ပြင်ဆင်ရမည်။\n\nသင်အသုံးပြုသော ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ရယူခြင်း မက်ဆေ့တစ်ခုချင်းစီသည် ၎င်းထုတ်ပေးသည့် ပထဝီဒေသနှင့်သာ သက်ဆိုင်ရမည်။ အကယ်၍ ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်းဆိုင်ရာမက်ဆေ့ခ်ျများတွင် အမေရိကန်ကြက်ခြေနီ သို့မဟုတ် အခြားကြက်ခြေနီ သို့မဟုတ် လခြမ်းနီအမျိုးသားလူ့အဖွဲ့အစည်း သို့မဟုတ် အဖွဲ့အစည်း (\"ရင်းမြစ်ကိုးကားချက်\" တစ်ခုချင်းစီ) ကဲ့သို့သော အရင်းအမြစ်တစ်ခုကို ရည်ညွှန်းပါက၊ သင်သည် ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်း နှင့် ပြန်လည်ထူထောင်ခြင်းဆိုင်ရာမက်ဆေ့ချ်များအတွက် ကိုးကားချက်များကို Data Feeds တွင်း ပေးအပ်ထားသောဖောင်ပုံစံအတွင်း ဖြည့်သွင်းရမည်။ သင်သည် မည်သည့် ရင်းမြစ်ရည်ညွှန်းချက်ကိုမှ ထပ်မံ၍ အသုံးမပြုရ။\n\nသင်သည် သတင်းအချက်အလက်များကို ထည့်သွင်းခြင်း (Data Feeds)၊ ဖြစ်ရပ်များသတိပေးခြင်းများ နှင့်/သို့မဟုတ် ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ရယူခြင်းမက်ဆေ့များကို အခြားဘာသာစကားများသို့ ဘာသာပြန်ဆိုခြင်း၊ မည်သည့်နည်းနှင့်မဆို အသုံးချခြင်း၊ ပြုပြင်ခြင်း၊ ပြန်လည်ပြင်ဆင်ခြင်း မပြုလုပ်ရပါ။ သတင်းအချက်အလက်များကို ထည့်သွင်းခြင်း၊ ဖြစ်ရပ်များသတိပေးခြင်းများ နှင့်/သို့မဟုတ် ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ရယူခြင်းမက်ဆေ့များ၏ အဓိပ္ပာယ်ကို ပြောင်းလဲခြင်း (များ) မပြုလုပ်ရပါ။\n\nData Feeds သည် သင့်တစ်ဦးတည်း၏ ပိုင်ဆိုင်မှု နှင့်/သို့မဟုတ် ထိန်းချုပ်မှုအောက်တွင် ရှိကြောင်း သေချာအောင် ပြုလုပ်ရမည်။\n\nသင်သည် နောက်ဆုံးပေါ်အသုံးပြုသူများထံသို့ ပေးပို့သော အဖြစ်အပျက်သတိပေးချက်များ၊ ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ရယူခြင်းမက်ဆေ့များထဲတွင် မည်သည့်ကြော်ငြာများနှင့် စပွန်ဆာမဆို ထည့်သွင်းခွင့်မပြုစေရ။\n\nသင်သည် Data Feeds တစ်ခုလုံးကိုဖြစ်စေ၊ တစ်စိတ်တစ်ပိုင်းအနေဖြင့်ဖြစ်စေ မည်သည့် သိမ်းဆည်းမှုကိုမှ မလုပ်ရပါ။", + "body": "ကြက်ခြေနီမှ သင့်အား ပေးအပ်သည့် မှတ်ပုံတင်သော့၏ လျှို့ဝှက်ချက်နှင့် လုံခြုံမှုကို ထိန်းသိမ်းရန် သင့်တွင်တာဝန်ရှိသည်။ API သည် အချိန်နှင့်အမျှ ပြင်ဆင်ပြောင်းလဲနေပါသဖြင့် Data Feeds ကို ဆက်လက်ရရှိရန်အတွက် သင့်အနေဖြင့် ယင်းနှင့်လိုက်ဖက်အောင် ထိန်းသိမ်းရန် တာ၀န်ရှိသည်။ ကြက်ခြေနီသည် API နှင့် Data Feeds ၏ နောက်ဆုံးပေါ်မူကွဲများကို ၎င်း၏ ကိုယ်ပိုင်ဆုံးဖြတ်ချက်ဖြင့် ထုတ်ပြန်နိုင်သည်။ မူကွဲအသစ်များသည် ယခင်အကောင်အထည်ဖော်မှုများနှင့် မကိုက်ညီနိုင်ပါ။ သင်နောက်ဆုံးပေါ် မွမ်းမံထားသောအချက်အလက်ထည့်သွင်းမှု မူကွဲဗားရှင်းကို အချိန်တိုင်းအသုံးပြုရန် သင်သဘောတူသည်။\n\nAPI ၏ မည်သည့်အစိတ်အပိုင်းကိုမဆို (သို့မဟုတ်) ကြက်ခြေနီ၏ မည်သည့်ဆော့ဝဲလ်ကိုမဆို ပြုပြင်ခြင်း၊ ဖြန့်ဝေခြင်း၊ ဖြိုခွဲခြင်း၊ ဖြိုဖျက်ခြင်း၊ ပြောင်းပြန်ပြောင်းလဲအသုံးပြုခြင်း မပြုလုပ်ရန် သင်သဘောတူသည်။\n\nကြက်ခြေနီ တစ်ခုတည်း၏ ကိုယ်ပိုင်ဆုံးဖြတ်ခွင့်ဖြင့် ဆုံးဖြတ်ထားသည့်အတိုင်း သင့်လျော်သော တောင်းဆိုမှုပမာဏထက် ကျော်လွန်၍ သို့မဟုတ် အလွန်အကျွံ သို့မဟုတ် အလွဲသုံးစားမှုအသုံးပြုခြင်းဖြင့် အသုံးပြုသည့် API သို့မဟုတ် Data Feeds ကို သင်အသုံးမပြုနိုင်ပါ။\n\nသင်သည် API သို့မဟုတ် Data Feeds ကို တရားမဝင်သော၊ လွဲမှားယူဆစေနိုင်သော၊ ပေါ့ဆသော၊ အဆိုးသဘောဆောင်သာ၊ ထိခိုက်စေလိုသော ရည်ရွယ်ချက်ပါဝင်သည့် အပြုအမူများ သို့မဟုတ် ကြက်ခြေနီ၊ ယင်းအား ဝန်ဆောင်မှုပေးသူများ၊ ယင်းအား ပါဝင်အကြောင်းအရာပေးသူများ သို့မဟုတ် အခြားသော မည်သူ့ကိုဖြစ်စေ ထိခိုက်စေလိုသော အပြုအမူများဟု ကြက်ခြေနီတစ်ခုတည်းမှ အဆုံးအဖြတ်ပေးထားသော အပြုအမူများဖြင့် အသုံးမပြုရ။\n\nကြက်ခြေနီသည် သင်၏ API နှင့် Data Feeds အသုံးပြုမှုကိုစောင့်ကြည့်နိုင်သည်။ သင်သည် ထိုကဲ့သို့သော စောင့်ကြည့်စစ်ဆေးမှုကို ဝင်ရောက်စွက်ဖက်ရန်အတွက် မည်သည့် နည်းပညာဆိုင်ရာနည်းလမ်းကိုမှ အသုံးမပြုနိုင်ဘဲ ကြက်ခြေနီသည် ထိုကဲ့သို့သော ဝင်ရောက်စွက်ဖက်မှုများကို ကျော်လွှားရန် နည်းပညာဆိုင်ရာနည်းလမ်းများကို အသုံးပြုမည်ဖြစ်သည်။\n\nပြင်ဆင်ခြင်း၊ တုန့်ပြန်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်းဆိုင်ရာ မက်ဆေ့ခ်ျများအား အသုံးပြုခြင်းကို လက်ရှိ (သို့မဟုတ်) နောက်ဆုံးပေါ် ဆက်စပ်မှုအဖြစ်အပျက်အချက်ပေးမှု၏ လက်ရှိအရေးပေါ်အခြေအနေအဖြစ်သာ တင်ပြရမည်။ အချက်အလက်များပေးပို့ခြင်း နှင့်\/သို့မဟုတ် ဆက်နွယ်သော အဖြစ်အပျက်ဆိုင်ရာ သတိပေးချက်များကို ကြက်ခြေနီမှ ပြင်ဆင်မှုများပြုလုပ်ပြီးပါက သင်သည် ပြင်ဆင်ခြင်း၊ တုန့်ပြန်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်းဆိုင်ရာ မက်ဆေ့ခ်ျတစ်ခုချင်းစီအား ပုံစံအသစ်ဖြင့် ပြန်လည်ပြင်ဆင်ရမည်။\n\nသင်အသုံးပြုသော ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ရယူခြင်း မက်ဆေ့တစ်ခုချင်းစီသည် ၎င်းထုတ်ပေးသည့် ပထဝီဒေသနှင့်သာ သက်ဆိုင်ရမည်။ အကယ်၍ ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်းဆိုင်ရာမက်ဆေ့ခ်ျများတွင် အမေရိကန်ကြက်ခြေနီ သို့မဟုတ် အခြားကြက်ခြေနီ သို့မဟုတ် လခြမ်းနီအမျိုးသားလူ့အဖွဲ့အစည်း သို့မဟုတ် အဖွဲ့အစည်း (\"ရင်းမြစ်ကိုးကားချက်\" တစ်ခုချင်းစီ) ကဲ့သို့သော အရင်းအမြစ်တစ်ခုကို ရည်ညွှန်းပါက၊ သင်သည် ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်း နှင့် ပြန်လည်ထူထောင်ခြင်းဆိုင်ရာမက်ဆေ့ချ်များအတွက် ကိုးကားချက်များကို Data Feeds တွင်း ပေးအပ်ထားသောဖောင်ပုံစံအတွင်း ဖြည့်သွင်းရမည်။ သင်သည် မည်သည့် ရင်းမြစ်ရည်ညွှန်းချက်ကိုမှ ထပ်မံ၍ အသုံးမပြုရ။\n\nသင်သည် သတင်းအချက်အလက်များကို ထည့်သွင်းခြင်း (Data Feeds)၊ ဖြစ်ရပ်များသတိပေးခြင်းများ နှင့်\/သို့မဟုတ် ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ရယူခြင်းမက်ဆေ့များကို အခြားဘာသာစကားများသို့ ဘာသာပြန်ဆိုခြင်း၊ မည်သည့်နည်းနှင့်မဆို အသုံးချခြင်း၊ ပြုပြင်ခြင်း၊ ပြန်လည်ပြင်ဆင်ခြင်း မပြုလုပ်ရပါ။ သတင်းအချက်အလက်များကို ထည့်သွင်းခြင်း၊ ဖြစ်ရပ်များသတိပေးခြင်းများ နှင့်\/သို့မဟုတ် ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ရယူခြင်းမက်ဆေ့များ၏ အဓိပ္ပာယ်ကို ပြောင်းလဲခြင်း (များ) မပြုလုပ်ရပါ။\n\nData Feeds သည် သင့်တစ်ဦးတည်း၏ ပိုင်ဆိုင်မှု နှင့်\/သို့မဟုတ် ထိန်းချုပ်မှုအောက်တွင် ရှိကြောင်း သေချာအောင် ပြုလုပ်ရမည်။\n\nသင်သည် နောက်ဆုံးပေါ်အသုံးပြုသူများထံသို့ ပေးပို့သော အဖြစ်အပျက်သတိပေးချက်များ၊ ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ရယူခြင်းမက်ဆေ့များထဲတွင် မည်သည့်ကြော်ငြာများနှင့် စပွန်ဆာမဆို ထည့်သွင်းခွင့်မပြုစေရ။\n\nသင်သည် Data Feeds တစ်ခုလုံးကိုဖြစ်စေ၊ တစ်စိတ်တစ်ပိုင်းအနေဖြင့်ဖြစ်စေ မည်သည့် သိမ်းဆည်းမှုကိုမှ မလုပ်ရပါ။", "contact": "API နှင့်ပတ်သက်သော မည်သည့်မေးခွန်းများကိုမဆို {0} တွင်ကြက်ခြေနီကို ဆက်သွယ်မေးမြန်းပါ။", "disclaimer": "API နှင့် Data Feeds ကို သတင်းအချက်အလက်ပေးရန်နှင့် ပညာပေးရန် ရည်ရွယ်ချက်များအတွက်သာ ပေးစွမ်းထားပြီး \"ရှိသည့်အတိုင်း\" နှင့် \"ရရှိနိုင်သည့်အတိုင်း\" သာ ပေးထားသည်။ ကြက်ခြေနီသည် မည်သို့သော ကိုယ်စားပြုမှု (သို့) အာမခံမှုများကိုမှ ပြုလုပ်ခြင်း၊ ဖော်ပြခြင်း သို့မဟုတ် ရည်ရွယ်ခြင်းမရှိပါ။ ကြက်ခြေနီအနေဖြင့် ကုန်သွယ်နိုင်မှုနှင့် သီးသန့်ရည်ရွယ်ချက်ပါဝင်သော ကြံ့ခိုင်မှုဆိုင်ရာ ရည်ညွှန်းအာမခံချက်များပါဝင်ပြီး ယင်းတို့သာဟု သတ်မှတ်မထားသည့် တိကျစွာဖော်ပြထားသော (သို့မဟုတ်) အဓိပ္ပာယ်သက်ရောက်သော အာမခံများအားလုံးကို ငြင်းဆိုထားသည်။ API အသုံးပြုခြင်း၊ ဒေတာထည့်သွင်းခြင်း (Data Feeds)၊ ဖြစ်ရပ်သတိပေးခြင်းများ၊ ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်း နှင့် ပြန်လည်ထူထောင်ခြင်းမက်ဆေ့ခ်ျများအပါအဝင်နှင့် အခြားသောဝန်ဆောင်မှုများအား အသုံးပြုခြင်းကြောင့် တိုက်ရိုက်၊ သွယ်ဝိုက်၍၊ မတော်တဆ၊ ဒဏ်ပေးခြင်းအဖြစ်၊ အကျိုးဆက်အနေဖြင့် ဖြစ်လာသော ပျက်စီးဆုံးရှုံးမှုများသည် ကြက်ခြေနီနှင့် ၎င်း၏ ဝန်ထမ်းများ၊ အရာရှိများ၊ အုပ်ချုပ်ရေးမှူးများနှင့် အေးဂျင့်များ နှင့် လိုင်စင်ရသူများထံတွင် တာဝန်မရှိပါ။\n\nကြက်ခြေနီသည် API၊ အချက်အလက်ပေးပို့မှု (Data Feeds)၊ ဖြစ်ရပ်သတိပေးမှု၊ ကြိုတင်ပြင်ဆင်ခြင်း၊ ပြန်လည်ထူထောင်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်းမက်ဆေ့ချ်များ၏ အစီအစဉ်များ၊ တိကျမှန်ကန်မှု၊ စစ်မှန်မှု သို့မဟုတ် ပြည့်စုံမှုကို အာမမခံသလို သင် (သို့) အခြားသော နောက်ပိတ်အသုံးပြုသူများ (သို့) အခြားသူများအတွက် ဤနေရာတွင် ပေးပို့ထားသော API၊ အချက်အလက်ပေးပို့မှု၊ ဖြစ်ရပ်သတိပေးမှု၊ ကြိုတင်ပြင်ဆင်ခြင်း၊ ပြန်လည်ထူထောင်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်းမက်ဆေ့များ၏ နောက်ကျမှု၊ မတိကျမှု၊ အမှားများ (သို့) လိုအပ်ချက်များအပါအဝင် အခြားသောကိစ္စများအား တာဝန်ယူမည်မဟုတ်ပါ။", "entire_agreement": { @@ -870,7 +866,7 @@ "heading": "အသုံးပြုသူလိုင်စင်သဘောတူညီချက်ကို API အဆုံးသတ်ထားသည်", "intro": "သဘောတူသည် - ဤဝန်ဆောင်မှုကို အသုံးပြုခြင်း (သို့မဟုတ်) ဤလေးထောင့်ကွက်အား အမှန်ခြစ်ခြင်းအားဖြင့် အသုံးပြုသူသည် ဤသဘောတူညီမှုဖြင့် တွဲနှောင်ခြင်းကို လက်ခံသည်။\n\nAPI သည် သင်ကြက်ခြေနီမှရရှိသော အချက်အလက်ထည့်သွင်းမှုများကို ပြန်လည်ရယူရန်နှင့် အသုံးပြုရန် ကမ္ဘာလုံးဆိုင်ရာ ရာသီဥတုနှင့်သဘာဝဘေးအန္တရာယ်ဆိုင်ရာ ဖြစ်ရပ်သတိပေးချက်များနှင့် စောင့်ကြည့်သတိပေးချက်များ (\"ဖြစ်ရပ်သတိပေးချက်များ) နှင့် ဒေသန္တရဘေးအန္တရာယ်များအတွက် ပြင်ဆင်နိုင်ရန် အန္တရာယ်အမျိုးအစားနှင့် အလျင်လိုမှုတို့အား ပေးထားပြီး (\"သတင်းများကိုပြင်ဆင်ခြင်း၊ တုန့်ပြန်ခြင်း နှင့် ပြန်လည်ထူထောင်ခြင်း” ဖြစ်ရပ်သတိပေးချက်များ (Event Alerts) နှင့်အတူ၊ “ဒေတာထည့်သွင်းခြင်းများ (Data Feeds\") လုပ်ဆောင်နိုင်ပြီး ကျိုးကြောင်းညီညွတ်မှုရှိသော မက်ဆေ့များကို ခွင့်ပြုသည့် ကိရိယာတစ်ခုဖြစ်သည်။ ကြိုတင်ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်းဆိုင်ရာ မက်ဆေ့ခ်ျများကို ဖြစ်စဉ်သတိပေးချက်များ သို့မဟုတ် အခြားသတိပေးချက်များနှင့်အတူ တွဲဖက်ထည့်သွင်းရန် နှင့် သင်၏ကိုယ်ပိုင် အက်ပလီကေးရှင်းရှိ ရာသီဥတု နှင့် သဘာဝဘေးအန္တရာယ်များ နှင့်ဆက်စပ်သော သတိပေးချက်များကို စောင့်ကြည့်ရန် ရည်ရွယ်သည်။ သင်၏အချက်အလက်ထည့်သွင်းမှုကို အသုံးပြုခြင်းကို API သတ်မှတ်ချက်များဖြင့် စီမံသည်။", "license_limitations": { - "body": "သင်သည် ဒေတာထည့်သွင်းမှု (Data Feeds) များကို API သတ်မှတ်ချက်များနှင့်အညီ သင့်ကိုယ်ပိုင် အက်ပလီကေးရှင်းနှင့် ဆက်စပ်၍သာ သုံးနိုင်ပြီး၊ အခါအားလျော်စွာ မွမ်းမံသည့်အတိုင်း API နှင့်သဟဇာတဖြစ်စေရန် ထိန်းသိမ်းပံ့ပိုးရမည်။ API သတ်မှတ်ချက်များအရ သင့်ကိုယ်ပိုင်အက်ပလီကေးရှင်း အသုံးပြုသူများ (\"အသုံးပြုသူများ\") အတွက် အဖြစ်အပျက် သတိပေးချက်များနှင့် အချက်အလက်ထည့်သွင်းမှုများမှ သီးခြားအဖြစ်အပျက် သတိပေးချက်များ၏ အရေးပေါ်ဆက်တင်နှင့်ဆက်စပ်သည့် သက်ဆိုင်ရာ အခြေအနေအလိုက် ကြိုတင်ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်းဆိုင်ရာ မက်ဆေ့ချ်များ ဒေါင်းလုဒ်လုပ်ရန်၊ အသုံးပြုရန်၊ ပြန်လည်ထုတ်လုပ်ရန်နှင့် ဖြန့်ဝေရန်အတွက် သီးသန့်မဟုတ်သော၊ ကန့်သတ်ထားပြီး ပြန်လည်ရုပ်သိမ်းနိုင်သော အခွင့်အရေးကို သင့်အားပေးအပ်သည်။ API သတ်မှတ်ချက်များနှင့်အညီ ထည့်သွင်းထားသော Data Feeds များကို စီးပွားဖြစ်မဟုတ်သော အသုံးပြုခြင်းများ ဖြစ်မြောက်စေရန်အတွက်သာ API ကို သင် အသုံးပြုနိုင်သည်။ ၎င်းတို့ကို ပြန်လည်ရောင်းချခြင်း၊ ၎င်းတို့ကို သုံးစွဲရန်အတွက် အခကြေးငွေယူခြင်း၊ ၎င်းတို့ကို ပြန်လည်ဖြန့်ဝေရန်အတွက် အခကြေးငွေယူခြင်း သို့မဟုတ် ၎င်းတို့အပေါ် အခြေခံပြီး ဆင့်ပွားကူယူဖန်တီးခြင်းအပါအဝင်ဖြစ်ပြီး ၎င်းတို့ချည်းသာဟု ကန့်သတ်မထားသည့် Data Feeds များ၊ အဖြစ်အပျက် သတိပေးချက်များ နှင့်/သို့မဟုတ် ကြိုတင်ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်း မက်ဆေ့ချ်များကို စီးပွားဖြစ် အသုံးပြုခြင်းများ ဖြစ်မြောက်စေရန်အတွက် API ကို သုံးစွဲသည့် မည်သည့်ဖြစ်စဉ်တွင်မျှ မပါဝင်ရပါ။ အောက်တွင် သတ်မှတ်ထားသည့်အတိုင်း API တွင်ရှိသော၊ API အတွက်ဖြစ်သော အားလုံးသော ရပိုင်ခွင့်၊ ပိုင်ဆိုင်မှု၊ အခွင့်အရေးများနှင့် အကျိုးအမြတ်များ၊ ကြိုတင်ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်းမက်ဆေ့ချ်များ၊ အဖြစ်အပျက် သတိပေးချက်များ၊ အချက်အလက် ထည့်သွင်းမှု (Data Feeds) များ၊ ရင်းမြစ်ကိုးကားချက်များနှင့် ဆက်စပ်သမျှကို ကြက်ခြေနီနှင့် ၎င်းအားလိုင်စင်ချပေးသူများက ထိန်းသိမ်းရမည်။ ရှင်းရှင်းလင်းလင်း ပေးအပ်ထားခြင်းမရှိသော မူပိုင်ခွင့်များအားလုံးကို ရယူပြီးဖြစ်သည်။", + "body": "သင်သည် ဒေတာထည့်သွင်းမှု (Data Feeds) များကို API သတ်မှတ်ချက်များနှင့်အညီ သင့်ကိုယ်ပိုင် အက်ပလီကေးရှင်းနှင့် ဆက်စပ်၍သာ သုံးနိုင်ပြီး၊ အခါအားလျော်စွာ မွမ်းမံသည့်အတိုင်း API နှင့်သဟဇာတဖြစ်စေရန် ထိန်းသိမ်းပံ့ပိုးရမည်။ API သတ်မှတ်ချက်များအရ သင့်ကိုယ်ပိုင်အက်ပလီကေးရှင်း အသုံးပြုသူများ (\"အသုံးပြုသူများ\") အတွက် အဖြစ်အပျက် သတိပေးချက်များနှင့် အချက်အလက်ထည့်သွင်းမှုများမှ သီးခြားအဖြစ်အပျက် သတိပေးချက်များ၏ အရေးပေါ်ဆက်တင်နှင့်ဆက်စပ်သည့် သက်ဆိုင်ရာ အခြေအနေအလိုက် ကြိုတင်ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်းဆိုင်ရာ မက်ဆေ့ချ်များ ဒေါင်းလုဒ်လုပ်ရန်၊ အသုံးပြုရန်၊ ပြန်လည်ထုတ်လုပ်ရန်နှင့် ဖြန့်ဝေရန်အတွက် သီးသန့်မဟုတ်သော၊ ကန့်သတ်ထားပြီး ပြန်လည်ရုပ်သိမ်းနိုင်သော အခွင့်အရေးကို သင့်အားပေးအပ်သည်။ API သတ်မှတ်ချက်များနှင့်အညီ ထည့်သွင်းထားသော Data Feeds များကို စီးပွားဖြစ်မဟုတ်သော အသုံးပြုခြင်းများ ဖြစ်မြောက်စေရန်အတွက်သာ API ကို သင် အသုံးပြုနိုင်သည်။ ၎င်းတို့ကို ပြန်လည်ရောင်းချခြင်း၊ ၎င်းတို့ကို သုံးစွဲရန်အတွက် အခကြေးငွေယူခြင်း၊ ၎င်းတို့ကို ပြန်လည်ဖြန့်ဝေရန်အတွက် အခကြေးငွေယူခြင်း သို့မဟုတ် ၎င်းတို့အပေါ် အခြေခံပြီး ဆင့်ပွားကူယူဖန်တီးခြင်းအပါအဝင်ဖြစ်ပြီး ၎င်းတို့ချည်းသာဟု ကန့်သတ်မထားသည့် Data Feeds များ၊ အဖြစ်အပျက် သတိပေးချက်များ နှင့်\/သို့မဟုတ် ကြိုတင်ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်း မက်ဆေ့ချ်များကို စီးပွားဖြစ် အသုံးပြုခြင်းများ ဖြစ်မြောက်စေရန်အတွက် API ကို သုံးစွဲသည့် မည်သည့်ဖြစ်စဉ်တွင်မျှ မပါဝင်ရပါ။ အောက်တွင် သတ်မှတ်ထားသည့်အတိုင်း API တွင်ရှိသော၊ API အတွက်ဖြစ်သော အားလုံးသော ရပိုင်ခွင့်၊ ပိုင်ဆိုင်မှု၊ အခွင့်အရေးများနှင့် အကျိုးအမြတ်များ၊ ကြိုတင်ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်းမက်ဆေ့ချ်များ၊ အဖြစ်အပျက် သတိပေးချက်များ၊ အချက်အလက် ထည့်သွင်းမှု (Data Feeds) များ၊ ရင်းမြစ်ကိုးကားချက်များနှင့် ဆက်စပ်သမျှကို ကြက်ခြေနီနှင့် ၎င်းအားလိုင်စင်ချပေးသူများက ထိန်းသိမ်းရမည်။ ရှင်းရှင်းလင်းလင်း ပေးအပ်ထားခြင်းမရှိသော မူပိုင်ခွင့်များအားလုံးကို ရယူပြီးဖြစ်သည်။", "heading": "လိုင်စင်နှင့် ကန့်သတ်ချက်များ -" }, "overview": { @@ -889,17 +885,17 @@ "two": "စစ်မှန်ကြောင်းအတည်ပြုသည့် နည်းပညာများ အပါအဝင် ကြက်ခြေနီ သို့မဟုတ် API က အသုံးပြုသည့် ကီးများ သို့မဟုတ် လုံခြုံရေးယန္တရားများကို ကျော်လွှားရန် သို့မဟုတ် ပြုပြင်မွမ်းမံရန်။", "three": "သင့်ကိုယ်ပိုင်အကောင့်အတွက် ပေးအပ်ထားသည့်အရာမှအပ ကြက်ခြေနီအတွက် စာရင်းသွင်း (sign-in) အမည်များ၊ စကားဝှက်များ သို့မဟုတ် အခြား စစ်မှန်ကြောင်းအတည်ပြု အထောက်အထားများကို တောင်းခံရန်၊ စုဆောင်းရန်၊ တောင်းဆိုရန် သို့မဟုတ် တနည်းအားဖြင့် ဝင်ရောက်သုံးစွဲခွင့် ရရှိရန်။", "four": "ကြက်ခြေနီ သို့မဟုတ် အခြား ကြက်ခြေနီ သို့မဟုတ် လခြမ်းနီ နိုင်ငံလုံးဆိုင်ရာ အသိုင်းအဝိုင်း သို့မဟုတ် အဖွဲ့အစည်းများ၏ ဆက်နွှယ်မှု၊ ကမကထပြုမှု၊ ထောက်ခံမှုကို ဖော်ပြရန် သို့မဟုတ် ညွှန်းဆိုရန်။", - "five": "API၊ အချက်အလက်ထည့်သွင်းမှု (Data Feeds) များ၊ အဖြစ်အပျက် သတိပေးချက်များ နှင့်/သို့မဟုတ် ကြိုတင်ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်းဆိုင်ရာ မက်ဆေ့ချ်များကို သင်ပိုင်ဆိုင်သည် သို့မဟုတ် ဖန်တီးသည်ဟု ဖော်ပြရန် သို့မဟုတ် ညွှန်းဆိုရန်။", + "five": "API၊ အချက်အလက်ထည့်သွင်းမှု (Data Feeds) များ၊ အဖြစ်အပျက် သတိပေးချက်များ နှင့်\/သို့မဟုတ် ကြိုတင်ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်းဆိုင်ရာ မက်ဆေ့ချ်များကို သင်ပိုင်ဆိုင်သည် သို့မဟုတ် ဖန်တီးသည်ဟု ဖော်ပြရန် သို့မဟုတ် ညွှန်းဆိုရန်။", "six": "ဗိုင်းရပ်စ်များ (viruses)၊ ပိုးကူးစက် ချို့ယွင်းချက်များ (worms defects)၊ ထရိုဂျန်မြင်းများ (Trojan horses) သို့မဟုတ် အဖျက်သဘာဝရှိသည့် မည်သည့် ပစ္စည်းများမဆိုကို ထုတ်လွှတ်ရန်။" } }, - "reserve_rights": "API နှင့် အချက်အလက်ထည့်သွင်းမှုများကို တစ်ခုလုံး သို့မဟုတ် တစ်စိတ်တစ်ပိုင်းကို ယာယီသော်လည်းကောင်း အမြဲတမ်းသော်လည်းကောင်း မည်သည့်အချိန်တွင်မဆို ကြိုတင်အသိပေးခြင်းမရှိဘဲ ပြောင်းလဲရန် နှင့်/သို့မဟုတ် ဆက်လက်ပံ့ပိုးခြင်း မပြုတော့ရန် ကြက်ခြေနီတွင် လုပ်ပိုင်ခွင့်ရှိသည်။ သံသယမဖြစ်စေရန်အလို့ငှာ API သို့မဟုတ် အချက်အလက်ထည့်သွင်းမှုများကို သင် ရရှိနိုင်စေရန် ကြက်ခြေနီကို ဤနေရာတွင် မည်သည်ကမျှ တာဝန်ပေးအပ် မထားပါ၊ ထို့အပြင် ယင်းအား ရယူမှုသည် ကြက်ခြေနီ၏ တစ်ဦးတည်းနှင့် လုံးလုံးလျားလျား ဆုံးဖြတ်ချက်အတွင်းဖြစ်ကြောင်း သင်သဘောတူ အသိအမှတ်ပြုပါသည်။", + "reserve_rights": "API နှင့် အချက်အလက်ထည့်သွင်းမှုများကို တစ်ခုလုံး သို့မဟုတ် တစ်စိတ်တစ်ပိုင်းကို ယာယီသော်လည်းကောင်း အမြဲတမ်းသော်လည်းကောင်း မည်သည့်အချိန်တွင်မဆို ကြိုတင်အသိပေးခြင်းမရှိဘဲ ပြောင်းလဲရန် နှင့်\/သို့မဟုတ် ဆက်လက်ပံ့ပိုးခြင်း မပြုတော့ရန် ကြက်ခြေနီတွင် လုပ်ပိုင်ခွင့်ရှိသည်။ သံသယမဖြစ်စေရန်အလို့ငှာ API သို့မဟုတ် အချက်အလက်ထည့်သွင်းမှုများကို သင် ရရှိနိုင်စေရန် ကြက်ခြေနီကို ဤနေရာတွင် မည်သည်ကမျှ တာဝန်ပေးအပ် မထားပါ၊ ထို့အပြင် ယင်းအား ရယူမှုသည် ကြက်ခြေနီ၏ တစ်ဦးတည်းနှင့် လုံးလုံးလျားလျား ဆုံးဖြတ်ချက်အတွင်းဖြစ်ကြောင်း သင်သဘောတူ အသိအမှတ်ပြုပါသည်။", "severability": { "body": "API သတ်မှတ်ချက်များ၏ မည်သည့်အချက် သို့မဟုတ် ပြဋ္ဌာန်းချက်မဆို၏ တရားမဝင်မှုသည် အခြားမည်သည့် ပြဋ္ဌာန်းချက်မဆို၏ တရားဝင်မှုကိုမျှ ထိခိုက်လိမ့်မည် မဟုတ်ပါ။", "heading": "ခွဲခြမ်းစိတ်ဖြာနိုင်ခြင်းနှင့် ပယ်ချခြင်း -" }, "suspension": { - "body": "API စည်းကမ်းချက်များတွင် ဖော်ပြထားသည့်အတိုင်း သင်သည် API သို့မဟုတ် အချက်အလက်ထည့်သွင်းမှုကို တရားမဝင်သုံးစွဲရာတွင် ပါဝင်ပတ်သက်နေသည် သို့မဟုတ် သင်သည် မည်သည့်ပုဂ္ဂိုလ် သို့မဟုတ် ကြက်ခြေနီကွန်ရက်မဆို၏ ဘေးကင်းရေး နှင့်/သို့မဟုတ် လုံခြုံရေးကို ခြိမ်းခြောက်သည့်/ အပေးအယူလုပ်သည့် လုပ်ဆောင်ချက်များတွင် API သို့မဟုတ် အချက်အလက်ထည့်သွင်းမှုကို အသုံးပြုနေသည်ဟုကြက်ခြေနီက ၎င်း၏တစ်ဦးတည်း ဆုံးဖြတ်ခွင့်ဖြင့် ဆုံးဖြတ်ပါက ကြက်ခြေနီတွင် သင့် ဝင်ရောက်သုံးစွဲမှုကို ဆိုင်းငံ့ခွင့် သို့မဟုတ် ရပ်စဲခွင့်ရှိသည်။", + "body": "API စည်းကမ်းချက်များတွင် ဖော်ပြထားသည့်အတိုင်း သင်သည် API သို့မဟုတ် အချက်အလက်ထည့်သွင်းမှုကို တရားမဝင်သုံးစွဲရာတွင် ပါဝင်ပတ်သက်နေသည် သို့မဟုတ် သင်သည် မည်သည့်ပုဂ္ဂိုလ် သို့မဟုတ် ကြက်ခြေနီကွန်ရက်မဆို၏ ဘေးကင်းရေး နှင့်\/သို့မဟုတ် လုံခြုံရေးကို ခြိမ်းခြောက်သည့်\/ အပေးအယူလုပ်သည့် လုပ်ဆောင်ချက်များတွင် API သို့မဟုတ် အချက်အလက်ထည့်သွင်းမှုကို အသုံးပြုနေသည်ဟုကြက်ခြေနီက ၎င်း၏တစ်ဦးတည်း ဆုံးဖြတ်ခွင့်ဖြင့် ဆုံးဖြတ်ပါက ကြက်ခြေနီတွင် သင့် ဝင်ရောက်သုံးစွဲမှုကို ဆိုင်းငံ့ခွင့် သို့မဟုတ် ရပ်စဲခွင့်ရှိသည်။", "heading": "ဆိုင်းငံ့ခြင်း သို့မဟုတ် ရပ်စဲခြင်း -" } }, diff --git a/resources/lang/ne.json b/resources/lang/ne.json index eeb991f..dff7f76 100644 --- a/resources/lang/ne.json +++ b/resources/lang/ne.json @@ -92,7 +92,7 @@ "response_codes": "जवाफ कोडहरु", "emergency_alert_feed": "आपतकालिन सतर्क फीड", "cap_alert_document": "CAP सतर्क कागजात", - "what_now": "WhatNow/ह्वाटनाउ" + "what_now": "WhatNow\/ह्वाटनाउ" }, "steps": { "one": { @@ -163,12 +163,12 @@ "body": "निम्न अन्त्य बिन्दुहरूले रेड क्रस सोसाइटीहरू द्वारा प्रकाशित संरचित डाटा प्रदान गर्दछ जुनले विभिन्न घटना प्रकारका बेला मद्दत गर्दछ |\n\nप्रत्येक प्रविष्टि प्रकोप व्यवस्थापन को छ चरणहरुको बारेमा जानकारी प्रदान गर्दछ", "endpoint": "अन्तिमबिन्दु:", "example_response": "उदाहरण प्रतिक्रिया:", - "heading": "WhatNow/ह्वाटनाउ", + "heading": "WhatNow\/ह्वाटनाउ", "note": "पुनश्च:", "noteDetails": "{0} सबै प्रतिक्रियाहरु {1} ठुलो अभिभावक चिजको भित्र हुन्छन", "query_params": "कुएरी पारामितेर्स", "response_properties": "प्रतिक्रिया गुणहरू", - "structure": "Whatnow/ह्वाटनाउ वस्तुहरुको संरचना", + "structure": "Whatnow\/ह्वाटनाउ वस्तुहरुको संरचना", "stucture_attribution": "{0} वस्तुको संरचना", "stucture_attribute_translation": "एट्रिब्युसन {0} वस्तुको संरचना", "stucture_translation": " {0} वस्तुको संरचना", @@ -197,15 +197,13 @@ "steps": { "one": { "heading": "पहिलो चरण - साइन अप", - "body": "सुरक्षा सन्देश डेटाबेस API बाट डाटा प्रयोग गर्न सुरु गर्न, सर्वप्रथम सुरक्षा सन्देश डेटाबेस पोर्टलमा {0} गर्नुहोस्।\n\nतपाईंले आफ्नो फेसबुक र गुगल खाताहरू, वा इमेल ठेगाना प्रयोग गरेर खाता बनाउन सक्नुहुन्छ।", - "create_account_alt": "खाता खोल्नुहोस्", + "body": "सुरक्षा सन्देश डेटाबेस API बाट डाटा प्रयोग गर्न सुरु गर्न, सर्वप्रथम सुरक्षा सन्देश डेटाबेस पोर्टलमा {0} गर्नुहोस्।\n\nतपाईंले आफ्नो फेसबुक र गुगल खाताहरू, वा इमेल ठेगाना प्रयोग गरेर खाता बनाउन सक्नुहुन्छ।", "create_account_alt": "खाता खोल्नुहोस्", "existing_account": "पहिले नै खाता छ भने कृपया {0}", "login_cta": "लग इन", "sign_up_cta": "साइन अप" }, "two": { - "body": "API प्रयोग गर्न, तपाईंले सुरक्षा सन्देश डेटाबेस पोर्टलमा एउटा अनुप्रयोग बनाउनुपर्छ। तपाईंले के बनाउँदै हुनुहुन्छ भन्ने बारेमा हामीलाई थोरै बताउनुहोस्।", - "create_app_alt": "आप्प बनाउनुहोस्", + "body": "API प्रयोग गर्न, तपाईंले सुरक्षा सन्देश डेटाबेस पोर्टलमा एउटा अनुप्रयोग बनाउनुपर्छ। तपाईंले के बनाउँदै हुनुहुन्छ भन्ने बारेमा हामीलाई थोरै बताउनुहोस्।", "create_app_alt": "आप्प बनाउनुहोस्", "heading": "दोस्रो चरण -आप्प बनाउनुहोस्" }, "three": { @@ -216,8 +214,7 @@ }, "four": { "api_docs_cta": "ए.पी.आई कागजात", - "body": "सुरक्षा सन्देश डेटाबेस API ले HTTP(S) प्रयोग गर्दछ र प्रकाशित डाटा प्राप्त गर्न RESTful अन्त्यबिन्दुहरू प्रदान गर्दछ।\n\nप्रत्येक अनुरोध अघिल्लो चरणमा बनाइएको API कुञ्जी प्रयोग गरेर प्रमाणित हुनुपर्छ।", - "example_title": "अनुरोधको उदाहरण", + "body": "सुरक्षा सन्देश डेटाबेस API ले HTTP(S) प्रयोग गर्दछ र प्रकाशित डाटा प्राप्त गर्न RESTful अन्त्यबिन्दुहरू प्रदान गर्दछ।\n\nप्रत्येक अनुरोध अघिल्लो चरणमा बनाइएको API कुञ्जी प्रयोग गरेर प्रमाणित हुनुपर्छ।", "example_title": "अनुरोधको उदाहरण", "heading": "चरण ४ - अनुरोध गर्नुहोस", "moreInfo": "सबै ए.पी.आई अन्त्य बिन्दुहरुको थप जानकारीका लागि {0} हेर्नु होस्" } @@ -441,9 +438,9 @@ "immediate": "तत्काल", "warning": "चेतावनी", "anticipated": "अपेक्षित", - "assess_and_plan": "मूल्याङ्कन र योजना", - "mitigate_risks": "जोखिम कम गर्नुहोस्", - "prepare_to_respond": "प्रतिक्रिया दिन तयार हुनुहोस्", + "assess_and_plan":"मूल्याङ्कन र योजना", + "mitigate_risks":"जोखिम कम गर्नुहोस्", + "prepare_to_respond":"प्रतिक्रिया दिन तयार हुनुहोस्", "recover": "पुनर्प्राप्त गर्नुहोस्" }, "content": { @@ -524,9 +521,9 @@ "seasonalForecast": "मौसमी पूर्वानुमान", "seasonalForecast_help": "जोखिम घटाउने छोटो अवधिका कार्यहरु", "seasonalForecast_extra": "मौसमी पूर्वानुमान भनेको जोखिमयुक्त घटनाको अनुमानको तथ्य हो । संभाव्य जोखिमहरुको लेखाजोखा र कार्य योजनाहरु जोखिम न्यूनिकरण गर्न र घरपरिवारलाई सुरक्षित राख्न अपनाईएका कार्यहरु हुन्", - "watch": "घडी/पहरा", + "watch": "घडी\/पहरा", "watch_help": "जवाफ दिन तयार हुनुहोस्", - "watch_extra": "जब खतरनाक घटनाको जोखिम अर्थपुर्ण रुपमा बढ्छ घडि/पहरा जारी गरिन्छ तर यस्को पटक, स्थान र/वा समय अझै अनिश्चित हुन्छ । सुरक्षाको लागि कार्यहरु गर्न र प्रतिकार्य गर्न तयारी गर्ने हेतुले पर्याप्त समय दिइएको हुन्छ", + "watch_extra": "जब खतरनाक घटनाको जोखिम अर्थपुर्ण रुपमा बढ्छ घडि\/पहरा जारी गरिन्छ तर यस्को पटक, स्थान र\/वा समय अझै अनिश्चित हुन्छ । सुरक्षाको लागि कार्यहरु गर्न र प्रतिकार्य गर्न तयारी गर्ने हेतुले पर्याप्त समय दिइएको हुन्छ", "warning": "चेतावनि", "warning_help": "जवाफ दिन तयार हुनुहोस्", "warning_extra": "जब खतरनाक घटना हुन लागिरहेको हुन्छ, हुनेवाला छ वा हुने धेरै संभावना हुन्छ तब चेतावनी जारी गरिएको हुन्छ यस्को मतलब त्यस्तो अवस्थाले कुनै पनि जीवन वा सम्पत्तिमा हानि पुर्याउने भएमा यो जोखिमको बाटोमा रहेका मानिसहरुले सुरक्षित कार्यहरु अपनाउनु आवश्यक हुन्छ", @@ -541,7 +538,7 @@ "mitigate_risks": "जोखिम कम गर्नुहोस्", "prepare_to_respond": "प्रतिक्रिया दिन तयार हुनुहोस्", "updated": "अध्यावधिक गरिएको", - "download_icon": "आईकन/संकेत डाउनलोड गर्नुहोस", + "download_icon": "आईकन\/संकेत डाउनलोड गर्नुहोस", "download_image": "ईमेजको रुपमा डाउनलोड गर्नुहोस", "download_image_error": "ईमेज डाउनलोड गर्दा खराबी, कृपया पक्का गर्नुहोस् कि परिवर्तित कुराहरु प्रकासित भई सकेका छन् र फेरि कोशिस गर्नुहोस", "download_instructions": " सेभ गर्न दाँया बटन थिच्नुहोस र छनौट गर्नुहोस 'Save image as....'", @@ -558,8 +555,7 @@ "content_edit_title": "सामग्री सम्पादन", "content_add_hazard_title": "खतरा थप्नुहोस्", "key_message_label": "मुख्य सन्देश शीर्षक", - "supporting_message_label": "समर्थन सन्देश", - "mitigate_risk": "जोखिम कम गर्नुहोस्" + "supporting_message_label": "समर्थन सन्देश" }, "message_editor": { "title": "एट्रिब्युशन सम्पादक", @@ -591,7 +587,7 @@ "updated": "अध्यावधिक गरिएको", "failed": "सफल भएन", "invalid": " अस्विकार्य", - "row": "लाईन/हरफ" + "row": "लाईन\/हरफ" }, "upload_csv": "कागजात CVS ढाँचामा अपलोड गर्नुहोस", "language_instructions": "यहाँ तपाईँले आयात गर्नुभएको कागजातको अनुवाद गरिएको भाषा चयन गर्नुहोस् ।", @@ -600,13 +596,12 @@ "submit": "बिषयवस्तु आयात गर्नुहोस", "reset": "अर्को अपलोड गर्नुहोस", "export_template_guide": "टेम्प्लेट निर्देशिका निर्यात गर्नुहोस", - "export_template_instructions": "यस g फाइल अपलोड टेम्प्लेट प्रभावकारी रूपमा कसरी प्रयोग गर्ने भन्ने बारे निर्देशनहरूको लागि, कृपया यो गाइड हेर्नुहोस्।", - "refer": "लाई सन्दर्भ गर्नुहोस्", + "export_template_instructions": "यस g फाइल अपलोड टेम्प्लेट प्रभावकारी रूपमा कसरी प्रयोग गर्ने भन्ने बारे निर्देशनहरूको लागि, कृपया यो गाइड हेर्नुहोस्।", "refer": "लाई सन्दर्भ गर्नुहोस्", "detail": "विस्तृत निर्देशनहरूको लागि", "warnings": { "title": "यदि कुनै विषयवस्तु को सबैभन्दा नँया संस्करण मा अधिलेखन गरिएको छ भने आयात अस्विकार गर्नुहोला", - "on": "हुन्छ/हो", - "off": "हुदैन/होईन" + "on": "हुन्छ\/हो", + "off": "हुदैन\/होईन" }, "overwriting": { "title": "अधिलेखन व्यबस्था (सेटिङ्ग)", @@ -619,8 +614,8 @@ "bad_request_error_codes": { "30001": "स्तम्भ शिर्षक टेम्प्लेट संग मेल खादैन", "30002": "विशेषताको नाम, सन्देश र URL हराईरहेका छन्", - "30003": "अस्विकार्य विशेषता url - कृपया मुलपत्र प्रस्तुत छ भन्ने सुनिश्चित गर्नुहोस, उदाहरण https://", - "40001": "अस्विकार्य कन्ट्रि कोड राखिएको छ /कन्ट्रि कोड मिलेन", + "30003": "अस्विकार्य विशेषता url - कृपया मुलपत्र प्रस्तुत छ भन्ने सुनिश्चित गर्नुहोस, उदाहरण https:\/\/", + "40001": "अस्विकार्य कन्ट्रि कोड राखिएको छ \/कन्ट्रि कोड मिलेन", "40002": "छनौट गरिएको सोसाइटीछनौट गरिएको फाईलको समाजसंग मेल खादैन", "40003": "छनौट गरेर निर्यात गरिएको फाईलको मिति बिग्रिएको छ र आयात पुरा हुन सकेन" } @@ -690,7 +685,7 @@ }, "landing": { "strapline": "सुरक्षा सन्देश डेटाबेस सेवा", - "strapline_part_2": "ग्लोबल रेड क्रस/रेड क्रेसेन्टका मुख्य सुरक्षा सन्देशहरु", + "strapline_part_2": "ग्लोबल रेड क्रस\/रेड क्रेसेन्टका मुख्य सुरक्षा सन्देशहरु", "head_1": "IFRC सुरक्षा", "head_2": "सन्देश डेटाबेस", "head_text_1": "IFRC सार्वजनिक जागरूकता र आधारित सुरक्षा सन्देशहरू", @@ -730,27 +725,27 @@ "impact": "प्रभाव", "sign_up_today": "आज साइन अप गर्नुहोस्", "developer": { - "strap_para_one": "हाम्रो स्थानीयकृत मुख्य कार्य सन्देशहरु द्वारा समुदायलाई जोखिम/खतरामा तयार हुन, प्रतिकार गर्न र पुनःप्राप्ति गर्न मद्दत गर्दछ", + "strap_para_one": "हाम्रो स्थानीयकृत मुख्य कार्य सन्देशहरु द्वारा समुदायलाई जोखिम\/खतरामा तयार हुन, प्रतिकार गर्न र पुनःप्राप्ति गर्न मद्दत गर्दछ", "strap_para_two": "तपाईंको अनुप्रयोगमा सुरक्षा सन्देशहरू एकीकृत गर्न हाम्रो सजिलो चार-चरण गाइड प्रयोग गर्नुहोस्। साइन अप गर्नुहोस् र सबै उपलब्ध सन्देशहरू हेर्नुहोस्।" }, "national_society": { "strap_para_one": "तपाईको आरसिआरसि (RCRC) राष्ट्रिय समाजका मुख्य सुरक्षा संदेशहरु विश्वब्यापी, राष्ट्रिय, र स्थानिय संचारको पहुँच तथा प्रशारको लागि प्रकाशित गर्नुहोस", "strap_para_two": "कसरी संदेशहरु सृजना गर्ने र संचार सझेदारहरु संग सम्बन्ध बढाउने भन्ने बारेमा अझै सिक्न चाहनु हुन्छ भने हामीलाई सम्पर्क गर्नुहोस्।" }, - "strap_para_one": "हाम्रो स्थानीयकृत मुख्य कार्य सन्देशहरु द्वारा समुदायलाई जोखिम/खतरामा तयार हुन, प्रतिकार गर्न र पुनःप्राप्ति गर्न मद्दत गर्दछ", + "strap_para_one": "हाम्रो स्थानीयकृत मुख्य कार्य सन्देशहरु द्वारा समुदायलाई जोखिम\/खतरामा तयार हुन, प्रतिकार गर्न र पुनःप्राप्ति गर्न मद्दत गर्दछ", "strap_para_two": "तपाईंको अनुप्रयोगमा सुरक्षा सन्देशहरू एकीकृत गर्न हाम्रो सजिलो चार-चरण गाइड प्रयोग गर्नुहोस्। साइन अप गर्नुहोस् र सबै उपलब्ध सन्देशहरू हेर्नुहोस्।", - "view_data": "विवरणहरू/तथ्याङ्कहरु हेर्नुहोस्", + "view_data": "विवरणहरू\/तथ्याङ्कहरु हेर्नुहोस्", "view_message_library": "सुरक्षा सन्देशहरू हेर्नुहोस्", "what_now": " ह्वाट्नाउ (WhatNow)?", "fake_alert_heading": "अत्यन्त चिसो चेतावनी", "fake_alert_description": "Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est.", "fake_alert_time": "एक घण्टा अगाडि", - "fake_alert_time_exact": "०५/०२/१८ मा ०५ः१५ CT", + "fake_alert_time_exact": "०५\/०२\/१८ मा ०५ः१५ CT", "use_cases": { "heading": "अझै सिक्नुस", "first_heading": "यसले कसरी काम गर्छ", "first_content": "per ho dolaro frakcistreko, kuo drumo eksterna reprezenti ro hav us singularo propozicio posta", - "second_heading": "प्रसंग/ कथाहरु प्रयोग गर्नुहोस", + "second_heading": "प्रसंग\/ कथाहरु प्रयोग गर्नुहोस", "second_content": "per ho dolaro frakcistreko, kuo drumo eksterna reprezenti ro hav us singularo propozicio posta", "third_heading": "कार्यान्वयन उपकरणहरु", "third_content": "per ho dolaro frakcistreko, kuo drumo eksterna reprezenti ro hav us singularo propozicio posta", @@ -842,10 +837,10 @@ "industries": { "media": "मिडिया", "emergency": "विपद् व्यवस्थापन", - "non_profit": "गैर-नाफामूलक / गैसस", + "non_profit": "गैर-नाफामूलक \/ गैसस", "humanitarian": "मानवतावादी संस्था", - "red_cross": "रेडक्रस/रेड क्रिसेन्ट", - "education": "शिक्षा/प्राज्ञ", + "red_cross": "रेडक्रस\/रेड क्रिसेन्ट", + "education": "शिक्षा\/प्राज्ञ", "gov": "सरकारी निकाय", "other": "अन्य" }, @@ -870,7 +865,7 @@ "heading": "अनुप्रोयग अन्तिम प्रयोगकर्ता अनुज्ञापत्र सम्झौता", "intro": "सहमतः यस सेवाको प्रयोग गरेर वा दिइएको कोष्ठकमा चिह्न लगाएर प्रयोगकर्ता यो सम्झौतासँग अनुब्धित हुने छन्।\n\nयो अनुप्रयोग एउटा औजार हो जसले तपाईं (\"तपाईँ\") लाई रेड क्रसले उपलब्ध गराएको वैश्विक मौसम तथा विपद् घटना चेतावनी र सूचना (\"घटना चेतावनी\") तथा जोखिमको प्रकार र आकस्मिकताका आधारमा स्थानिय जोखिमका लागि कार्यान्वयनयोग्य तथा सान्दर्भिक सन्देशको सङ्गालो (\"तयारी, प्रतिक्रिया र पुनःप्राप्ति सन्देश\") प्राप्ति गर्न दिन्छ। तयारी, प्रतिकृया, र पुनःप्राप्तिका सन्देशहरु तपाईको एप्लिकेशनमा घटनाका सुचना र अन्य मौसम तथा प्रकोपको खतराको संकेतसंगै आउनका लागि हो । तपाईले गर्ने डाटा फिडको प्रयोग एपीआई का सर्तहरु अनुसार हुन्छन् ।", "license_limitations": { - "body": "तपाईं डाटा फिडहरू प्रयोग गर्न सक्नुहुनेछ तपाईंको आफ्नै एप्लिकेसनको साथ एपीआई सर्तहरूको विषयको रूपमा, र तपाईंले समय-समयमा अपडेट गरिए अनुसार एपीआईसँग अनुकूलता कायम राख्नुहुनेछ। तपाईंलाई एपिआईका सर्तहरूमा रहेर प्रत्येक घटनाका सूचनाहरूको हतारो सेटिङ्गसँग सम्बन्धित घटनाका सूचनाहरू तथा परिस्थिति अनुसारको तयारी, प्रतिकृया, र पुनःप्राप्तिका सन्देशहरू डाउनलोड, प्रयोग, पुनःउत्पादन र तपाईंको आफ्नै एप्लिकेशनका प्रयोगकर्ताहरू (\"अन्तिम प्रयोगकर्ता\") मा वितरण गर्न, एकाधिकार नभएको, सिमित र फिर्ता लिन सकिने अधिकार दिइएको छ । एपिआईका सर्तहरू अनुसार डाटा फिडको गैर-व्यवसायिक प्रयोगकको सहजिकरण गर्नका लागि मात्र तपाईंले यो एपिआई प्रयोग गर्न सक्नुहुन्छ । कुनै पनि परिस्थतिमा डाटा फिड, घटनाको सूचना र/वा तयारी, प्रतिकृया, तथा पुनःप्राप्तिका सन्देशहरूको, सिमितता बिना पुनःबिक्री गर्न, तथा प्रयोग गर्न, पुनः वितरण गर्न वा तिनीहरू जस्तै सामग्री बनाउनका लागि रकम असुली गर्न समेत, व्यवसायिक प्रयोगको सहजिकरण गर्न तपाईंले एपिआईको प्रयोग गर्न पाउनु हुन्न । एपिआई, तयारी, प्रतिकृया र पुनःप्राप्तिका सन्देश, घटनाको सूचना, डाटा फिडहरू तथा सन्दर्भ सामग्रीहरू (तल व्याख्या गरिएअनुसारको) माथिको सम्पूर्ण शीर्षक, स्वमित्व, अधिकार तथा चासो रेड क्रस तथा उनका अनुमतिदातामा निहित छ । स्पष्ट रूपमा प्रदान नगरिएका सबै अधिकारहरू सुरक्षित छन्।", + "body": "तपाईं डाटा फिडहरू प्रयोग गर्न सक्नुहुनेछ तपाईंको आफ्नै एप्लिकेसनको साथ एपीआई सर्तहरूको विषयको रूपमा, र तपाईंले समय-समयमा अपडेट गरिए अनुसार एपीआईसँग अनुकूलता कायम राख्नुहुनेछ। तपाईंलाई एपिआईका सर्तहरूमा रहेर प्रत्येक घटनाका सूचनाहरूको हतारो सेटिङ्गसँग सम्बन्धित घटनाका सूचनाहरू तथा परिस्थिति अनुसारको तयारी, प्रतिकृया, र पुनःप्राप्तिका सन्देशहरू डाउनलोड, प्रयोग, पुनःउत्पादन र तपाईंको आफ्नै एप्लिकेशनका प्रयोगकर्ताहरू (\"अन्तिम प्रयोगकर्ता\") मा वितरण गर्न, एकाधिकार नभएको, सिमित र फिर्ता लिन सकिने अधिकार दिइएको छ । एपिआईका सर्तहरू अनुसार डाटा फिडको गैर-व्यवसायिक प्रयोगकको सहजिकरण गर्नका लागि मात्र तपाईंले यो एपिआई प्रयोग गर्न सक्नुहुन्छ । कुनै पनि परिस्थतिमा डाटा फिड, घटनाको सूचना र\/वा तयारी, प्रतिकृया, तथा पुनःप्राप्तिका सन्देशहरूको, सिमितता बिना पुनःबिक्री गर्न, तथा प्रयोग गर्न, पुनः वितरण गर्न वा तिनीहरू जस्तै सामग्री बनाउनका लागि रकम असुली गर्न समेत, व्यवसायिक प्रयोगको सहजिकरण गर्न तपाईंले एपिआईको प्रयोग गर्न पाउनु हुन्न । एपिआई, तयारी, प्रतिकृया र पुनःप्राप्तिका सन्देश, घटनाको सूचना, डाटा फिडहरू तथा सन्दर्भ सामग्रीहरू (तल व्याख्या गरिएअनुसारको) माथिको सम्पूर्ण शीर्षक, स्वमित्व, अधिकार तथा चासो रेड क्रस तथा उनका अनुमतिदातामा निहित छ । स्पष्ट रूपमा प्रदान नगरिएका सबै अधिकारहरू सुरक्षित छन्।", "heading": "इजाजतपत्र र सीमाहरू:" }, "overview": { @@ -889,17 +884,17 @@ "two": "रेड क्रस वा एपीआई द्वारा नियोजित कुनै कुञ्जीहरू वा सुरक्षा संयन्त्रहरूको सर्भेन्ट वा परिमार्जन गर्न, कुनै प्रमाणीकरण टेक्नोलोजी बिना सीमितता सहित।", "three": "अनुरोध गर्न, संकलन गर्न, अनुरोध गर्न वा अन्यथा रेड क्रसको लागि साइन-इन नाम, पासवर्ड वा अन्य प्रमाणीकरण प्रमाणिकरणहरूको पहुँच प्राप्त गर्न तपाईंको आफ्नो खाताको लागि तपाईंलाई प्रदान गरिएको भन्दा बाहेक।", "four": "रेडक्रस वा अन्य कुनै रेड क्रस वा रेड क्रिसेन्ट राष्ट्रिय सोसाइटीवा संगठनद्वारा राज्य वा सम्बद्धता, प्रायोजन वा समर्थन गर्न।", - "five": "बताउन वा संकेत दिनको लागि कि तपाईंले एपीआई, डाटा फिडहरू, घटना चेतावनीहरू र / वा तयारी, प्रतिक्रिया, र सन्देशहरू रिकभरीको स्वामित्व वा सृजना गर्नुभयो।", + "five": "बताउन वा संकेत दिनको लागि कि तपाईंले एपीआई, डाटा फिडहरू, घटना चेतावनीहरू र \/ वा तयारी, प्रतिक्रिया, र सन्देशहरू रिकभरीको स्वामित्व वा सृजना गर्नुभयो।", "six": "कुनै पनि भाइरस, हानिकारक सफ्टवेयर, ट्रोजन हर्स, वा विनाशकारी प्रकृति को कुनै सामग्री प्रसारण गर्न।" } }, - "reserve_rights": "रेड क्रसले परिवर्तनको अधिकार आरक्षित गर्दछ र / वा अब एपीआई र डाटा फिडहरू पूरै वा आंशिक रूपमा प्रदान गर्दछ, अस्थायी वा स्थायी रूपमा कुनै पनि समयमा पूर्वसूचना बिना। शंकाको रोकथामको लागि, यसमा केही पनि रेड क्रसलाई यसको एपीआई वा डाटा फिडहरू उपलब्ध गराउन बाध्य पार्दैन र तपाईं सहमत हुनुहुन्छ र स्वीकार गर्नुहुन्छ कि कुनै पनि पहुँच रेड क्रसको मात्रै र पूर्ण विवेकभित्र छ।", + "reserve_rights": "रेड क्रसले परिवर्तनको अधिकार आरक्षित गर्दछ र \/ वा अब एपीआई र डाटा फिडहरू पूरै वा आंशिक रूपमा प्रदान गर्दछ, अस्थायी वा स्थायी रूपमा कुनै पनि समयमा पूर्वसूचना बिना। शंकाको रोकथामको लागि, यसमा केही पनि रेड क्रसलाई यसको एपीआई वा डाटा फिडहरू उपलब्ध गराउन बाध्य पार्दैन र तपाईं सहमत हुनुहुन्छ र स्वीकार गर्नुहुन्छ कि कुनै पनि पहुँच रेड क्रसको मात्रै र पूर्ण विवेकभित्र छ।", "severability": { "body": "कुनै पनि सर्त वा एपीआई सर्तहरूको प्रावधानको अमान्यताले अन्य कुनै प्रावधानको वैधतालाई असर गर्दैन ।", "heading": "बाध्यकारिता र छुट:" }, "suspension": { - "body": "यदि यसले आफ्नो विवेक अनुसार तपाईं एपीआई सर्तमा उल्लेख गरिएको वा एपीआई वा डेटा फिड प्रयोग गरिरहनु भएको रूपमा एपीआई वा डाटा फिडको अनधिकृत प्रयोगमा,वा कुनै पनि त्यस्तो गतिविधिमा संलग्न हुनुहुन्छ जसले कुनै व्यक्ति वा रेड क्रस नेटवर्कको सुरक्षा र / वा सुरक्षालाई खतरामा / सम्झौता गर्दछ भन्ने ठान्छ भने रेड क्रसले तपाई‌को पहुँचलाई निलम्बन गर्ने वा समाप्त गर्ने अधिकार सुरक्षित राख्दछ ।", + "body": "यदि यसले आफ्नो विवेक अनुसार तपाईं एपीआई सर्तमा उल्लेख गरिएको वा एपीआई वा डेटा फिड प्रयोग गरिरहनु भएको रूपमा एपीआई वा डाटा फिडको अनधिकृत प्रयोगमा,वा कुनै पनि त्यस्तो गतिविधिमा संलग्न हुनुहुन्छ जसले कुनै व्यक्ति वा रेड क्रस नेटवर्कको सुरक्षा र \/ वा सुरक्षालाई खतरामा \/ सम्झौता गर्दछ भन्ने ठान्छ भने रेड क्रसले तपाई‌को पहुँचलाई निलम्बन गर्ने वा समाप्त गर्ने अधिकार सुरक्षित राख्दछ ।", "heading": "निलम्बन वा समाप्ति:" } }, diff --git a/resources/lang/pt.json b/resources/lang/pt.json index 49a1858..792961c 100644 --- a/resources/lang/pt.json +++ b/resources/lang/pt.json @@ -441,9 +441,9 @@ "immediate": "Imediata", "warning": "Aviso", "anticipated": "Antecipado", - "assess_and_plan": "Avaliar e Planejar", - "mitigate_risks": "Mitigar Risco", - "prepare_to_respond": "Preparar para responder", + "assess_and_plan":"Avaliar e Planejar", + "mitigate_risks":"Mitigar Risco", + "prepare_to_respond":"Preparar para responder", "recover": "Recuperar" }, "content": { @@ -526,7 +526,7 @@ "seasonalForecast_extra": "Uma previsão sazonal é uma declaração de previsão de um incidente desastroso. As ações são tomadas para avaliar potenciais riscos e planificar atividades para reduzir o risco e para proteger as habitações.", "watch": "Vigilância", "watch_help": "Preparar para responder", - "watch_extra": "É emitida a vigilância quando o risco de um incidente desastroso aumenta significativamente, mas a sua ocorrência, localização e/ou momento ainda são incertos. É suposto dar tempo suficiente para ações de proteção e preparação para reagir.", + "watch_extra": "É emitida a vigilância quando o risco de um incidente desastroso aumenta significativamente, mas a sua ocorrência, localização e\/ou momento ainda são incertos. É suposto dar tempo suficiente para ações de proteção e preparação para reagir.", "warning": "Aviso", "warning_help": "Preparar para responder", "warning_extra": "Um aviso é emitido quando um incidente desastroso está a ocorrer, está iminente ou tem uma grande probabilidade de ocorrer. Isso significa condições que são uma ameaça à vida ou propriedade. As pessoas na trajetória deste perigo precisam de tomar precauções.", @@ -558,8 +558,7 @@ "content_edit_title": "Edição de Conteúdo", "content_add_hazard_title": "Adicionar Desastre", "key_message_label": "Título da mensagem principal", - "supporting_message_label": "Mensagem de apoio", - "mitigate_risk": "Mitigar Risco" + "supporting_message_label": "Mensagem de apoio" }, "message_editor": { "title": "Editor de Atribuição", @@ -619,7 +618,7 @@ "bad_request_error_codes": { "30001": "Os cabeçalhos das colunas não correspondem ao modelo", "30002": "Falta o nome da atribuição, mensagem ou url", - "30003": "URL de atribuição inválido - por favor assegure-se de que o protocolo está presente, e.g. https: //", + "30003": "URL de atribuição inválido - por favor assegure-se de que o protocolo está presente, e.g. https: \/\/", "40001": "Código de país fornecido inválido", "40002": "A sociedade selecionada não corresponde à sociedade do ficheiro selecionado", "40003": "A data em que o ficheiro selecionado foi exportado foi deformada e a importação não pode ser concluída" @@ -690,7 +689,7 @@ }, "landing": { "strapline": "Serviço de base de dados de mensagens de segurança", - "strapline_part_2": "Mensagens Principais de Segurança da Cruz Vermelha Internacional / Crescente Vermelho", + "strapline_part_2": "Mensagens Principais de Segurança da Cruz Vermelha Internacional \/ Crescente Vermelho", "head_1": "Segurança da FICV", "head_2": "Base de dados de mensagens", "head_text_1": "Mensagens de segurança baseadas na sensibilização do público e na", @@ -842,10 +841,10 @@ "industries": { "media": "Meios de Comunicação", "emergency": "Gestão de Emergências", - "non_profit": "Sem fins lucrativos/ONG", + "non_profit": "Sem fins lucrativos\/ONG", "humanitarian": "Organização Humanitária", - "red_cross": "Cruz Vermelha/Crescente Vermelho", - "education": "Educação/Académica", + "red_cross": "Cruz Vermelha\/Crescente Vermelho", + "education": "Educação\/Académica", "gov": "Agência Governamental", "other": "Outros" }, @@ -860,9 +859,9 @@ "body": "As leis do Distrito de Colúmbia regerão todos os direitos e obrigações ao abrigo deste Acordo, sem dar efeito a quaisquer princípios de conflitos de leis.", "heading": "Lei Aplicável:" }, - "body": "O Utilizador é responsável por manter o segredo e a segurança da chave de registo que lhe foi fornecida pela Cruz Vermelha. É responsável por manter a compatibilidade com a API, tal como atualizado de tempos a tempos, a fim de continuar a receber os Data Feeds. A Cruz Vermelha pode lançar versões atualizadas da API e dos Data Feeds a seu exclusivo critério. As novas versões podem não ser compatíveis com implementações anteriores, e O Utilizador concorda em utilizar a versão atualizada mais recente dos Data Feeds em qualquer altura.\n\nO Utilizador concorda em não modificar, distribuir, descompilar, desmontar, ou fazer engenharia inversa de qualquer parte da API ou de qualquer software da Cruz Vermelha.\n\nO Utilizador não poderá utilizar a API ou Data Feeds de uma forma que exceda o volume razoável do pedido ou que constitua uma utilização excessiva ou abusiva, conforme determinado pela Cruz Vermelha ao seu exclusivo critério.\n\nO Utilizador não poderá utilizar a API ou Data Feeds de forma ilegal, enganosa, negligente, maliciosa, com intenção de causar danos, ou que prejudique a Cruz Vermelha, os seus fornecedores de serviços, os seus fornecedores de conteúdos, ou qualquer outra pessoa, conforme determinado pela Cruz Vermelha ao seu exclusivo critério.\n\nA Cruz Vermelha pode monitorizar a sua utilização da API e dos Data Feeds. O Utilizador não pode utilizar quaisquer meios técnicos para interferir com tal monitorização, e a Cruz Vermelha pode utilizar meios técnicos para ultrapassar qualquer interferência deste tipo.\n\nA utilização de Mensagens de Preparação, Resposta e Recuperação será apresentada apenas como atual ou atualizada à configuração de urgência então vigente do Alerta de Evento correlacionado, e o Utilizador deverá atualizar Mensagens individuais de Preparação, Resposta e Recuperação após qualquer atualização dos Data Feeds e/ou Alertas de Evento correlacionados pela Cruz Vermelha.\n\nAs Mensagens de Preparação, Resposta e Recuperação Individuais que utiliza devem ser associadas apenas à região geográfica para a qual são emitidas. Se uma Mensagem de Preparação, Resposta e Recuperação incluir uma referência a uma fonte como a Cruz Vermelha Americana ou outra sociedade ou organização nacional da Cruz Vermelha ou do Crescente Vermelho (cada uma delas uma \"Referência de Fonte\"), o Utilizador deve incluir a Referência de Fonte associada a cada Mensagem de Preparação, Resposta e Recuperação no formulário fornecido nos Data Feeds. O Utilizador não deverá fazer mais uso de qualquer Referência de Fonte.\n\nO Utilizador não pode traduzir os Data Feeds, Alertas de Eventos e/ou Mensagens de Preparação, Resposta e Recuperação para qualquer outra língua, fazer qualquer uso, edição ou revisão, ou alterar o significado dos Data Feeds, Alertas de Eventos e/ou Mensagens de Preparação, Resposta e Recuperação.\n\nO Utilizador deve assegurar-se de que os Data Feeds permanecem na sua posse e/ou controlo exclusivo.\n\nO Utilizador não pode permitir que Alertas de Eventos e Mensagens de Preparação, Resposta e Recuperação entregues a Utilizadores Finais incorporem qualquer publicidade ou patrocínio.\n\nO Utilizador não pode ficar com qualquer arquivo ou Data Feeds no todo ou em parte.", + "body": "O Utilizador é responsável por manter o segredo e a segurança da chave de registo que lhe foi fornecida pela Cruz Vermelha. É responsável por manter a compatibilidade com a API, tal como atualizado de tempos a tempos, a fim de continuar a receber os Data Feeds. A Cruz Vermelha pode lançar versões atualizadas da API e dos Data Feeds a seu exclusivo critério. As novas versões podem não ser compatíveis com implementações anteriores, e O Utilizador concorda em utilizar a versão atualizada mais recente dos Data Feeds em qualquer altura.\n\nO Utilizador concorda em não modificar, distribuir, descompilar, desmontar, ou fazer engenharia inversa de qualquer parte da API ou de qualquer software da Cruz Vermelha.\n\nO Utilizador não poderá utilizar a API ou Data Feeds de uma forma que exceda o volume razoável do pedido ou que constitua uma utilização excessiva ou abusiva, conforme determinado pela Cruz Vermelha ao seu exclusivo critério.\n\nO Utilizador não poderá utilizar a API ou Data Feeds de forma ilegal, enganosa, negligente, maliciosa, com intenção de causar danos, ou que prejudique a Cruz Vermelha, os seus fornecedores de serviços, os seus fornecedores de conteúdos, ou qualquer outra pessoa, conforme determinado pela Cruz Vermelha ao seu exclusivo critério.\n\nA Cruz Vermelha pode monitorizar a sua utilização da API e dos Data Feeds. O Utilizador não pode utilizar quaisquer meios técnicos para interferir com tal monitorização, e a Cruz Vermelha pode utilizar meios técnicos para ultrapassar qualquer interferência deste tipo.\n\nA utilização de Mensagens de Preparação, Resposta e Recuperação será apresentada apenas como atual ou atualizada à configuração de urgência então vigente do Alerta de Evento correlacionado, e o Utilizador deverá atualizar Mensagens individuais de Preparação, Resposta e Recuperação após qualquer atualização dos Data Feeds e\/ou Alertas de Evento correlacionados pela Cruz Vermelha.\n\nAs Mensagens de Preparação, Resposta e Recuperação Individuais que utiliza devem ser associadas apenas à região geográfica para a qual são emitidas. Se uma Mensagem de Preparação, Resposta e Recuperação incluir uma referência a uma fonte como a Cruz Vermelha Americana ou outra sociedade ou organização nacional da Cruz Vermelha ou do Crescente Vermelho (cada uma delas uma \"Referência de Fonte\"), o Utilizador deve incluir a Referência de Fonte associada a cada Mensagem de Preparação, Resposta e Recuperação no formulário fornecido nos Data Feeds. O Utilizador não deverá fazer mais uso de qualquer Referência de Fonte.\n\nO Utilizador não pode traduzir os Data Feeds, Alertas de Eventos e\/ou Mensagens de Preparação, Resposta e Recuperação para qualquer outra língua, fazer qualquer uso, edição ou revisão, ou alterar o significado dos Data Feeds, Alertas de Eventos e\/ou Mensagens de Preparação, Resposta e Recuperação.\n\nO Utilizador deve assegurar-se de que os Data Feeds permanecem na sua posse e\/ou controlo exclusivo.\n\nO Utilizador não pode permitir que Alertas de Eventos e Mensagens de Preparação, Resposta e Recuperação entregues a Utilizadores Finais incorporem qualquer publicidade ou patrocínio.\n\nO Utilizador não pode ficar com qualquer arquivo ou Data Feeds no todo ou em parte.", "contact": "Por favor contacte a Cruz Vermelha em {0} com quaisquer questões sobre a API.", - "disclaimer": "A API e os Data Feeds são fornecidos APENAS PARA FINS INFORMATIVOS E EDUCACIONAIS E numa base de \"no estado em que se encontram\" ou \"conforme disponíveis\". A Cruz Vermelha não faz representações ou garantias expressas ou implícitas de nenhum género. A Cruz Vermelha nega todas as garantias, expressas ou implícitas, incluindo mas não limitando-se a garantias de comercialização e de adequação para nenhum fim em particular. A Cruz Vermelha e os seus colaboradores, oficiais, governadores e agentes e licenciadores não serão responsáveis por nenhuma forma de dano resultante do uso da API, Data Feeds, Alertas de Eventos e/ou Mensagens de Preparação, Resposta e Recuperação, incluindo mas não limitando-se a danos diretos, indiretos, incidentais, punitivos e consequentes.\n\nA Cruz Vermelha não garante a ordem, precisão, autenticidade ou a integralidade da API, Data Feeds, Alertas de Eventos e/ou Mensagens de Preparação, Resposta e Recuperação e não será considerada responsável de nenhuma forma quanto ao Utilizador ou os seus Utilizadores Finais ou a terceiros, incluindo mas não limitando-se a quaisquer atrasos, imprecisões, erros ou omissões quanto à API, Data Feeds, Alertas de Eventos e/ou Mensagens de Preparação, Resposta e Recuperação fornecidas a seguir.", + "disclaimer": "A API e os Data Feeds são fornecidos APENAS PARA FINS INFORMATIVOS E EDUCACIONAIS E numa base de \"no estado em que se encontram\" ou \"conforme disponíveis\". A Cruz Vermelha não faz representações ou garantias expressas ou implícitas de nenhum género. A Cruz Vermelha nega todas as garantias, expressas ou implícitas, incluindo mas não limitando-se a garantias de comercialização e de adequação para nenhum fim em particular. A Cruz Vermelha e os seus colaboradores, oficiais, governadores e agentes e licenciadores não serão responsáveis por nenhuma forma de dano resultante do uso da API, Data Feeds, Alertas de Eventos e\/ou Mensagens de Preparação, Resposta e Recuperação, incluindo mas não limitando-se a danos diretos, indiretos, incidentais, punitivos e consequentes.\n\nA Cruz Vermelha não garante a ordem, precisão, autenticidade ou a integralidade da API, Data Feeds, Alertas de Eventos e\/ou Mensagens de Preparação, Resposta e Recuperação e não será considerada responsável de nenhuma forma quanto ao Utilizador ou os seus Utilizadores Finais ou a terceiros, incluindo mas não limitando-se a quaisquer atrasos, imprecisões, erros ou omissões quanto à API, Data Feeds, Alertas de Eventos e\/ou Mensagens de Preparação, Resposta e Recuperação fornecidas a seguir.", "entire_agreement": { "body": "Os Termos da API constituem o acordo completo e exclusivo entre a Cruz Vermelha e o Utilizador com respeito ao presente assunto e substitui todos os acordos orais ou escritos, comunicações ou contratos precedentes não incorporados aqui especificamente. A Cruz Vermelha reserva o direito de modificar ou revogar este acordo a qualquer momento.", "heading": "Contrato Integral:" @@ -870,7 +869,7 @@ "heading": "CONTRATO DE LICENCIAMENTO DE USUÁRIO FINAL DA API", "intro": "ACEITAR: ATRAVÉS DO USO DO SERVIÇO OU DA MARCAÇÃO DA CAIXA APRESENTADA, O USUÁRIO ESTÁ A CONCORDAR COM O QUE É ESTABELECIDO NESTE CONTRATO.\n\nA API é uma ferramenta que te permite (\"O Usuário\") recolher e usar data feeds disponibilizados pela Cruz Vermelha, incluindo um feed meteorológico de notificações de aviso e vigilância de eventos de desastre global (\"Alertas de Eventos\") e um feed de mensagens úteis e contextuais sobre como se preparar para desastres locais de acordo com o tipo e urgência do desastre (\"Mensagens de Preparação, Resposta e Recuperação\", juntamente aos Alertas de Eventos e os \"Data Feeds\"). As Mensagens de Preparação, Resposta e Recuperação têm como objetivo acompanhar os Alertas de Eventos e outras notificações de aviso e vigilância associadas a eventos de desastre na sua própria aplicação. O uso dos Data Feeds pelo Usuário é regulado pelos Termos da API.", "license_limitations": { - "body": "O Utilizador pode usar os Data Feeds apenas em associação com a sua aplicação sujeita aos Termos da API e desde que O Usuário mantenha a compatibilidade com a API, de acordo com as atualizações periódicas. É garantido ao Usuário um direito não-exclusivo, limitado e revogável para descarregar, usar, reproduzir e distribuir para usuários finais da sua própria aplicação (\"Usuários Finais\") Alertas de Eventos e Mensagens de Preparação, Resposta e Recuperação relevantes e contextuais em associação com a configuração de urgência de Alertas de Evento individuais dos Data Feeds, sujeito aos Termos da API. O Usuário pode apenas utilizar a API para usos não comerciais dos Data Feeds de acordo com os Termos da API. O Usuário não pode, a nenhum momento, utilizar a API para meios comerciais dos Data Feeds, Alertas de Eventos e/ou Mensagens de Preparação, Resposta e Recuperação, incluindo mas não limitando-se a revenda, cobrar o seu acesso, cobrar para os redistribuir ou cobrar para criar trabalhos derivados com base neles. A Cruz Vermelha e os seus licenciadores preservam todos os títulos, propriedade, direitos e garantias e interesses da API, Mensagens de Preparação, Resposta e Recuperação, Alertas de Eventos, Data Feeds e Fontes de Referência (como definidas abaixo). Todos os direitos não concedidos expressamente estão reservados.", + "body": "O Utilizador pode usar os Data Feeds apenas em associação com a sua aplicação sujeita aos Termos da API e desde que O Usuário mantenha a compatibilidade com a API, de acordo com as atualizações periódicas. É garantido ao Usuário um direito não-exclusivo, limitado e revogável para descarregar, usar, reproduzir e distribuir para usuários finais da sua própria aplicação (\"Usuários Finais\") Alertas de Eventos e Mensagens de Preparação, Resposta e Recuperação relevantes e contextuais em associação com a configuração de urgência de Alertas de Evento individuais dos Data Feeds, sujeito aos Termos da API. O Usuário pode apenas utilizar a API para usos não comerciais dos Data Feeds de acordo com os Termos da API. O Usuário não pode, a nenhum momento, utilizar a API para meios comerciais dos Data Feeds, Alertas de Eventos e\/ou Mensagens de Preparação, Resposta e Recuperação, incluindo mas não limitando-se a revenda, cobrar o seu acesso, cobrar para os redistribuir ou cobrar para criar trabalhos derivados com base neles. A Cruz Vermelha e os seus licenciadores preservam todos os títulos, propriedade, direitos e garantias e interesses da API, Mensagens de Preparação, Resposta e Recuperação, Alertas de Eventos, Data Feeds e Fontes de Referência (como definidas abaixo). Todos os direitos não concedidos expressamente estão reservados.", "heading": "Licença e Limitações:" }, "overview": { @@ -893,13 +892,13 @@ "six": "Transmitir quaisquer vírus, vermes, cavalos de Troia ou quaisquer itens de natureza destrutiva." } }, - "reserve_rights": "A Cruz Vermelha reserva o direito de alterar e/ou parar de fornecer a API e os Data Feeds na sua totalidade ou em parte, provisoriamente ou permanentemente, a qualquer momento e sem aviso prévio. A fim de evitar incertezas, nada aqui presente obriga a Cruz Vermelha a tornar a API e Data Feeds disponíveis para O Usuário e O Usuário concorda e reconhece que qualquer acesso está ao critério exclusivo e absoluto da Cruz Vermelha.", + "reserve_rights": "A Cruz Vermelha reserva o direito de alterar e\/ou parar de fornecer a API e os Data Feeds na sua totalidade ou em parte, provisoriamente ou permanentemente, a qualquer momento e sem aviso prévio. A fim de evitar incertezas, nada aqui presente obriga a Cruz Vermelha a tornar a API e Data Feeds disponíveis para O Usuário e O Usuário concorda e reconhece que qualquer acesso está ao critério exclusivo e absoluto da Cruz Vermelha.", "severability": { "body": "A invalidade ou ilegalidade de qualquer disposição deste documento não deverá afetar a validade de qualquer outra disposição.", "heading": "Disjunção e Renúncia:" }, "suspension": { - "body": "A Cruz Vermelha reserva o direito de suspender ou cancelar o acesso do Usuário se a Cruz Vermelha determinar, a seu exclusivo critério, que O Usuário está envolvido na utilização não autorizada da API ou do Data Feed como descrito nos Termos da API ou que O Usuário está a utilizar a API ou o Data Feed em qualquer atividade que ameaça/põe em risco a segurança e/ou proteção de qualquer pessoa ou das redes da Cruz Vermelha.", + "body": "A Cruz Vermelha reserva o direito de suspender ou cancelar o acesso do Usuário se a Cruz Vermelha determinar, a seu exclusivo critério, que O Usuário está envolvido na utilização não autorizada da API ou do Data Feed como descrito nos Termos da API ou que O Usuário está a utilizar a API ou o Data Feed em qualquer atividade que ameaça\/põe em risco a segurança e\/ou proteção de qualquer pessoa ou das redes da Cruz Vermelha.", "heading": "Suspensão e Cancelamento:" } }, @@ -959,7 +958,7 @@ "email_subject": "Requerer um novo tipo de desastre", "hazard_name": "Nome do desastre", "hazard_name_placeholder": "Introduza o nome do desastre", - "upload_icon": "Carregar/Adicionar imagem", + "upload_icon": "Carregar\/Adicionar imagem", "icon_requirements": "Imagens devem estar em formato .png e terem um tamanho abaixo de 30kb", "requestLink": "Contactar o CGPD para requerer um novo tipo de desastre", "success": "Tipo de desastre criado", diff --git a/resources/lang/ru.json b/resources/lang/ru.json index 2bdad49..7866f9e 100644 --- a/resources/lang/ru.json +++ b/resources/lang/ru.json @@ -441,9 +441,9 @@ "immediate": "Немедленно", "warning": "Предупреждение", "anticipated": "Ожидаемый", - "assess_and_plan": "Оценить и спланировать", - "mitigate_risks": "Смягчить риск", - "prepare_to_respond": "Подготовиться к реагированию", + "assess_and_plan":"Оценить и спланировать", + "mitigate_risks":"Смягчить риск", + "prepare_to_respond":"Подготовиться к реагированию", "recover": "Восстановиться" }, "content": { @@ -526,7 +526,7 @@ "seasonalForecast_extra": "Сезонный прогноз является утвердительным предсказанием опасного события. Принимаемые меры состоят из оценки потенциальных рисков и планировании действий по снижению рисков и защите семьи.", "watch": "Сигнал «Внимание!»", "watch_help": "Подготовьтесь к мерам реагирования", - "watch_extra": "Сигнал «Внимание!» передается когда риск опасного события значительно возрос, но его возникновение, место и / или время все еще не определены. Это дает достаточно времени для действий по защите и подготовке к реагированию.", + "watch_extra": "Сигнал «Внимание!» передается когда риск опасного события значительно возрос, но его возникновение, место и \/ или время все еще не определены. Это дает достаточно времени для действий по защите и подготовке к реагированию.", "warning": "Сигнал «Опасность!»", "warning_help": "Подготовьтесь к мерам реагирования", "warning_extra": "Сигнал «Опасность!» передается когда опасное событие происходит, является неизбежным, или имеет очень высокую вероятность возникновения. Это означает, что условия угрожают жизни или имуществу. Людям, находящимся в зоне действия данной опасности необходимо принимать защитные меры.", @@ -558,8 +558,7 @@ "content_edit_title": "Редактирование контента", "content_add_hazard_title": "Добавить опасность", "key_message_label": "Заголовок ключевого сообщения", - "supporting_message_label": "Вспомогательное сообщение", - "mitigate_risk": "Смягчить риск" + "supporting_message_label": "Вспомогательное сообщение" }, "message_editor": { "title": "Редактор атрибуции", @@ -619,7 +618,7 @@ "bad_request_error_codes": { "30001": "Заголовки столбцов не соответствуют шаблону", "30002": "Название атрибуции, сообщение или url отсутствуют", - "30003": "Недействительный url-адрес атрибуции - убедитесь, что прописан протокол, например https: //", + "30003": "Недействительный url-адрес атрибуции - убедитесь, что прописан протокол, например https: \/\/", "40001": "Недействительный код страны", "40002": "Выбранное общество не соответствует обществу для выбранного файла", "40003": "Дата экспорта выбранного файла неверна, и импорт не может быть завершен" @@ -690,7 +689,7 @@ }, "landing": { "strapline": "Служба базы данных сообщений по безопасности", - "strapline_part_2": "Основные сообщения Международного Красного Креста / Красного Полумесяца по безопасности", + "strapline_part_2": "Основные сообщения Международного Красного Креста \/ Красного Полумесяца по безопасности", "head_1": "Безопасность МФОККиКП", "head_2": "База данных сообщений", "head_text_1": "Сообщения о безопасности, основанные на принципах информирования общественности МФОККиКП и", @@ -786,7 +785,7 @@ }, "data_preview": { "heading": "Сообщения о безопасности", - "sub_heading": "Зарегистрируйтесь и просмотрите основные сообщения о действиях национальных обществ Красного Креста / Красного Полумесяца по всему миру" + "sub_heading": "Зарегистрируйтесь и просмотрите основные сообщения о действиях национальных обществ Красного Креста \/ Красного Полумесяца по всему миру" }, "footer": { "terms_conditions": "Положения и условия", @@ -842,10 +841,10 @@ "industries": { "media": "СМИ", "emergency": "Управление в чрезвычайных ситуациях", - "non_profit": "Некоммерческая / НГО", + "non_profit": "Некоммерческая \/ НГО", "humanitarian": "Гуманитарная организация", - "red_cross": "Красный крест/ красный полумесяц", - "education": "Образование / Академия", + "red_cross": "Красный крест\/ красный полумесяц", + "education": "Образование \/ Академия", "gov": "Федеральное агентство", "other": "Другие" }, @@ -860,9 +859,9 @@ "body": "Законы Округа Колумбия будут регулировать все положения и условия по настоящему Соглашению без применения каких-либо принципов коллизионного права.", "heading": "Применимое право:" }, - "body": "Вы несете ответственность за сохранность своего пароля и регистрационного ключа, предоставленного Красным Крестом. Вы несете ответственность за поддержание совместимости с API, который время от времени обновляется для дальнейшего принятия потоков данных. Красный Крест может выпускать обновленные версии API и потоков данных по своему усмотрению. Новые версии могут быть несовместимы с предыдущими, и вы соглашаетесь всегда использовать самую последнюю обновленную версию потоков данных.\n\nВы обязуетесь не модифицировать, не распространять, не декомпилировать, не демонтировать или не подвергать обратному проектированию любую часть API или иное программное обеспечение Красного Креста.\n\nВы не имеете права использовать API или каналы данных способом, который превышает разумный объем запросов или представляет собой чрезмерное или неправомерное использование по усмотрению Красного Креста.\n\nВы не имеете права использовать API или потоки данных незаконным, вводящим в заблуждение, небрежным, злонамеренным образом, с целью причинения вреда или ущерба Красному Кресту, его подрядчикам, поставщикам контента или любому другому лицу по усмотрению Красного Креста.\n\nКрасный Крест имеет право контролировать использование вами API и потоков данных. Вы не имеете права применять какие-либо технические средства, чтобы помешать такому мониторингу, и Красный Крест может использовать технические средства для преодоления любого такого вмешательства.\n\nСообщения в рамках подготовки, реагирования и восстановления должны быть актуальными или обновленными с учетом текущей настройки срочности оповещения о событии, и вы должны обновлять отдельные сообщения в рамках подготовки, реагирования и восстановления после каждого обновления потоков данных и/или связанных оповещений о событиях Красного Креста.\n\nОтдельные сообщения в рамках подготовки, реагирования и восстановления должны быть привязаны к географическому региону, для которого они были созданы. Если сообщения в рамках подготовки, реагирования и восстановления содержат ссылку на источник, такой как Американский Красный Крест или другое национальное общество или организацию Красного Креста или Красного Полумесяца (далее по отдельности именуются «Ссылка на источник»), вы обязаны включать ссылку на источник, связанный с каждым сообщением в рамках подготовки, реагирования и восстановления в форме, указанной в потоках данных. Вы не имеете права иным образом использовать ссылки на источники.\n\nВы не имеете права переводить потоки данных, оповещения о событиях и/или сообщения в рамках подготовки, реагирования и восстановления на любой другой язык, использовать, редактировать или исправлять, или изменять значение потока данных, оповещений о событиях и/или сообщений в рамках подготовки, реагирования и восстановления.\n\nВы должны убедиться, что потоки данных остаются в вашем личном доступе и/или под вашим контролем.\n\nВы не имеете права давать разрешение на включение рекламы и спонсорской информации в оповещения о событиях и сообщения в рамках подготовки, реагирования и восстановления, отправляемые конечным пользователям.\n\nВы не имеете права создавать архивы потоков данных, а также их части.", + "body": "Вы несете ответственность за сохранность своего пароля и регистрационного ключа, предоставленного Красным Крестом. Вы несете ответственность за поддержание совместимости с API, который время от времени обновляется для дальнейшего принятия потоков данных. Красный Крест может выпускать обновленные версии API и потоков данных по своему усмотрению. Новые версии могут быть несовместимы с предыдущими, и вы соглашаетесь всегда использовать самую последнюю обновленную версию потоков данных.\n\nВы обязуетесь не модифицировать, не распространять, не декомпилировать, не демонтировать или не подвергать обратному проектированию любую часть API или иное программное обеспечение Красного Креста.\n\nВы не имеете права использовать API или каналы данных способом, который превышает разумный объем запросов или представляет собой чрезмерное или неправомерное использование по усмотрению Красного Креста.\n\nВы не имеете права использовать API или потоки данных незаконным, вводящим в заблуждение, небрежным, злонамеренным образом, с целью причинения вреда или ущерба Красному Кресту, его подрядчикам, поставщикам контента или любому другому лицу по усмотрению Красного Креста.\n\nКрасный Крест имеет право контролировать использование вами API и потоков данных. Вы не имеете права применять какие-либо технические средства, чтобы помешать такому мониторингу, и Красный Крест может использовать технические средства для преодоления любого такого вмешательства.\n\nСообщения в рамках подготовки, реагирования и восстановления должны быть актуальными или обновленными с учетом текущей настройки срочности оповещения о событии, и вы должны обновлять отдельные сообщения в рамках подготовки, реагирования и восстановления после каждого обновления потоков данных и\/или связанных оповещений о событиях Красного Креста.\n\nОтдельные сообщения в рамках подготовки, реагирования и восстановления должны быть привязаны к географическому региону, для которого они были созданы. Если сообщения в рамках подготовки, реагирования и восстановления содержат ссылку на источник, такой как Американский Красный Крест или другое национальное общество или организацию Красного Креста или Красного Полумесяца (далее по отдельности именуются «Ссылка на источник»), вы обязаны включать ссылку на источник, связанный с каждым сообщением в рамках подготовки, реагирования и восстановления в форме, указанной в потоках данных. Вы не имеете права иным образом использовать ссылки на источники.\n\nВы не имеете права переводить потоки данных, оповещения о событиях и\/или сообщения в рамках подготовки, реагирования и восстановления на любой другой язык, использовать, редактировать или исправлять, или изменять значение потока данных, оповещений о событиях и\/или сообщений в рамках подготовки, реагирования и восстановления.\n\nВы должны убедиться, что потоки данных остаются в вашем личном доступе и\/или под вашим контролем.\n\nВы не имеете права давать разрешение на включение рекламы и спонсорской информации в оповещения о событиях и сообщения в рамках подготовки, реагирования и восстановления, отправляемые конечным пользователям.\n\nВы не имеете права создавать архивы потоков данных, а также их части.", "contact": "По всем вопросам, касающимся API, просим обращаться в Красный Крест: {0}.", - "disclaimer": "API и потоки данных предоставляются ТОЛЬКО ДЛЯ ИНФОРМАЦИОННЫХ И ОБРАЗОВАТЕЛЬНЫХ ЦЕЛЕЙ И на условиях «как есть» и «по факту». Красный Крест не делает никаких заявлений или гарантий любого рода, явных или подразумеваемых. Красный Крест отказывается от всех гарантий, явных или подразумеваемых, включая подразумеваемые гарантии товарной пригодности и соответствия определенной цели. Красный Крест и его сотрудники, должностные лица, управляющие, агенты и лицензиары не несут ответственности за ущерб любого рода, возникший в результате использования API, потоков данных, оповещений о событиях и/или сообщений в рамках подготовки, реагирования и восстановления, включая прямые, косвенные, случайные, штрафные и косвенные убытки.\n\nКрасный Крест не гарантирует последовательность, точность, подлинность или полноту API, потока данных, оповещений о событиях и/или сообщений о подготовке, реагировании и восстановления и не несет ответственности перед вами, вашими конечными пользователями или третьими лицами, включая любые задержки, неточности, ошибки или упущения в отношении API, потоков данных, оповещений о событиях и/или сообщений в рамках подготовки, реагирования и восстановления, указанных в настоящем документе.", + "disclaimer": "API и потоки данных предоставляются ТОЛЬКО ДЛЯ ИНФОРМАЦИОННЫХ И ОБРАЗОВАТЕЛЬНЫХ ЦЕЛЕЙ И на условиях «как есть» и «по факту». Красный Крест не делает никаких заявлений или гарантий любого рода, явных или подразумеваемых. Красный Крест отказывается от всех гарантий, явных или подразумеваемых, включая подразумеваемые гарантии товарной пригодности и соответствия определенной цели. Красный Крест и его сотрудники, должностные лица, управляющие, агенты и лицензиары не несут ответственности за ущерб любого рода, возникший в результате использования API, потоков данных, оповещений о событиях и\/или сообщений в рамках подготовки, реагирования и восстановления, включая прямые, косвенные, случайные, штрафные и косвенные убытки.\n\nКрасный Крест не гарантирует последовательность, точность, подлинность или полноту API, потока данных, оповещений о событиях и\/или сообщений о подготовке, реагировании и восстановления и не несет ответственности перед вами, вашими конечными пользователями или третьими лицами, включая любые задержки, неточности, ошибки или упущения в отношении API, потоков данных, оповещений о событиях и\/или сообщений в рамках подготовки, реагирования и восстановления, указанных в настоящем документе.", "entire_agreement": { "body": "Условия использования API представляют собой полное и исключительное соглашение между Красным Крестом и вами в отношении предмета настоящего Соглашения и заменяют собой все предыдущие устные или письменные договоренности, сообщения или соглашения, не включенные в настоящий документ. Красный Крест оставляет за собой право изменить или отозвать это соглашение в любое время.", "heading": "Исчерпывающий характер Соглашения:" @@ -870,7 +869,7 @@ "heading": "ЛИЦЕНЗИОННОЕ СОГЛАШЕНИЕ С КОНЕЧНЫМ ПОЛЬЗОВАТЕЛЕМ API", "intro": "СОГЛАСИЕ: ИСПОЛЬЗУЯ УСЛУГУ ИЛИ ПРОВЕРЯЯ ПРЕДОСТАВЛЕННЫЙ ЯЩИК, ПОЛЬЗОВАТЕЛЬ ОБЯЗУЕТСЯ СОБЛЮДАТЬ УСЛОВИЯ НАСТОЯЩЕГО СОГЛАШЕНИЯ.\n\nAPI - это инструмент, который позволяет вам (далее - «вы») получать и использовать потоки данных, предоставленные Красным Крестом, включая поток глобальных предупреждений о погоде и стихийных бедствиях, а также уведомления о наблюдениях (далее - «Оповещения о событиях») и поток действенных и контекстных сообщений о порядке подготовки к локальным угрозам с учетом вида опасности и срочности (далее - «Сообщения в рамках подготовки, реагирования и восстановления»; в совокупности с оповещениями о событиях - «Потоки данных»). Сообщения в рамках подготовки, реагирования и восстановления предназначены для дополнения Оповещений о событиях или других предупреждений и отслеживания уведомлений, связанных с погодой и стихийными бедствиями, в вашем собственном приложении. Использование Потоков данных регулируется Условиями использования API.", "license_limitations": { - "body": "Вы можете использовать Поток данных только в своем собственном приложении, руководствуясь Условиями использования API, а также при соблюдении своевременного обновления, чтобы обеспечить совместимость с API. Вам гарантируется неисключительное, ограниченное и подлежащее отзыву право загружать, использовать, воспроизводить и распространять среди конечных пользователей вашего собственного приложения (далее - «Конечные пользователи») Оповещения о событиях и соответствующие контексту Сообщения подготовки, реагирования и восстановления в сочетании с настройками срочности каждого Оповещения о событии в Потоке данных, согласно Условиям использования API. Вы можете использовать API только для содействия некоммерческому использованию Потоку данных в соответствии с Условиями использования API. Вы ни в коем случае не можете применять API для содействия коммерческому использованию Потоку данных, Оповещений о событиях и/или Сообщений в рамках подготовки, реагирования и восстановления, включая, без ограничений, перепродажу, взимание платы за доступ к ним, взимание платы за повторное распространение или взимание платы за создание производных разработок на их основе. Организация Красный Крест и ее лицензиары сохраняют за собой права наименования и собственности, а также все права и интересы, связанные с API, а также с Сообщениями в рамках подготовки, реагирования и восстановления, Оповещениями о событиях, Потоками данных и Ссылками на источники (как определяется ниже) в рамках приложения. Все права, не предоставленные пользователям на основании настоящего документа, защищены.", + "body": "Вы можете использовать Поток данных только в своем собственном приложении, руководствуясь Условиями использования API, а также при соблюдении своевременного обновления, чтобы обеспечить совместимость с API. Вам гарантируется неисключительное, ограниченное и подлежащее отзыву право загружать, использовать, воспроизводить и распространять среди конечных пользователей вашего собственного приложения (далее - «Конечные пользователи») Оповещения о событиях и соответствующие контексту Сообщения подготовки, реагирования и восстановления в сочетании с настройками срочности каждого Оповещения о событии в Потоке данных, согласно Условиям использования API. Вы можете использовать API только для содействия некоммерческому использованию Потоку данных в соответствии с Условиями использования API. Вы ни в коем случае не можете применять API для содействия коммерческому использованию Потоку данных, Оповещений о событиях и\/или Сообщений в рамках подготовки, реагирования и восстановления, включая, без ограничений, перепродажу, взимание платы за доступ к ним, взимание платы за повторное распространение или взимание платы за создание производных разработок на их основе. Организация Красный Крест и ее лицензиары сохраняют за собой права наименования и собственности, а также все права и интересы, связанные с API, а также с Сообщениями в рамках подготовки, реагирования и восстановления, Оповещениями о событиях, Потоками данных и Ссылками на источники (как определяется ниже) в рамках приложения. Все права, не предоставленные пользователям на основании настоящего документа, защищены.", "heading": "Лицензия и ограничения:" }, "overview": { @@ -889,11 +888,11 @@ "two": "Обход или изменение любых ключей или механизмов безопасности, используемых Красным Крестом или API, в том числе, без ограничений, любых технологий аутентификации.", "three": "Запрос, сбор, вымогание или получение любым другим способом доступа к зарегистрированным именам, паролям или другим учетным данным для входа в систему Красного Креста, кроме тех, что предоставляются вам для вашего собственного аккаунта.", "four": "Заявлять или подразумевать принадлежность, спонсорство или одобрение со стороны Красного Креста или любого другого национального общества или организации Красного Креста либо Красного Полумесяца.", - "five": "Заявлять или подразумевать, что вы являетесь владельцем или создателем API, Потока данных, Оповещений о событиях и/или Сообщений в рамках подготовки, реагирования и восстановления.", + "five": "Заявлять или подразумевать, что вы являетесь владельцем или создателем API, Потока данных, Оповещений о событиях и\/или Сообщений в рамках подготовки, реагирования и восстановления.", "six": "Передача любых вирусов, сетевых червей, троянских программ и любых других вредоносных элементов." } }, - "reserve_rights": "Красный Крест оставляет за собой право изменить и/или перестать предоставлять доступ к API и Потоку данных полностью или частично, в любое время без уведомления. Во избежание сомнений, ничто, указанное здесь, не обязывает Красный Крест предоставлять вам доступ к API или Потоку данных, и вы согласны и осознаете, что любой доступ к данным услугам находится на единоличном и абсолютном усмотрении Красного Креста.", + "reserve_rights": "Красный Крест оставляет за собой право изменить и\/или перестать предоставлять доступ к API и Потоку данных полностью или частично, в любое время без уведомления. Во избежание сомнений, ничто, указанное здесь, не обязывает Красный Крест предоставлять вам доступ к API или Потоку данных, и вы согласны и осознаете, что любой доступ к данным услугам находится на единоличном и абсолютном усмотрении Красного Креста.", "severability": { "body": "Недействительность любого из условий или положений в настоящем списке Условий использования API не нарушает действительности остальных положений.", "heading": "Автономность положений и отказ от прав:" diff --git a/resources/lang/rw.json b/resources/lang/rw.json index c23a144..00c81ac 100644 --- a/resources/lang/rw.json +++ b/resources/lang/rw.json @@ -441,9 +441,9 @@ "immediate": "Ako kanya", "warning": "Iburira", "anticipated": "Byitezwe", - "assess_and_plan": "Gusesengura no Gushyira mu bikorwa gahunda", - "mitigate_risks": "Gukumira Ingaruka mbi", - "prepare_to_respond": "Itegure guhangana n'ibiza", + "assess_and_plan":"Gusesengura no Gushyira mu bikorwa gahunda", + "mitigate_risks":"Gukumira Ingaruka mbi", + "prepare_to_respond":"Itegure guhangana n'ibiza", "recover": "Gukira" }, "content": { @@ -558,8 +558,7 @@ "content_edit_title": "Guhindura Ibirimo", "content_add_hazard_title": "Ongeraho Ikiza", "key_message_label": "Ubutumwa bw'ingenzi", - "supporting_message_label": "Ubutumwa bushyigikira", - "mitigate_risk": "Gabanya ibyago" + "supporting_message_label": "Ubutumwa bushyigikira" }, "message_editor": { "title": "Umuhinduzi w'Ibitekerezo", @@ -619,7 +618,7 @@ "bad_request_error_codes": { "30001": "Imitwengaruka y'inkingi ntabwo ihura n'inyandikorugero", "30002": "Amazina bijyanye, ubutumwa cyangwa url ntibihari", - "30003": "Url bijyanye si yo; reba neza niba porotokore ihari, urug.: https://", + "30003": "Url bijyanye si yo; reba neza niba porotokore ihari, urug.: https:\/\/", "40001": "Hatanzwe kode y'igihugu itari yo", "40002": "Ishyirahamwe ryatoranyijwe ntabwo rihura n'ishyirahamwe rya dosiye yatoranyijwe", "40003": "Itariki dosiye yatoranyijwe yasohoreweho yanditse nabi kandi kuyizana ntibishobora kurangira" @@ -690,7 +689,7 @@ }, "landing": { "strapline": "Serivisi y'Ububiko bw'Ubutumwa bwo Kwirinda", - "strapline_part_2": "Ubutumwa bw'umutekano wa Global Red Cross / Red Crescent", + "strapline_part_2": "Ubutumwa bw'umutekano wa Global Red Cross \/ Red Crescent", "head_1": "IFRC Kwirinda", "head_2": "Ububiko bw'amakuru y'ubutumwa", "head_text_1": "Ubutumwa bwo kwirinda bushingiye ku IFRC Kumenyesha Abaturage no", @@ -745,7 +744,7 @@ "fake_alert_heading": "Imbuzi y'ubukonje bukabije", "fake_alert_description": "Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est.", "fake_alert_time": "HASHIZE ISAHA 1", - "fake_alert_time_exact": "05/02/18 saa 05:15 CT", + "fake_alert_time_exact": "05\/02\/18 saa 05:15 CT", "use_cases": { "heading": "Menya ibindi", "first_heading": "Uburyo bikora", @@ -786,7 +785,7 @@ }, "data_preview": { "heading": "Ubutumwa bwo Kwirinda", - "sub_heading": "Iyandikishe unarebe ubutumwa bw'amasosiyete ya Kuruwa Ruje/Kuruwasa Ruje ku isi hose" + "sub_heading": "Iyandikishe unarebe ubutumwa bw'amasosiyete ya Kuruwa Ruje\/Kuruwasa Ruje ku isi hose" }, "footer": { "terms_conditions": "Amategeko n'amabwiriza", @@ -842,10 +841,10 @@ "industries": { "media": "Itangazamakuru", "emergency": "Igenzurwa ry'ibiza", - "non_profit": "Umuryango udaharanira inyungu/utegamiye kuri leta", + "non_profit": "Umuryango udaharanira inyungu\/utegamiye kuri leta", "humanitarian": "Umuryango wita ku kiremwamuntu", - "red_cross": "Kuruwa Ruje/Kuruwasa Ruje", - "education": "Uburezi/Amashuli", + "red_cross": "Kuruwa Ruje\/Kuruwasa Ruje", + "education": "Uburezi\/Amashuli", "gov": "Ikigo cya Leta", "other": "Ibindi" }, @@ -870,7 +869,7 @@ "heading": "ISOZWA RY'AMASEZERANO K'URUHUSA RWO GUKORESHA API", "intro": "EMERA: MUGKORESHA IYI SERIVISE CYANGWA KUREBA MUGASANDUGU BAGUHAYE, UMUKORESHA YEMERA KUBA AFATANYE NAYA MASEZERANO.\n\nAPI ni igikoresho kigufasha ( Wowe) mukubona no gukoresha amakuru mashya ahari ya Kuruwa Ruje harimo namakuru y'ikirere n'ibiza bimenyeshwa no gukurikira amabwiriza (Amamenyesha y’Ibikorwa) amakuru y'ibikorwa by'ubutumwa bwanditse kuburyo bwo gutegura kubishobora gutera impanuka, ibyihutirwa ( Itegurwa, Isubizwa n’Igarurabutumwa, byose hamwe n'Amamenyesha y’Ibikorwa,n'Ikigega cy’amakuru). Itegurwa, Isubizwa n'Igarurabutumwa biteganyijwe guherekeza Amamenyesha y'Ibikorwa cyangwa indi mburira ndetse n'ibyitonderwa bigaragara bifitanye isano n'ibyerekeye ikirere n'ibiza muri porogaramu yawe y'ubusabe. Ikoreshwa ry'ikigega cy'amakuru yawe rigengwa n'amahame ya API.", "license_limitations": { - "body": "Ushobora gukoresha ikigega cy'amakuru gusa mu gihe bihuye n'impamvu y'ubusabe bwawe ku mahame ya API, bikanaguha guhama mu bijyanye na API nk'uko byakomeje kugenda bivugururwa. Wizejwe uburenganzira bwo gukura ibyo ushaka ku rubuga, nta guhezwa, kubuzwa cyangwa guhagarikwa, ukabikoresha, ukabibyaza umusaruro ndetse ukabisakaza ku bakoresha porogaramu yawe y'ubusabe (\"Abakoresha porogaramu ba nyuma\") ku Bikorwa by'Imenyesha bifitanye isano n'inyandiko zanditswe zitegura, zigasubiza zikanagarura ubutumwa, bigahura n'igenamiterere ryihuta y'ibikorwa bya muntu biburira bituruka mu makuru, bijyanye n'amahame ya API. Ushobora gukoresha API mu gufasha ku mpamvu zitari iz'ubucuruzi, bijyanye n'amahame ya API. Ntabwo wemerewe gukoresha API mu gufasha mu ikoreshwa ry'ikigega cy'amakuru mu buryo bwo gucuruza, Amamenyesha y'ibikorwa ndetse/cyangwa Itegurwa, Isubizwa n'Igarurabutumwa, harimo nta rutangira, kongera kugurisha amakuru, gusaba ikiguzi abayakoresha n'abayakwirakwiza cyangwa guca ikiguzi kuri gahunda yo kuyabyaza umusaruro. Kuruwa Ruje n'abatanga uburenganzira babungabunga umutwe wose, ubu nyirubwite, uburenganzira n'inyungu muri no kuri API, Itegurwa, Isubizwa n'Igarurabutumwa, Amamenyesha y'ibikorwa, Ikigega cy'amakuru n'inkomoko y'amakuru (nkuko byasobanuwe hasi). Uburenganzira bwose butagaragajwe burashinganye.", + "body": "Ushobora gukoresha ikigega cy'amakuru gusa mu gihe bihuye n'impamvu y'ubusabe bwawe ku mahame ya API, bikanaguha guhama mu bijyanye na API nk'uko byakomeje kugenda bivugururwa. Wizejwe uburenganzira bwo gukura ibyo ushaka ku rubuga, nta guhezwa, kubuzwa cyangwa guhagarikwa, ukabikoresha, ukabibyaza umusaruro ndetse ukabisakaza ku bakoresha porogaramu yawe y'ubusabe (\"Abakoresha porogaramu ba nyuma\") ku Bikorwa by'Imenyesha bifitanye isano n'inyandiko zanditswe zitegura, zigasubiza zikanagarura ubutumwa, bigahura n'igenamiterere ryihuta y'ibikorwa bya muntu biburira bituruka mu makuru, bijyanye n'amahame ya API. Ushobora gukoresha API mu gufasha ku mpamvu zitari iz'ubucuruzi, bijyanye n'amahame ya API. Ntabwo wemerewe gukoresha API mu gufasha mu ikoreshwa ry'ikigega cy'amakuru mu buryo bwo gucuruza, Amamenyesha y'ibikorwa ndetse\/cyangwa Itegurwa, Isubizwa n'Igarurabutumwa, harimo nta rutangira, kongera kugurisha amakuru, gusaba ikiguzi abayakoresha n'abayakwirakwiza cyangwa guca ikiguzi kuri gahunda yo kuyabyaza umusaruro. Kuruwa Ruje n'abatanga uburenganzira babungabunga umutwe wose, ubu nyirubwite, uburenganzira n'inyungu muri no kuri API, Itegurwa, Isubizwa n'Igarurabutumwa, Amamenyesha y'ibikorwa, Ikigega cy'amakuru n'inkomoko y'amakuru (nkuko byasobanuwe hasi). Uburenganzira bwose butagaragajwe burashinganye.", "heading": "Uruhushya n'imbibi:" }, "overview": { diff --git a/resources/lang/sw.json b/resources/lang/sw.json index c6c1b63..c010d28 100644 --- a/resources/lang/sw.json +++ b/resources/lang/sw.json @@ -441,9 +441,9 @@ "immediate": "Mara moja", "warning": "Onyo", "anticipated": "Inatarajiwa", - "assess_and_plan": "Tathmini na Panga", - "mitigate_risks": "Punguza Hatari", - "prepare_to_respond": "Jitayarishe Kujibu", + "assess_and_plan":"Tathmini na Panga", + "mitigate_risks":"Punguza Hatari", + "prepare_to_respond":"Jitayarishe Kujibu", "recover": "Pona" }, "content": { @@ -526,7 +526,7 @@ "seasonalForecast_extra": "Utabiri wa msimu ni taarifa ya utabiri wa tukio lenye hatari. Hatua zilizochukuliwa ni kutathmini uwezekano wa hatari na kupanga shughuli za kupunguza hatari na kulinda kaya.", "watch": "Tazama", "watch_help": "Jitayarishe kujibu", - "watch_extra": "Saa hutolewa wakati hatari ya tukio hatari imeongezeka sana, lakini kutokea kwake, eneo lake, na/au muda bado haujajulikana. Imekusudiwa kutoa wakati wa kutosha kwa vitendo vya kinga na maandalizi ya kujibu.", + "watch_extra": "Saa hutolewa wakati hatari ya tukio hatari imeongezeka sana, lakini kutokea kwake, eneo lake, na\/au muda bado haujajulikana. Imekusudiwa kutoa wakati wa kutosha kwa vitendo vya kinga na maandalizi ya kujibu.", "warning": "Onyo", "warning_help": "Jitayarishe kujibu", "warning_extra": "Onyo linatolewa wakati tukio hatari linatokea, linakaribia, au lina uwezekano mkubwa sana wa kutokea. Inamaanisha hali zinaleta tishio kwa maisha au mali. Watu walio katika njia ya hatari hii wanahitaji kuchukua hatua za kinga.", @@ -558,8 +558,7 @@ "content_edit_title": "Hariri Maudhui", "content_add_hazard_title": "Ongeza Hatari", "key_message_label": "Kichwa cha ujumbe muhimu", - "supporting_message_label": "Ujumbe wa usaidizi", - "mitigate_risk": "Punguza Hatari" + "supporting_message_label": "Ujumbe wa usaidizi" }, "message_editor": { "title": "Mhariri wa Sifa", @@ -619,7 +618,7 @@ "bad_request_error_codes": { "30001": "Vichwa vya safu wima havilingani na kiolezo", "30002": "Jina la sifa, ujumbe au url hazipo", - "30003": "Url isiyo halali - tafadhali hakikisha itifaki iko, kwa mfano https: //", + "30003": "Url isiyo halali - tafadhali hakikisha itifaki iko, kwa mfano https: \/\/", "40001": "Nambari batili ya nchi imetolewa", "40002": "Jamii iliyochaguliwa hailingani na jamii kwa faili iliyochaguliwa", "40003": "Tarehe ambayo faili iliyochaguliwa ilitolewa imekuwa na hitilafu na uingizaji hauwezi kukamilika" @@ -690,7 +689,7 @@ }, "landing": { "strapline": "Huduma ya Hifadhidata ya Ujumbe wa Usalama", - "strapline_part_2": "Ujumbe muhimu wa Usalama wa Msalaba Mwekundu / Hilali Nyekundu ya Kimataifa", + "strapline_part_2": "Ujumbe muhimu wa Usalama wa Msalaba Mwekundu \/ Hilali Nyekundu ya Kimataifa", "head_1": "Usalama wa IFRC", "head_2": "Hifadhidata ya Ujumbe", "head_text_1": "Ujumbe wa usalama unaotegemea Ufahamu wa Umma wa IFRC na", @@ -745,7 +744,7 @@ "fake_alert_heading": "Onyo la Baridi Kali Sana", "fake_alert_description": "Lakini hii inahitaji tofauti rahisi na nyepesi. Kwa wakati wa bure, wakati nguvu zetu.", "fake_alert_time": "SAA 1 ILIYOPITA", - "fake_alert_time_exact": "tarehe 05/02/18 saa 05:15 CT", + "fake_alert_time_exact": "tarehe 05\/02\/18 saa 05:15 CT", "use_cases": { "heading": "Jifunze Zaidi", "first_heading": "Jinsi Inavyofanya Kazi", @@ -786,7 +785,7 @@ }, "data_preview": { "heading": "Ujumbe wa Usalama", - "sub_heading": "Jisajili na uangalie ujumbe muhimu wa hatua kutoka kwa Mashirika ya Kitaiifa ya Msalaba Mwekundu / Hilali Nyekundu kote ulimwenguni" + "sub_heading": "Jisajili na uangalie ujumbe muhimu wa hatua kutoka kwa Mashirika ya Kitaiifa ya Msalaba Mwekundu \/ Hilali Nyekundu kote ulimwenguni" }, "footer": { "terms_conditions": "Sheria na Masharti", @@ -842,10 +841,10 @@ "industries": { "media": "Vyombo vya habari", "emergency": "Usimamizi wa Dharura", - "non_profit": "Lisilo la Faida / Shirika Lisilo la Kiserikali", + "non_profit": "Lisilo la Faida \/ Shirika Lisilo la Kiserikali", "humanitarian": "Shirika Kibinadamu", - "red_cross": "Msalaba Mwekundu / Hilali Nyekundu", - "education": "Elimu / Taaluma", + "red_cross": "Msalaba Mwekundu \/ Hilali Nyekundu", + "education": "Elimu \/ Taaluma", "gov": "Wakala wa Serikali", "other": "Nyingine" }, @@ -860,9 +859,9 @@ "body": "Sheria za Wilaya ya Columbia zitasimamia haki zote na majukumu chini ya Mkataba huu, bila kutekeleza kanuni zozote za mgongano wa sheria.", "heading": "Sheria Inayotumika:" }, - "body": "Una jukumu la kudumisha usiri na usalama wa ufunguo wa usajili uliotolewa na Shirika la Msalaba Mwekundu kwako. Unawajibika kudumisha uwiiano na API, kama inavyosasishwa mara kwa mara, ili kuendelea kupokea Milisho ya Data. Shirika la Msalaba Mwekundu linaweza kutoa toleo zilizosasishwa za API na Milisho ya Data kwa hiari yake. Matoleo mapya yanaweza yasioane na utekelezaji uliopita, na Unakubali kutumia toleo la hivi karibuni la Milisho ya Data wakati wote.\n\nUnakubali kutobadilisha, kusambaza, kutenganisha, au kubadilisha kihandisi sehemu yoyote ya API au programu yoyote ya Shirika la Msalaba Mwekundu.\n\nUsitumie API au Milisho ya Data kwa njia ambayo inazidi kiwango cha ombi kinachofaa au inatumiwa kupindukia au matumizi mabaya, kama ilivyoamuliwa na Shirika la Msalaba Mwekundu kwa hiari yake pekee.\n\nUsitumie API au Milisho ya Data kwa njia isiyo halali, inayopotosha, ya kupuuza, yenye nia mbaya, inayokusudia kusababisha madhara, au inayodhuru Msalaba Mwekundu, watoa huduma wake, watoa huduma wake, au mtu mwingine yeyote, kama ilivyoamuliwa na Shirika la Msalaba Mwekundu kwa hiari yake pekee.\n\nShirila la Msalaba Mwekundu linaweza kufuatilia matumizi yako ya API na Milisho ya Data. Unaweza usitumie njia yoyote ya kiufundi kuingiliana na ufuatiliaji kama huo, na Msalaba Mwekundu inaweza kutumia njia za kiufundi kushinda uingiliaji wowote kama huo.\n\nMatumizi ya utayari, Jibu, na Rudisha Ujumbe itawasilishwa tu kama yalivyo sasa au iliyosasishwa kwa mpangilio wa dharura wa wakati huo wa Tahadhari ya Tukio inayohusiana, na utasasisha binafsi Kutayarisha, Kujibu, na jumbe za kurudi juu ya sasisho lolote la Milisho ya Data na/au Tahadhari zinazohusiana za Tukio la Msalaba Mwekundu.\n\nUtayari binafsi, Jibu na Ujumbe wa Nafuu Unaotumia utahusishwa tu na eneo la kijiografia ambalo limetolewa. Ikiwa Jumbe za Utayari, Jibu, na Nafuu zinajumuisha marejeleo kwa chanzo kama vile Shirika la Msalaba Mwekundu la Marekani au shirika lingine la kitaifa la Msalaba Mwekundu au Hilali Nyekundu (kila moja likiwa na \"Marejeleo ya Chanzo\"), Utajumuisha Marejeleo ya Chanzo yanayohusishwa na kila Jumbe wa Utayari, Jibu, na Nafuu katika fomu iliyotolewa kwenye Milisho ya Data. Hutatumia tena Marejeleo ya Chanzo chochote.\n\nUnaweza usitafsiri Milisho ya Data, Tahadhari za Tukio, na/au Jumbe za Utayari, Jibu, na Nafuu zilizorudi katika lugha nyingine yoyote, kufanya matumizi yoyote, uhariri au marekebisho, au kubadilisha maana ya Milisho ya Data, Tahadhari za Tukio na/au Jumbe za Utayari, Jibu, na Nafuu.\n\nLazima uhakikishe kuwa Malisho ya Takwimu, yanabaki katika milki yako pekee na/au udhibiti.\n\nUnaweza usiruhusu Tahadhari za Tukio na Andaa, Jibu, na jumbe za kurudi uliowasilishwa kwa Watumiaji wa Mwisho kuingiza matangazo yoyote au udhamini.\n\nUnaweza usifanye kumbukumbu yoyote ya Milisho ya Takwimu nzima au kwa sehemu.", + "body": "Una jukumu la kudumisha usiri na usalama wa ufunguo wa usajili uliotolewa na Shirika la Msalaba Mwekundu kwako. Unawajibika kudumisha uwiiano na API, kama inavyosasishwa mara kwa mara, ili kuendelea kupokea Milisho ya Data. Shirika la Msalaba Mwekundu linaweza kutoa toleo zilizosasishwa za API na Milisho ya Data kwa hiari yake. Matoleo mapya yanaweza yasioane na utekelezaji uliopita, na Unakubali kutumia toleo la hivi karibuni la Milisho ya Data wakati wote.\n\nUnakubali kutobadilisha, kusambaza, kutenganisha, au kubadilisha kihandisi sehemu yoyote ya API au programu yoyote ya Shirika la Msalaba Mwekundu.\n\nUsitumie API au Milisho ya Data kwa njia ambayo inazidi kiwango cha ombi kinachofaa au inatumiwa kupindukia au matumizi mabaya, kama ilivyoamuliwa na Shirika la Msalaba Mwekundu kwa hiari yake pekee.\n\nUsitumie API au Milisho ya Data kwa njia isiyo halali, inayopotosha, ya kupuuza, yenye nia mbaya, inayokusudia kusababisha madhara, au inayodhuru Msalaba Mwekundu, watoa huduma wake, watoa huduma wake, au mtu mwingine yeyote, kama ilivyoamuliwa na Shirika la Msalaba Mwekundu kwa hiari yake pekee.\n\nShirila la Msalaba Mwekundu linaweza kufuatilia matumizi yako ya API na Milisho ya Data. Unaweza usitumie njia yoyote ya kiufundi kuingiliana na ufuatiliaji kama huo, na Msalaba Mwekundu inaweza kutumia njia za kiufundi kushinda uingiliaji wowote kama huo.\n\nMatumizi ya utayari, Jibu, na Rudisha Ujumbe itawasilishwa tu kama yalivyo sasa au iliyosasishwa kwa mpangilio wa dharura wa wakati huo wa Tahadhari ya Tukio inayohusiana, na utasasisha binafsi Kutayarisha, Kujibu, na jumbe za kurudi juu ya sasisho lolote la Milisho ya Data na\/au Tahadhari zinazohusiana za Tukio la Msalaba Mwekundu.\n\nUtayari binafsi, Jibu na Ujumbe wa Nafuu Unaotumia utahusishwa tu na eneo la kijiografia ambalo limetolewa. Ikiwa Jumbe za Utayari, Jibu, na Nafuu zinajumuisha marejeleo kwa chanzo kama vile Shirika la Msalaba Mwekundu la Marekani au shirika lingine la kitaifa la Msalaba Mwekundu au Hilali Nyekundu (kila moja likiwa na \"Marejeleo ya Chanzo\"), Utajumuisha Marejeleo ya Chanzo yanayohusishwa na kila Jumbe wa Utayari, Jibu, na Nafuu katika fomu iliyotolewa kwenye Milisho ya Data. Hutatumia tena Marejeleo ya Chanzo chochote.\n\nUnaweza usitafsiri Milisho ya Data, Tahadhari za Tukio, na\/au Jumbe za Utayari, Jibu, na Nafuu zilizorudi katika lugha nyingine yoyote, kufanya matumizi yoyote, uhariri au marekebisho, au kubadilisha maana ya Milisho ya Data, Tahadhari za Tukio na\/au Jumbe za Utayari, Jibu, na Nafuu.\n\nLazima uhakikishe kuwa Malisho ya Takwimu, yanabaki katika milki yako pekee na\/au udhibiti.\n\nUnaweza usiruhusu Tahadhari za Tukio na Andaa, Jibu, na jumbe za kurudi uliowasilishwa kwa Watumiaji wa Mwisho kuingiza matangazo yoyote au udhamini.\n\nUnaweza usifanye kumbukumbu yoyote ya Milisho ya Takwimu nzima au kwa sehemu.", "contact": "Tafadhali wasiliana na Shirika la Msalaba Mwekundu kwa {0} kwa maswali yoyote kuhusu API.", - "disclaimer": "API na Malisho ya Data hutolewa KWA MADHUMUNI YA HABARI NA ELIMU PEKEE, NA kwa msingi wa 'kama ilivyo' na 'kama inapatikana'. Shirika la Msalaba Mwekundu halifanyi uwakilishi au dhamana ya aina yoyote, iliyoelezwa au iliyomaanishwa. Shirika la Msalaba Mwekundu linakataa dhamana zote, zilizoelezwa au kumaanishwa, zikiwemo na lakini haziishii kwa dhamana za kumaanishwa za uuzaji na ubora kwa kusudi fulani. Shirika la Msalaba Mwekundu na wafanyakazi wake, maafisa, magavana na mawakala na watoa leseni hawatawajibika kwa uharibifu wa aina yoyote unaotokana na matumizi ya API, Mlisho wa Data, Tahadhari za Tukio, na/au jumbe za Utayari, Jibu, na Nafuu ukiwemo lakini usioishia kwa madhara ya moja kwa moja, yasiyo ya moja kwa moja, ya bahati mbaya, ya adhabu na ya matokeo.\n\nShirika la Msalaba Mwekundu halihakiki mfuatano, usahihi, ukweli au ukamilifu wa API, Mlisho ya Data, Tahadhari ya Tukio na/au Kuandaa, Kujibu, na Jumbe za nafuu na hautawajibika kwa njia yoyote kwako au kwa Watumiaji wako wa mwisho au kwa mtu yeyote, ikiwemo bila kikomo, kwa ucheleweshaji wowote, kukosa usahihi, makosa au upungufu, kwa API husika, Mlisho wa Data, Tahadhari ya Tukio na / au Andaa, Jibu, na jumbe za nafuu zilizotolewa hapa chini.", + "disclaimer": "API na Malisho ya Data hutolewa KWA MADHUMUNI YA HABARI NA ELIMU PEKEE, NA kwa msingi wa 'kama ilivyo' na 'kama inapatikana'. Shirika la Msalaba Mwekundu halifanyi uwakilishi au dhamana ya aina yoyote, iliyoelezwa au iliyomaanishwa. Shirika la Msalaba Mwekundu linakataa dhamana zote, zilizoelezwa au kumaanishwa, zikiwemo na lakini haziishii kwa dhamana za kumaanishwa za uuzaji na ubora kwa kusudi fulani. Shirika la Msalaba Mwekundu na wafanyakazi wake, maafisa, magavana na mawakala na watoa leseni hawatawajibika kwa uharibifu wa aina yoyote unaotokana na matumizi ya API, Mlisho wa Data, Tahadhari za Tukio, na\/au jumbe za Utayari, Jibu, na Nafuu ukiwemo lakini usioishia kwa madhara ya moja kwa moja, yasiyo ya moja kwa moja, ya bahati mbaya, ya adhabu na ya matokeo.\n\nShirika la Msalaba Mwekundu halihakiki mfuatano, usahihi, ukweli au ukamilifu wa API, Mlisho ya Data, Tahadhari ya Tukio na\/au Kuandaa, Kujibu, na Jumbe za nafuu na hautawajibika kwa njia yoyote kwako au kwa Watumiaji wako wa mwisho au kwa mtu yeyote, ikiwemo bila kikomo, kwa ucheleweshaji wowote, kukosa usahihi, makosa au upungufu, kwa API husika, Mlisho wa Data, Tahadhari ya Tukio na \/ au Andaa, Jibu, na jumbe za nafuu zilizotolewa hapa chini.", "entire_agreement": { "body": "Masharti ya API yanajumuisha makubaliano kamili na ya kipekee kati ya Shirika la Msalaba Mwekundu na Wewe kwa kuzingatia mada hii na inachukua nafasi ya uelewa wa awali wa maongezi au maandishi, mawasiliano, au makubaliano ambayo hayajaingizwa hapa. Shirika la Msalaba Mwekundu lina haki ya kurekebisha au kubatilisha mkataba huu wakati wowote.", "heading": "Mkataba Mzima:" @@ -870,7 +869,7 @@ "heading": "MKATABA WA UTOAJI LESENI KWA MTUMIAJI WA MWISHO WA API", "intro": "KUBALI: KWA KUTUMIA HUDUMA AU KUWEKA ALAMA YA TIKI KWENYE KISANDUKU, MTUMIAJI ANAKUBALI KUFUNGWA NA MKATABA HUU.\n\nAPI ni zana inayokuruhusu (\"Wewe\") kupata na kutumia milisho ya data iliyotolewa na Shirika la Msalaba Mwekundu ikiwemo mlisho wa hali ya hewa ya ulimwengu na onyo la tukio la maafa na arifa za kutazama (\"Tahadhari za Tukio\") na mlisho wa hatua zinazoweza kutekelezwa ujumbe juu ya jinsi ya kujiandaa kwa hatari za mitaa kwa aina ya hatari na dharura (\"Jumbe za Utayari, Jibu, na Nafuu\", na kwa pamoja na Tahadhari za Tukio, \"Milisho ya Data\"). Jumbe za Utayari, Jibu, na Nafuu zimekusudiwa kuandamana na Tahadhari za Tukio au onyo lingine na matangazo ya kutazama yanayohusiana na tukio la hali ya hewa na maafa katika programu yako mwenyewe. Matumizi yako ya Milisho ya Data yanasimamiwa na Masharti ya API.", "license_limitations": { - "body": "Unaweza kutumia Milisho ya Data tu kwa kushirikiana na programu yako mwenyewe kulingana na Masharti ya API, na kama Unadumisha utangamano na API, kama inavyosasishwa mara kwa mara. Umepewa haki isiyo ya kipekee, iliyo na kikomo na inayoweza kukataliwa ya kupakua, kutumia, kuzalisha na kusambaza kwa watumiaji wa mwisho wa programu yako mwenyewe (\"Watumiaji wa Mwisho\") Tahadhari za Tukio na yaliyomo kumuktadhisha Jumbe za Utayari, Kujibu, na Nafuu kushirikiana na upangaji wa dharura wa Arifa za Tukio za kibinafsi kutoka kwa Milisho ya Data, kulingana na Masharti ya API. Unaweza tu kutumia API kuwezesha matumizi yasiyo ya kibiashara ya Milisho ya Data kulingana na Masharti ya API. Kwa tukio lolote huenda usitumie API kuwezesha matumizi ya kibiashara ya Milisho ya Data, Tahadhari za Tukio na / au Jumbe za Utayari, Jibu, na Nafuu, ikiwemo bila kikomo, kuziuza tena, kutoza kuzifikia, kutoza kuzisambaza tena, au kutoza kuunda kazi zinazotokana na msingi wao. Shirika la msalaba mwekundu na watoa leseni zake wanadumisha jina, umiliki, haki na maslahi yote kwa API, Jumbe za Utayari, Jibu, na Nafuu, Tahadhari za Tukio, Mlisho wa Data na Marejeleo ya Chanzo (kama ilivyoelezwa hapa chini) ndani yake. Haki zote ambazo hazijatolewa kwa kuelezwa zimehifadhiwa.", + "body": "Unaweza kutumia Milisho ya Data tu kwa kushirikiana na programu yako mwenyewe kulingana na Masharti ya API, na kama Unadumisha utangamano na API, kama inavyosasishwa mara kwa mara. Umepewa haki isiyo ya kipekee, iliyo na kikomo na inayoweza kukataliwa ya kupakua, kutumia, kuzalisha na kusambaza kwa watumiaji wa mwisho wa programu yako mwenyewe (\"Watumiaji wa Mwisho\") Tahadhari za Tukio na yaliyomo kumuktadhisha Jumbe za Utayari, Kujibu, na Nafuu kushirikiana na upangaji wa dharura wa Arifa za Tukio za kibinafsi kutoka kwa Milisho ya Data, kulingana na Masharti ya API. Unaweza tu kutumia API kuwezesha matumizi yasiyo ya kibiashara ya Milisho ya Data kulingana na Masharti ya API. Kwa tukio lolote huenda usitumie API kuwezesha matumizi ya kibiashara ya Milisho ya Data, Tahadhari za Tukio na \/ au Jumbe za Utayari, Jibu, na Nafuu, ikiwemo bila kikomo, kuziuza tena, kutoza kuzifikia, kutoza kuzisambaza tena, au kutoza kuunda kazi zinazotokana na msingi wao. Shirika la msalaba mwekundu na watoa leseni zake wanadumisha jina, umiliki, haki na maslahi yote kwa API, Jumbe za Utayari, Jibu, na Nafuu, Tahadhari za Tukio, Mlisho wa Data na Marejeleo ya Chanzo (kama ilivyoelezwa hapa chini) ndani yake. Haki zote ambazo hazijatolewa kwa kuelezwa zimehifadhiwa.", "heading": "Leseni na Vikwazo:" }, "overview": { @@ -889,17 +888,17 @@ "two": "Kukwepa au kurekebisha funguo zozote au njia za usalama zilizotumiwa na Shirika la Msalaba Mwekundu au API, ikiwemo bila kikomo teknolojia zozote za uthibitishaji.", "three": "Kuomba, kukusanya, kutafuta au vinginevyo kupata ufikiaji wa majina ya kuingia, nywila au hati zingine za uthibitishaji wa Msalaba Mwekundu isipokuwa ile uliyopewa kwa akaunti yako mwenyewe.", "four": "Kusema au kumaanisha ushirika, udhamini au kuidhinishwa na Shirika la Msalaba Mwekundu au asasi au shirika la kitaifa lingine lolote la Msalaba Mwekundu au Hilali Nyekundu.", - "five": "Kusema au kumaanisha kuwa Unamiliki au umeunda API, Milisho ya Data, Tahadhari za Tukio na/au Jumbe za Utayari, Jibu, na Nafuu.", + "five": "Kusema au kumaanisha kuwa Unamiliki au umeunda API, Milisho ya Data, Tahadhari za Tukio na\/au Jumbe za Utayari, Jibu, na Nafuu.", "six": "Kusambaza virusi vyovyote, kasoro ya minyoo, farasi wa Trojan, au vitu vyovyote vya asili ya uharibifu." } }, - "reserve_rights": "Shirika la Msalaba Mwekundu lina haki ya kubadilisha na/au kuacha kutoa API na Milisho ya Data nzima au sehemu, iwe kwa muda au kwa kudumu, wakati wowote bila taarifa ya awali. Kwa kuepusha mashaka, hakuna kitu hapa kinacholazimisha Shirika la Msalaba Mwekundu kufanya API yake au Milisho ya Data ipatikane kwako, na Unakubali na kukiri kuwa ufikiaji wowote upo ndani ya hiari pekee na kamili ya Shirika la Msalaba Mwekundu.", + "reserve_rights": "Shirika la Msalaba Mwekundu lina haki ya kubadilisha na\/au kuacha kutoa API na Milisho ya Data nzima au sehemu, iwe kwa muda au kwa kudumu, wakati wowote bila taarifa ya awali. Kwa kuepusha mashaka, hakuna kitu hapa kinacholazimisha Shirika la Msalaba Mwekundu kufanya API yake au Milisho ya Data ipatikane kwako, na Unakubali na kukiri kuwa ufikiaji wowote upo ndani ya hiari pekee na kamili ya Shirika la Msalaba Mwekundu.", "severability": { "body": "Ubatili wa muda wowote au utoaji wa Masharti ya API hautaathiri uhalali wa kifungu kingine chochote.", "heading": "Utengamano na Msamaha:" }, "suspension": { - "body": "Shirika la Msalaba Mwekundu lina haki ya kusimamisha au kusitisha ufikiaji wako ikiwa litaona, kwa hiari yake pekee, kwamba Unahusika na matumizi yasiyoruhusiwa ya API au Milisho ya Data kama ilivyoainishwa katika Masharti ya API au kwamba unatumia API au Milisho ya Data katika shughuli yoyote inayotishia /kuhatarisha usalama na/au usalama wa mtu yeyote au mitandao ya Msalaba Mwekundu.", + "body": "Shirika la Msalaba Mwekundu lina haki ya kusimamisha au kusitisha ufikiaji wako ikiwa litaona, kwa hiari yake pekee, kwamba Unahusika na matumizi yasiyoruhusiwa ya API au Milisho ya Data kama ilivyoainishwa katika Masharti ya API au kwamba unatumia API au Milisho ya Data katika shughuli yoyote inayotishia \/kuhatarisha usalama na\/au usalama wa mtu yeyote au mitandao ya Msalaba Mwekundu.", "heading": "Kusimamishwa au Kukomeshwa:" } }, diff --git a/resources/lang/th.json b/resources/lang/th.json index d0bf1d3..56f09d5 100644 --- a/resources/lang/th.json +++ b/resources/lang/th.json @@ -441,9 +441,9 @@ "immediate": "ทันที", "warning": "คำเตือน", "anticipated": "คาดการณ์", - "assess_and_plan": "ประเมินและวางแผน", - "mitigate_risks": "ลดความเสี่ยง", - "prepare_to_respond": "เตรียมพร้อมตอบสนอง", + "assess_and_plan":"ประเมินและวางแผน", + "mitigate_risks":"ลดความเสี่ยง", + "prepare_to_respond":"เตรียมพร้อมตอบสนอง", "recover": "ฟื้นฟู" }, "content": { @@ -526,7 +526,7 @@ "seasonalForecast_extra": "การพยากรณ์ฤดูกาลเป็นรายงานการทำนายเหตุการณ์อันตราย มีดำเนินการเพื่อประเมินความเสี่ยงที่เป็นไปได้และวางแผนกิจกรรมเพื่อลดความเสี่ยงและปกป้องเคหะสถาน", "watch": "ดู", "watch_help": "เตรียมการตอบสนอง", - "watch_extra": "ออกการดูเมื่อความเสี่ยงของเหตุการณ์อันตรายได้เพิ่มขึ้นอย่างสำคัญ แต่การเกิดเหตุการณ์ สถานที่ตั้ง และ/หรือเวลา ยังคงไม่แน่นอน ซึ่งมีวัถุประสงค์เพื่อให้เวลาเพียงพอในการปกป้องและเตรียมการตอบสนอง", + "watch_extra": "ออกการดูเมื่อความเสี่ยงของเหตุการณ์อันตรายได้เพิ่มขึ้นอย่างสำคัญ แต่การเกิดเหตุการณ์ สถานที่ตั้ง และ\/หรือเวลา ยังคงไม่แน่นอน ซึ่งมีวัถุประสงค์เพื่อให้เวลาเพียงพอในการปกป้องและเตรียมการตอบสนอง", "warning": "คำเตือน", "warning_help": "เตรียมการตอบสนอง", "warning_extra": "ออกการแจ้งเตือนเมื่อเกิดเหตุการณ์อันตรายที่ใกล้เข้ามา หรือการเกิดเหตุการณ์อันตรายมีความเป็นไปได้สูง ซึ่งหมายถึงสภาวะที่แสดงถึงอันตรายต่อชีวิตหรือทรัพย์สิน คนที่อยู่ในเส้นทางอันตรายที่จำเป็นเพื่อใช้มาตรการป้องกัน", @@ -558,8 +558,7 @@ "content_edit_title": "แก้ไขเนื้อหา", "content_add_hazard_title": "เพิ่มอันตราย", "key_message_label": "ชื่อข้อความสำคัญ", - "supporting_message_label": "ข้อความสนับสนุน", - "mitigate_risk": "ลดความเสี่ยง" + "supporting_message_label": "ข้อความสนับสนุน" }, "message_editor": { "title": "ตัวแก้ไขการให้เครดิต", @@ -619,7 +618,7 @@ "bad_request_error_codes": { "30001": "หัวข้อคอลัมน์ไม่ตรงกับแม่แบบ", "30002": "ไม่มีชื่อการระบุแหล่งที่มา ข้อความหรือ ulr", - "30003": "url การระบุแหล่งที่มาไม่ถูกต้อง - โปรดตรวจสอบว่าโพรโตคอลเป็นปัจจุบัน เช่น https://", + "30003": "url การระบุแหล่งที่มาไม่ถูกต้อง - โปรดตรวจสอบว่าโพรโตคอลเป็นปัจจุบัน เช่น https:\/\/", "40001": "รหัสประเทศที่ให้ไว้ไม่ถูกต้อง", "40002": "ชุมชนที่เลือกไม่ตรงกับชุมชนสำหรับไฟล์ที่เลือก", "40003": "การนำออกวันที่ของไฟล์ที่เลือกผิดรูปแบบและการนำเข้าไม่สำเร็จ" @@ -690,7 +689,7 @@ }, "landing": { "strapline": "บริการฐานข้อมูลข้อความความปลอดภัย", - "strapline_part_2": "ข้อความเพื่อความปลอดภัยที่สำคัญของสภากาชาด / สภาเสี้ยววงเดือนแดงทั่วโลก", + "strapline_part_2": "ข้อความเพื่อความปลอดภัยที่สำคัญของสภากาชาด \/ สภาเสี้ยววงเดือนแดงทั่วโลก", "head_1": "IFRC ความปลอดภัย", "head_2": "ฐานข้อมูลข้อความ", "head_text_1": "ข้อความความปลอดภัยตามทรัพยากรการสร้างความตระหนักรู้และการศึกษา", @@ -745,7 +744,7 @@ "fake_alert_heading": "การแจ้งเตือนสภาวะอากาศเย็นจัด", "fake_alert_description": "Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est.", "fake_alert_time": "1 ชั่วโมงที่แล้ว", - "fake_alert_time_exact": "05/02/18 เวลา 05:15 CT", + "fake_alert_time_exact": "05\/02\/18 เวลา 05:15 CT", "use_cases": { "heading": "ข้อมูลเพิ่มเติม", "first_heading": "วิธีการทำงาน", @@ -786,7 +785,7 @@ }, "data_preview": { "heading": "ข้อความความปลอดภัย", - "sub_heading": "ลงทะเบียนและดูข้อความสำคัญในการปฎิบัติจากชุมชนสภากาชาด / สภาเสี้ยววงเดือนแดงทั่วโลก" + "sub_heading": "ลงทะเบียนและดูข้อความสำคัญในการปฎิบัติจากชุมชนสภากาชาด \/ สภาเสี้ยววงเดือนแดงทั่วโลก" }, "footer": { "terms_conditions": "ข้อกำหนดและเงื่อนไข", @@ -860,9 +859,9 @@ "body": "สิทธิและข้อผูกมัดภายใต้ข้อตกลงนี้ล้วนอยู่ในกรอบกฎหมายของเขตโคลัมเบีย โดยที่ไม่มีผลต่อหลักการการขัดกันของกฎหมาย", "heading": "กฎหมายที่บังคับที่ใช้ได้" }, - "body": "คุณมีหน้าที่รับผิดชอบในการรักษาความลับและความปลอดภัยของรหัสการลงทะเบียนที่กาชาดมอบให้คุณ คุณมีหน้าที่รับผิดชอบในการรักษาความสอดคล้องของข้อมูลกับ API ซึ่งจะถูกอัพเดตอยู่เรื่อยๆ เพื่อที่จะรับ Data Feeds ต่อไป กาชาดอาจเปิดเผย API และ Data Feeds เวอร์ชั่นที่อัพเดตแล้ว ตามที่กาชาดเห็นว่าเหมาะสม Data Feeds เวอร์ชั่นใหม่อาจไม่สอดรับกับนโยบายที่ใช้อยู่เดิม และคุณได้ยินยอมที่จะใช้ Data Feeds เวอร์ชั่นอัพเดตล่าสุดตลอดเวลา\n\nคุณยืนยันที่จะไม่แก้ไข แจกจ่าย แยก ถอดชิ้นส่วน หรือใช้วิศวกรรมย้อนกลับกับส่วนหนึ่งส่วนใดของ API หรือซอฟต์แวร์ใดๆ ของกาชาด\n\nคุณไม่อาจใช้ API หรือ Data Feeds ในรูปแบบที่เกินเลยจากขอบเขตที่สมเหตุที่สมผล หรือนำมาใช้อย่างไม่ถูกต้อง ทั้งนี้เป็นไปตามที่กาชาดกำหนด\n\nคุณไม่อาจใช้ API หรือ Data Feeds โดยผิดกฎหมาย ใช้ล่อลวงผู้อื่น ใช้อย่างไม่ระมัดระวัง และใช้โดยมีวัตถุประสงค์ที่เป็นภัย หรือสร้างความเสียหายต่อกาชาด ผู้ให้บริการกาชาด หรือบุคคลอื่นใด ทั้งนี้เป็นไปตามขอบข่ายที่กาชาดกำหนด\n\nกาชาดอาจตรวจสอบการใช้ API และ Data Feeds ของคุณ คุณไม่สามารถใช้เครื่องมือทางเทคโนโลยีใดๆ เพื่อแทรกแซงการตรวจสอบดังกล่าว กาชาดเองอาจใช้เครื่องมือทางเทคโนโลยีเพื่อระงับการแทรกแซงนั้น\n\nการใช้ Prepare, Respond, and Recover Messages ต้องเป็นปัจจุบันและอัพเดตตามที่ระบุไว้ใน Event Alert ที่เกี่ยวข้อง ณ ขณะนั้น และคุณต้องอัพเดต Prepare, Respond, และ Recover Messages ให้สอดคล้องกับการอัพเดต Data Feeds และ/หรือ Event Alerts ที่เกี่ยวข้องโดยกาชาด\n\nPrepare, Respond, and Recover Messages แต่ละส่วนที่คุณใช้ต้องเกี่ยวข้องเขตพื้นที่ทางภูมิศาสตร์ที่ข้อมูลส่วนนั้นระบุมาเท่านั้น หาก Prepare, Respond, and Recover Messages มีการอ้างถึงแหล่งข้อมูลเช่น กาชาดอเมริกัน หรือองค์กรหรือสมาคมระดับชาติทางกาชาดหรือเสี้ยววงเดือนแดง โดยที่แต่ละส่วนนับถือแหล่งอ้างอิงหนึ่งๆ คุณต้องระบุแหล่งอ้างอิงที่เกี่ยวข้องกับ Prepare, Respond, and Recover Messages แต่ละแหล่งตามรูปแบบที่กำหนดไว้ใน Data Feeds คุณไม่สามารถใช้แหล่งอ้างอิง (Source Reference) เพื่อวัตถุประสงค์อื่น\n\nคุณไม่อาจแปล Data Feeds, Event Alerts และ/หรือ Prepare, Respond, and Recover Messages เป็นภาษาอื่นใด อีกทั้งยังไม่สามารถใช้ ดัดแปลง หรือเปลี่ยนแปลงความหมายของ Data Feeds Event, Alerts และ/หรือ Prepare, Respond, and Recover Messages\n\nคุณต้องทำให้แน่ใจว่า Data Feeds อยู่ในครอบครองหรือการควบคุมของคุณแต่ผู้เดียว\n\nคุณไม่อาจอนุญาตให้ส่ง Prepare, Respond, and Recover Messages ไปยังผู้ใช้ขั้นปลายโดยหวังผลทางการโฆษณาหรือการสนับสนุน\n\nคุณไม่อาจจัดเก็บ Data Feeds ไม่ว่าจะเป็นบางส่วนหรือทั้งหมด", + "body": "คุณมีหน้าที่รับผิดชอบในการรักษาความลับและความปลอดภัยของรหัสการลงทะเบียนที่กาชาดมอบให้คุณ คุณมีหน้าที่รับผิดชอบในการรักษาความสอดคล้องของข้อมูลกับ API ซึ่งจะถูกอัพเดตอยู่เรื่อยๆ เพื่อที่จะรับ Data Feeds ต่อไป กาชาดอาจเปิดเผย API และ Data Feeds เวอร์ชั่นที่อัพเดตแล้ว ตามที่กาชาดเห็นว่าเหมาะสม Data Feeds เวอร์ชั่นใหม่อาจไม่สอดรับกับนโยบายที่ใช้อยู่เดิม และคุณได้ยินยอมที่จะใช้ Data Feeds เวอร์ชั่นอัพเดตล่าสุดตลอดเวลา\n\nคุณยืนยันที่จะไม่แก้ไข แจกจ่าย แยก ถอดชิ้นส่วน หรือใช้วิศวกรรมย้อนกลับกับส่วนหนึ่งส่วนใดของ API หรือซอฟต์แวร์ใดๆ ของกาชาด\n\nคุณไม่อาจใช้ API หรือ Data Feeds ในรูปแบบที่เกินเลยจากขอบเขตที่สมเหตุที่สมผล หรือนำมาใช้อย่างไม่ถูกต้อง ทั้งนี้เป็นไปตามที่กาชาดกำหนด\n\nคุณไม่อาจใช้ API หรือ Data Feeds โดยผิดกฎหมาย ใช้ล่อลวงผู้อื่น ใช้อย่างไม่ระมัดระวัง และใช้โดยมีวัตถุประสงค์ที่เป็นภัย หรือสร้างความเสียหายต่อกาชาด ผู้ให้บริการกาชาด หรือบุคคลอื่นใด ทั้งนี้เป็นไปตามขอบข่ายที่กาชาดกำหนด\n\nกาชาดอาจตรวจสอบการใช้ API และ Data Feeds ของคุณ คุณไม่สามารถใช้เครื่องมือทางเทคโนโลยีใดๆ เพื่อแทรกแซงการตรวจสอบดังกล่าว กาชาดเองอาจใช้เครื่องมือทางเทคโนโลยีเพื่อระงับการแทรกแซงนั้น\n\nการใช้ Prepare, Respond, and Recover Messages ต้องเป็นปัจจุบันและอัพเดตตามที่ระบุไว้ใน Event Alert ที่เกี่ยวข้อง ณ ขณะนั้น และคุณต้องอัพเดต Prepare, Respond, และ Recover Messages ให้สอดคล้องกับการอัพเดต Data Feeds และ\/หรือ Event Alerts ที่เกี่ยวข้องโดยกาชาด\n\nPrepare, Respond, and Recover Messages แต่ละส่วนที่คุณใช้ต้องเกี่ยวข้องเขตพื้นที่ทางภูมิศาสตร์ที่ข้อมูลส่วนนั้นระบุมาเท่านั้น หาก Prepare, Respond, and Recover Messages มีการอ้างถึงแหล่งข้อมูลเช่น กาชาดอเมริกัน หรือองค์กรหรือสมาคมระดับชาติทางกาชาดหรือเสี้ยววงเดือนแดง โดยที่แต่ละส่วนนับถือแหล่งอ้างอิงหนึ่งๆ คุณต้องระบุแหล่งอ้างอิงที่เกี่ยวข้องกับ Prepare, Respond, and Recover Messages แต่ละแหล่งตามรูปแบบที่กำหนดไว้ใน Data Feeds คุณไม่สามารถใช้แหล่งอ้างอิง (Source Reference) เพื่อวัตถุประสงค์อื่น\n\nคุณไม่อาจแปล Data Feeds, Event Alerts และ\/หรือ Prepare, Respond, and Recover Messages เป็นภาษาอื่นใด อีกทั้งยังไม่สามารถใช้ ดัดแปลง หรือเปลี่ยนแปลงความหมายของ Data Feeds Event, Alerts และ\/หรือ Prepare, Respond, and Recover Messages\n\nคุณต้องทำให้แน่ใจว่า Data Feeds อยู่ในครอบครองหรือการควบคุมของคุณแต่ผู้เดียว\n\nคุณไม่อาจอนุญาตให้ส่ง Prepare, Respond, and Recover Messages ไปยังผู้ใช้ขั้นปลายโดยหวังผลทางการโฆษณาหรือการสนับสนุน\n\nคุณไม่อาจจัดเก็บ Data Feeds ไม่ว่าจะเป็นบางส่วนหรือทั้งหมด", "contact": "หากคุณมีข้อสงสัยประการใดเกี่ยวกับ API โปรดติดต่อกาชาดที่ {0}", - "disclaimer": "API และ Data Feeds มีเพื่อวัตถุประสงค์การแจ้งข้อมูลและเพื่อการศึกษาเท่านั้น และเป็นไปตามสภาพจริงและตามสภาพที่มีอยู่เท่านั้น กาชาดไม่เป็นตัวแทนหรือให้การรับประกันในรูปแบบใดๆ ไม่ว่าโดยตรงหรือโดยนัย กาชาดขอสงวนสิทธิ์การรับประกันใดๆ ไม่ว่าจะโดยตรงหรือโดยนัย ซึ่งรวมถึงแต่ไม่จำกัดเฉพาะการรับประกันโดยนัยเกี่ยวกับสภาพสินค้าและการใช้งานเพื่อวัตถุประสงค์เฉพาะ กาชาดและลูกจ้าง พนักงาน ผู้ปกครองและตัวเอง และผู้ให้ลิขสิทธิ์จะไม่รับผิดชอบความเสียหายใดๆ ซึ่งเกิดจากการใช้ API, Data Feeds, Event Alerts และ/หรือ Prepare, Respond, and Recover Messages ซึ่งรวมถึงแต่ไม่จำกัดเฉพาะความเสียหายที่ตามมาทางตรง ทางอ้อม โดยอุบัติเหตุ หรือโทษทัณฑ์\n\nกาชาดไม่รับประกันลำดับ ความแม่นยำ และความถูกต้องหรือความสมบูรณ์ของ API, Data Feed, Event Alert และ/หรือ Prepare, Respond, and Recover Messages และไม่รับผิดชอบความล่าช้า ความคลาดเคลื่อน หรือข้อบกพร่องใดๆ ใน API, Data Feed, Event Alert และ/หรือ Prepare, Respond, and Recover Messages ที่แสดงไว้ข้างต้น โดยรวมถึงแต่ไม่จำกัดเฉพาะคุณ ผู้ใช้ปลายทางของคุณ หรือบุคคลที่สาม", + "disclaimer": "API และ Data Feeds มีเพื่อวัตถุประสงค์การแจ้งข้อมูลและเพื่อการศึกษาเท่านั้น และเป็นไปตามสภาพจริงและตามสภาพที่มีอยู่เท่านั้น กาชาดไม่เป็นตัวแทนหรือให้การรับประกันในรูปแบบใดๆ ไม่ว่าโดยตรงหรือโดยนัย กาชาดขอสงวนสิทธิ์การรับประกันใดๆ ไม่ว่าจะโดยตรงหรือโดยนัย ซึ่งรวมถึงแต่ไม่จำกัดเฉพาะการรับประกันโดยนัยเกี่ยวกับสภาพสินค้าและการใช้งานเพื่อวัตถุประสงค์เฉพาะ กาชาดและลูกจ้าง พนักงาน ผู้ปกครองและตัวเอง และผู้ให้ลิขสิทธิ์จะไม่รับผิดชอบความเสียหายใดๆ ซึ่งเกิดจากการใช้ API, Data Feeds, Event Alerts และ\/หรือ Prepare, Respond, and Recover Messages ซึ่งรวมถึงแต่ไม่จำกัดเฉพาะความเสียหายที่ตามมาทางตรง ทางอ้อม โดยอุบัติเหตุ หรือโทษทัณฑ์\n\nกาชาดไม่รับประกันลำดับ ความแม่นยำ และความถูกต้องหรือความสมบูรณ์ของ API, Data Feed, Event Alert และ\/หรือ Prepare, Respond, and Recover Messages และไม่รับผิดชอบความล่าช้า ความคลาดเคลื่อน หรือข้อบกพร่องใดๆ ใน API, Data Feed, Event Alert และ\/หรือ Prepare, Respond, and Recover Messages ที่แสดงไว้ข้างต้น โดยรวมถึงแต่ไม่จำกัดเฉพาะคุณ ผู้ใช้ปลายทางของคุณ หรือบุคคลที่สาม", "entire_agreement": { "body": "ข้อกำหนด API นี้ประกอบด้วยสัญญาที่สมบูรณ์ระหว่างกาชาดกับคุณ และให้ใช้แทนข้อตกลงทั้งหมดระหว่างคู่สัญญาที่จัดทำขึ้นก่อนหน้านี้ ไม่ว่าจะเป็นข้อตกลงทางวาจาหรือลายลักษณ์อักษร การพูดคุย หรือสัญญาใดๆ ที่ไม่รวมอยู่ในข้อกำหนดนี้ กาชาดขอสงวนสิทธิ์ในการแก้ไขหรือเพิกถอนข้อตกลงนี้เมื่อใดก็ได้", "heading": "ข้อตกลงที่สมบูรณ์" @@ -870,7 +869,7 @@ "heading": "ข้อตกลงลิขสิทธิ์ API สำหรับผู้ใช้ขั้นปลาย", "intro": "ข้อตกลง เมื่อใช้บริการหรือทำเครื่องหมายในช่อง ผู้ใช้ยอมรับข้อผูกมัดตามสัญญาฉบับนี้\n\nAPI คือเครื่องมือที่ช่วยให้คุณ (\"คุณ\") เรียกคืนและใช้ฟีดข้อมูลที่กาชาดมอบให้ ซึ่งหมายรวมฟีดเกี่ยวกับสภาพอากาศของโลก การแจ้งเตือนภัยพิบัติและการประกาศแจ้งเตือน (\"Event Alerts\") และฟีดข้อความที่เป็นรูปธรรมเกี่ยวกับการเตรียมพร้อมรับมือภัยพิบัติท้องถิ่นโดยจำแนกตามประเภทของภัยพิบัติและความฉุกเฉิน (\"Prepare, Respond, and Recover Messages”, และยังรวมถึง Event Alerts, “ Data Feeds”) ข้อความการเตรียมความพร้อม การตอบโต้ และการฟื้นฟูมีเจตนาให้ใช้ร่วมกับการแจ้งเตือนอุบัติการณ์หรือคำเตือนอื่นๆ และจับตาดูประกาศแจ้งเตือนเกี่ยวกับเรื่องสภาพอากาศและเหตุการณ์ภัยพิบัติในแอปพลิเคชันของคุณ โดยมีการกำกับดูแลการใช้ฟีดข้อมูลของคุณภายใต้ข้อกำหนด API", "license_limitations": { - "body": "คุณอาจใช้ฟีดข้อมูลร่วมกับแอปพลิเคชันของคุณเองได้ตามข้อกำหนด API เท่านั้นและให้คุณรักษาความเข้ากันได้กับ API ตามที่มีการปรับปรุงเป็นครั้งคราว คุณได้รับสิทธิ์ในการดาวน์โหลด ใช้งาน ทำซ้ำและแจกจ่ายแอปพลิเคชันของตัวคุณเองให้กับผู้ใช้ปลายทาง (“ ผู้ใช้”) ได้ในแบบไม่ผูกขาด จำกัดและสามารถเพิกถอนได้ การแจ้งเตือนอุบัติการณ์และข้อความการเตรียมความพร้อม การตอบโต้และการฟื้นฟูตามบริบทที่เกี่ยวข้องร่วมกับการตั้งค่าความเร่งด่วนในการแจ้งเตือนอุบัติการณ์แต่ละรายการจากฟีดข้อมูลภายใต้ข้อกำหนด API คุณอาจใช้ API เพื่ออำนวยสะดวกในการใช้ฟีดข้อมูลที่มิใช่ในเชิงพาณิชย์ตามข้อกำหนด API เท่านั้น คุณไม่อาจใช้ API เพื่ออำนวยความสะดวกในการใช้ฟีดข้อมูล การแจ้งเตือนอุบัติการณ์ และ/หรือ ข้อความการเตรียมความพร้อม การตอบโต้ และการฟื้นฟูได้ในทุกกรณี รวมถึงแต่ไม่จำกัดเพียง การจำหน่ายต่อ การเรียกเก็บเงินเพื่อการเข้าใช้บริการ การเรียกเก็บเงินเพื่อการจำหน่ายจ่ายแจก หรือการเรียกเก็บเงินเพื่อสร้างผลงานลอกเลียนแบบตามผลงานเหล่านั้น สภากาชาดและผู้ให้อนุญาตคงรักษาชื่อเสียง กรรมสิทธิ์ สิทธิ์และผลประโยชน์ในและต่อ API ข้อความการเตรียมความพร้อม การตอบโต้ และการฟื้นฟู การแจ้งเตือนอุบัติการณ์ ฟีดข้อมูลและแหล่งอ้างอิงที่มา (ตามที่ระบุไว้ต่อไปนี้) ในที่นี้ ขอสงวนสิทธิ์ทั้งปวงที่ไม่ได้รับอนุญาตไว้อย่างชัดแจ้ง", + "body": "คุณอาจใช้ฟีดข้อมูลร่วมกับแอปพลิเคชันของคุณเองได้ตามข้อกำหนด API เท่านั้นและให้คุณรักษาความเข้ากันได้กับ API ตามที่มีการปรับปรุงเป็นครั้งคราว คุณได้รับสิทธิ์ในการดาวน์โหลด ใช้งาน ทำซ้ำและแจกจ่ายแอปพลิเคชันของตัวคุณเองให้กับผู้ใช้ปลายทาง (“ ผู้ใช้”) ได้ในแบบไม่ผูกขาด จำกัดและสามารถเพิกถอนได้ การแจ้งเตือนอุบัติการณ์และข้อความการเตรียมความพร้อม การตอบโต้และการฟื้นฟูตามบริบทที่เกี่ยวข้องร่วมกับการตั้งค่าความเร่งด่วนในการแจ้งเตือนอุบัติการณ์แต่ละรายการจากฟีดข้อมูลภายใต้ข้อกำหนด API คุณอาจใช้ API เพื่ออำนวยสะดวกในการใช้ฟีดข้อมูลที่มิใช่ในเชิงพาณิชย์ตามข้อกำหนด API เท่านั้น คุณไม่อาจใช้ API เพื่ออำนวยความสะดวกในการใช้ฟีดข้อมูล การแจ้งเตือนอุบัติการณ์ และ\/หรือ ข้อความการเตรียมความพร้อม การตอบโต้ และการฟื้นฟูได้ในทุกกรณี รวมถึงแต่ไม่จำกัดเพียง การจำหน่ายต่อ การเรียกเก็บเงินเพื่อการเข้าใช้บริการ การเรียกเก็บเงินเพื่อการจำหน่ายจ่ายแจก หรือการเรียกเก็บเงินเพื่อสร้างผลงานลอกเลียนแบบตามผลงานเหล่านั้น สภากาชาดและผู้ให้อนุญาตคงรักษาชื่อเสียง กรรมสิทธิ์ สิทธิ์และผลประโยชน์ในและต่อ API ข้อความการเตรียมความพร้อม การตอบโต้ และการฟื้นฟู การแจ้งเตือนอุบัติการณ์ ฟีดข้อมูลและแหล่งอ้างอิงที่มา (ตามที่ระบุไว้ต่อไปนี้) ในที่นี้ ขอสงวนสิทธิ์ทั้งปวงที่ไม่ได้รับอนุญาตไว้อย่างชัดแจ้ง", "heading": "ผู้ให้อนุญาตและข้อจำกัด" }, "overview": { @@ -889,17 +888,17 @@ "two": "เพื่อหลีกเลี่ยงหรือแก้ไขคีย์หรือกลไกการรักษาความปลอดภัยใดๆ ที่ใช้โดยสภากาชาดหรือ API รวมถึงแต่ไม่จำกัดเพียงเทคโนโลยีการตรวจสอบสิทธิ์ใดๆ", "three": "เพื่อร้องขอ เก็บรวบรวม หรือขอรับสิทธิ์เข้าถึงชื่อ รหัสผ่าน หรือข้อมูลรับรองสิทธิ์เพื่อยืนยันตัวตนอื่นๆ ในการลงชื่อเข้าใช้สำหรับสภากาชาดนอกเหนือจากสิ่งที่คุณได้รับให้กับบัญชีของคุณเอง", "four": "เพื่อระบุหรือบอกเป็นนัยถึงความเกี่ยวข้อง การสนับสนุนหรือการรับรองโดยสภากาชาดหรือและสภาเสี้ยววงเดือนแดงอื่นๆ", - "five": "เพื่อระบุหรือบอกเป็นนัยว่าคุณเป็นเจ้าของหรือสร้าง API ฟีดข้อมูล การแจ้งเตือนอุบัติการณ์และ/หรือการเตรียมความพร้อม การโต้ตอบ และการฟื้นฟู", + "five": "เพื่อระบุหรือบอกเป็นนัยว่าคุณเป็นเจ้าของหรือสร้าง API ฟีดข้อมูล การแจ้งเตือนอุบัติการณ์และ\/หรือการเตรียมความพร้อม การโต้ตอบ และการฟื้นฟู", "six": "เพื่อส่งไวรัส ความบกพร่องจากเวิร์ม ม้าโทรจัน หรือสิ่งใดก็ตามที่มีลักษณะทำลายล้าง" } }, - "reserve_rights": "สภากาชาดขอสงวนสิทธิ์ในการเปลี่ยนแปลงและ/หรือจัดเตรียม API และฟีดข้อมูลให้ทั้งหมดหรือบางส่วนอีกต่อไปไม่ว่าจะเป็นการชั่วคราวหรือถาวรเมื่อใดก็ตามโดยไม่ต้องแจ้งให้ทราบล่วงหน้า เพื่อการหลีกเลี่ยงข้อสงสัย ไม่มีสิ่งใดในที่นี้บังคับให้สภากาชาดต้องทำให้ API หรือฟีดข้อมูลพร้อมใช้งานสำหรับคุณ และคุณยินยอมและรับทราบว่าการเข้าถึงใดๆ จะอยู่ภายใต้ดุลยพินิจของสภากาชาดแต่เพียงผู้เดียว", + "reserve_rights": "สภากาชาดขอสงวนสิทธิ์ในการเปลี่ยนแปลงและ\/หรือจัดเตรียม API และฟีดข้อมูลให้ทั้งหมดหรือบางส่วนอีกต่อไปไม่ว่าจะเป็นการชั่วคราวหรือถาวรเมื่อใดก็ตามโดยไม่ต้องแจ้งให้ทราบล่วงหน้า เพื่อการหลีกเลี่ยงข้อสงสัย ไม่มีสิ่งใดในที่นี้บังคับให้สภากาชาดต้องทำให้ API หรือฟีดข้อมูลพร้อมใช้งานสำหรับคุณ และคุณยินยอมและรับทราบว่าการเข้าถึงใดๆ จะอยู่ภายใต้ดุลยพินิจของสภากาชาดแต่เพียงผู้เดียว", "severability": { "body": "ความไม่สมบูรณ์หรือไม่สามารถใช้บังคับของข้อกำหนด API นั้นจะไม่ส่งผลกระทบต่อความสมบูรณ์ของบทบัญญัติอื่นใด", "heading": "การเป็นโมฆะและการสละสิทธิ์" }, "suspension": { - "body": "สภากาชาดขอสงวนสิทธิ์โดยใช้ดุลยพินิจแต่เพียงผู้เดียวในการระงับหรือยุติการเข้าใช้งานของคุณหากสภากาชาดพิจารณาเห็นว่าคุณมีส่วนเกี่ยวข้องกับการใช้ API หรือฟีดข้อมูลโดยไม่ได้รับอนุญาตตามที่ระบุไว้ในข้อกำหนด API หรือคุณกำลังใช้ API หรือฟีดข้อมูล ในกิจกรรมใดๆ ที่เป็นการคุกคาม/ลดทอนความปลอดภัย และ/หรือ ความมั่นคงปลอดภัยของบุคคลใดหรือเครือข่ายของสภากาชาด", + "body": "สภากาชาดขอสงวนสิทธิ์โดยใช้ดุลยพินิจแต่เพียงผู้เดียวในการระงับหรือยุติการเข้าใช้งานของคุณหากสภากาชาดพิจารณาเห็นว่าคุณมีส่วนเกี่ยวข้องกับการใช้ API หรือฟีดข้อมูลโดยไม่ได้รับอนุญาตตามที่ระบุไว้ในข้อกำหนด API หรือคุณกำลังใช้ API หรือฟีดข้อมูล ในกิจกรรมใดๆ ที่เป็นการคุกคาม\/ลดทอนความปลอดภัย และ\/หรือ ความมั่นคงปลอดภัยของบุคคลใดหรือเครือข่ายของสภากาชาด", "heading": "การระงับหรือการยกเลิกบริการ" } }, diff --git a/resources/lang/tr.json b/resources/lang/tr.json index 275b64c..4d037b0 100644 --- a/resources/lang/tr.json +++ b/resources/lang/tr.json @@ -441,9 +441,9 @@ "immediate": "Acil", "warning": "Uyarı", "anticipated": "Beklenen", - "assess_and_plan": "Değerlendirin ve Planlayın", - "mitigate_risks": "Riski Azaltın", - "prepare_to_respond": "Yanıt Vermeye Hazırlanın", + "assess_and_plan":"Değerlendirin ve Planlayın", + "mitigate_risks":"Riski Azaltın", + "prepare_to_respond":"Yanıt Vermeye Hazırlanın", "recover": "İyileş" }, "content": { @@ -558,8 +558,7 @@ "content_edit_title": "İçerik Düzenleme", "content_add_hazard_title": "Tehlike Ekle", "key_message_label": "Anahtar mesaj başlığı", - "supporting_message_label": "Destek mesajı", - "mitigate_risk": "Riski Azaltın" + "supporting_message_label": "Destek mesajı" }, "message_editor": { "title": "Atıf Editörü", @@ -619,7 +618,7 @@ "bad_request_error_codes": { "30001": "Sütun başlıkları şablonla eşleşmiyor", "30002": "Özellik adı, mesaj veya URL eksik", - "30003": "Özellik adı geçersiz. Lütfen protokolün var olduğunu kontrol edin, https:// gibi", + "30003": "Özellik adı geçersiz. Lütfen protokolün var olduğunu kontrol edin, https:\/\/ gibi", "40001": "Geçersiz ülke kodu girildi", "40002": "Seçilen dernek seçilen dernek dosyası ile eşleşmiyor", "40003": "Seçilen dosyanın dışa aktarım tarihi hatalı olduğu için içe aktarım tamamlanamadı" @@ -690,7 +689,7 @@ }, "landing": { "strapline": "Güvenlik Mesajı Veritabanı Hizmeti", - "strapline_part_2": "Küresel Kızılhaç / Kızılay Güvenlik Mesajları", + "strapline_part_2": "Küresel Kızılhaç \/ Kızılay Güvenlik Mesajları", "head_1": "IFRC Güvenlik", "head_2": "Mesaj Veritabanı", "head_text_1": "IFRC Halkı Bilinçlendirme ve Bilinçlendirmeye dayalı güvenlik mesajları", @@ -745,7 +744,7 @@ "fake_alert_heading": "Dondurucu Soğuk Uyarısı", "fake_alert_description": "Et harum quidem rerum facilis est et expedita distinctio. Nam libero temporare, cum soluta nobis est.", "fake_alert_time": "1 SAAT ÖNCE", - "fake_alert_time_exact": "05/02/18 saat 05:15 (GMT-5)", + "fake_alert_time_exact": "05\/02\/18 saat 05:15 (GMT-5)", "use_cases": { "heading": "Daha Fazla Bilgi", "first_heading": "Nasıl Çalışır", @@ -786,7 +785,7 @@ }, "data_preview": { "heading": "Güvenlik Mesajları", - "sub_heading": "Üye Olun ve dünya genelindeki Kızılhaç / Kızılay derneklerinden önemli mesajları görüntüleyin" + "sub_heading": "Üye Olun ve dünya genelindeki Kızılhaç \/ Kızılay derneklerinden önemli mesajları görüntüleyin" }, "footer": { "terms_conditions": "Hüküm ve Koşullar", @@ -842,10 +841,10 @@ "industries": { "media": "Medya", "emergency": "Afet ve Acil Durum Yönetimi", - "non_profit": "Kar amacı gütmeyen/Sivil Toplum Kuruluşu", + "non_profit": "Kar amacı gütmeyen\/Sivil Toplum Kuruluşu", "humanitarian": "İnsani Yardım Kuruluşu", - "red_cross": "Kızılhaç/Kızılay", - "education": "Eğitim/Akademi", + "red_cross": "Kızılhaç\/Kızılay", + "education": "Eğitim\/Akademi", "gov": "Devlet kurumu", "other": "Diğer" }, @@ -860,9 +859,9 @@ "body": "Columbia Bölgesi yasaları, herhangi bir kanun ihtilafı ilkesini yürürlüğe koymaksızın, işbu Sözleşme kapsamındaki tüm hak ve yükümlülükleri yönetecektir.", "heading": "Geçerli Kanun:" }, - "body": " Kızılhaç'ın size sağladığı giriş anahtarının gizliliği ve güvenliğinden sorumlusunuz. Yüklenen verileri almaya devam etmek için zaman zaman güncellenen arayüzün uyumluluğunu devam ettirmekten sorumlusunuz. Kızıl Haç, arayüz ve verileri güncelleme hakkını saklı tutar. Yeni sürümler önceki uygulamalarla uyumlu olmayabilir, en son güncellenen sürümünü her zaman kullanmayı kabul edersiniz.\n\nArayüzün ve Kızılhaç'ın herhangi bir parçasını ya da yazılımını değiştirmeyeceğinizi, yaymayacağınızı, kaynak koduna dönmeyeceğinizi, parçalarına ayırmayacağınızı ya da tersine mühendislik yapmayacağınızı kabul edersiniz.\n\nArayüzü ya da verileri, makul talep hacmini aşacak şekilde ya da aşırı veya kötüye kullanamazsınız. Kızılhaç bu haklarını saklı tutar.\n\nArayüzü ya da verileri, kanunsuz, yanıltıcı, ihmalkar, kötü niyetli veyahut Kızıl Haç'a ya da sağlayıcılarıcına, içerik üreticilerine, ya da başka kişilere zarar verecek şekilde kullanamazsınız. Kızıl Haç bu haklarını saklı tutar.\n\nKızıl Haç arayüzü ve verileri kullanış biçiminizi denetleyebilir. Bu denetlemeyi herhangi bir teknolojik araç ile engelleyemezsiniz ve Kızılhaç bu tür engelleri aşabilmek için başka teknik araçlar kullanabilir.\n\nHazırlık, Müdahale ve Kurtarma mesajları yalnızca ilişkili olay ikazının bir önceki aciliyet durumuna göre geçerli ya da güncellenmiş olarak sunulur, ve siz de Kızılhaç'tan gelen herhangi bir veri güncellemesi ve/veya ilişkili olay ikazına göre bireysel olarak Hazırlık, Müdahale ve Kurtarma mesajlarında güncelleme yapmalısınız.\n\nBireysel Hazırlık, Müdahale ve Kurtarma mesajları, yalnızca belirtilen coğrafi bölge ile ilişkilendirilir. Eğer bir Hazırlık, Müdahale ve Kurtarma mesajı, Amerika Kızıl Haç ya da başka bir Kızılhaç ya da Kızılay veyahut bir milli topluluğa dair (hepsi birer \"Kaynak Referansı\"dır) bir referans içerirse, bu Kaynak Referansını her bir Hazırlık, Müdahale ve Kurtarma mesajı ile ilişkilendirerek, verilerde gösterilen şekilde belirtmelisiniz. Bu Kaynak Referansını başka şekillerde kullanamazsınız.\n\nVerileri, olay ikazlarını ve/veya Hazırlık, Müdahale, Kurtarma mesajlarını başka bir dile çeviremez, kullanamaz, üzerinde düzenleme ya da uyarlama yapamaz, veya anlamlarını değiştiremezsiniz.\n\nVerilerin yalnızca sizin kontrolünüzde olduğundan ve güvenliğinden emin olmalısınız.\n\nOlay ikazlarının ve Hazırlık, Müdahale, Kurtarma mesajlarının, reklam ya da sponsorluk amacı ile son kullanıcıya ulaşmasına izin veremezsiniz.\n\nVerilerin tamamından ya da bir kısmından arşiv oluşturamazsınız.", + "body": " Kızılhaç'ın size sağladığı giriş anahtarının gizliliği ve güvenliğinden sorumlusunuz. Yüklenen verileri almaya devam etmek için zaman zaman güncellenen arayüzün uyumluluğunu devam ettirmekten sorumlusunuz. Kızıl Haç, arayüz ve verileri güncelleme hakkını saklı tutar. Yeni sürümler önceki uygulamalarla uyumlu olmayabilir, en son güncellenen sürümünü her zaman kullanmayı kabul edersiniz.\n\nArayüzün ve Kızılhaç'ın herhangi bir parçasını ya da yazılımını değiştirmeyeceğinizi, yaymayacağınızı, kaynak koduna dönmeyeceğinizi, parçalarına ayırmayacağınızı ya da tersine mühendislik yapmayacağınızı kabul edersiniz.\n\nArayüzü ya da verileri, makul talep hacmini aşacak şekilde ya da aşırı veya kötüye kullanamazsınız. Kızılhaç bu haklarını saklı tutar.\n\nArayüzü ya da verileri, kanunsuz, yanıltıcı, ihmalkar, kötü niyetli veyahut Kızıl Haç'a ya da sağlayıcılarıcına, içerik üreticilerine, ya da başka kişilere zarar verecek şekilde kullanamazsınız. Kızıl Haç bu haklarını saklı tutar.\n\nKızıl Haç arayüzü ve verileri kullanış biçiminizi denetleyebilir. Bu denetlemeyi herhangi bir teknolojik araç ile engelleyemezsiniz ve Kızılhaç bu tür engelleri aşabilmek için başka teknik araçlar kullanabilir.\n\nHazırlık, Müdahale ve Kurtarma mesajları yalnızca ilişkili olay ikazının bir önceki aciliyet durumuna göre geçerli ya da güncellenmiş olarak sunulur, ve siz de Kızılhaç'tan gelen herhangi bir veri güncellemesi ve\/veya ilişkili olay ikazına göre bireysel olarak Hazırlık, Müdahale ve Kurtarma mesajlarında güncelleme yapmalısınız.\n\nBireysel Hazırlık, Müdahale ve Kurtarma mesajları, yalnızca belirtilen coğrafi bölge ile ilişkilendirilir. Eğer bir Hazırlık, Müdahale ve Kurtarma mesajı, Amerika Kızıl Haç ya da başka bir Kızılhaç ya da Kızılay veyahut bir milli topluluğa dair (hepsi birer \"Kaynak Referansı\"dır) bir referans içerirse, bu Kaynak Referansını her bir Hazırlık, Müdahale ve Kurtarma mesajı ile ilişkilendirerek, verilerde gösterilen şekilde belirtmelisiniz. Bu Kaynak Referansını başka şekillerde kullanamazsınız.\n\nVerileri, olay ikazlarını ve\/veya Hazırlık, Müdahale, Kurtarma mesajlarını başka bir dile çeviremez, kullanamaz, üzerinde düzenleme ya da uyarlama yapamaz, veya anlamlarını değiştiremezsiniz.\n\nVerilerin yalnızca sizin kontrolünüzde olduğundan ve güvenliğinden emin olmalısınız.\n\nOlay ikazlarının ve Hazırlık, Müdahale, Kurtarma mesajlarının, reklam ya da sponsorluk amacı ile son kullanıcıya ulaşmasına izin veremezsiniz.\n\nVerilerin tamamından ya da bir kısmından arşiv oluşturamazsınız.", "contact": "Arayüz ile ilgili sorularınız için lütfen Kızılhaç'a {0} buradan ulaşınız.", - "disclaimer": "Arayüz ve veriler YALNIZCA BİLGİ VE EĞİTİM AMAÇLI, 'olduğu gibi' ve 'mevcut olduğu gibi' sağlanmaktadır. Kızıl Haç, açık veya zımni hiçbir tür beyanda bulunmaz veya garanti vermez. Kızıl Haç açık veya zımni tüm garantileri reddeder, buna satılabilirlik ve belirli bir amaca uygunluk ile ilgili zımni garantiler de dahildir ancak bunlarla sınırlı değildir. Kızıl Haç ve çalışanları, memurları, yöneticileri ve acenteleri ve lisans verenleri, arayüzün, verilerin, olay ikazlarının ve/veya Hazırlık, Müdahale ve Kurtarma mesajları dahil ancak bunlarla sınırlı olmamak üzere kullanımından kaynaklanan herhangi bir doğrudan, dolaylı, arızi, cezai ve sonuç olarak ortaya çıkan zarardan sorumlu olmayacaktır.\n\nKızılhaç, API'nin, Veri Beslemesinin, arayüzün, verilerin, olay ikazlarının ve/veya Hazırlık, Müdahale ve Kurtarma mesajlarının sırasını, doğruluğunu, orijinalliğini veya eksiksizliğini garanti etmez ve size veya Son Kullanıcılarınıza veya herhangi bir üçüncü kişiye karşı hiçbir şekilde sorumlu tutulamaz. Bunlarla sınırlı olmaksızın, burada belirtildiği üzere, arayüzler, veriler, olay ikazları ve/veya Hazırlık, Müdahale ve Kurtarma mesajları hususunda, herhangi bir gecikmeden, yanlışlıktan, hatalar ve ihmallerden sorumlu tutulamaz.", + "disclaimer": "Arayüz ve veriler YALNIZCA BİLGİ VE EĞİTİM AMAÇLI, 'olduğu gibi' ve 'mevcut olduğu gibi' sağlanmaktadır. Kızıl Haç, açık veya zımni hiçbir tür beyanda bulunmaz veya garanti vermez. Kızıl Haç açık veya zımni tüm garantileri reddeder, buna satılabilirlik ve belirli bir amaca uygunluk ile ilgili zımni garantiler de dahildir ancak bunlarla sınırlı değildir. Kızıl Haç ve çalışanları, memurları, yöneticileri ve acenteleri ve lisans verenleri, arayüzün, verilerin, olay ikazlarının ve\/veya Hazırlık, Müdahale ve Kurtarma mesajları dahil ancak bunlarla sınırlı olmamak üzere kullanımından kaynaklanan herhangi bir doğrudan, dolaylı, arızi, cezai ve sonuç olarak ortaya çıkan zarardan sorumlu olmayacaktır.\n\nKızılhaç, API'nin, Veri Beslemesinin, arayüzün, verilerin, olay ikazlarının ve\/veya Hazırlık, Müdahale ve Kurtarma mesajlarının sırasını, doğruluğunu, orijinalliğini veya eksiksizliğini garanti etmez ve size veya Son Kullanıcılarınıza veya herhangi bir üçüncü kişiye karşı hiçbir şekilde sorumlu tutulamaz. Bunlarla sınırlı olmaksızın, burada belirtildiği üzere, arayüzler, veriler, olay ikazları ve\/veya Hazırlık, Müdahale ve Kurtarma mesajları hususunda, herhangi bir gecikmeden, yanlışlıktan, hatalar ve ihmallerden sorumlu tutulamaz.", "entire_agreement": { "body": "Bu Sözleşme, burada kapsanan konularla ilgili olarak Kızılhaç ile sizin aranızdaki anlaşmanın tamamını teşkil eder ve burada özellikle yer almayan önceki sözlü veya yazılı anlaşmaların, beyanların veya anlayışların yerini alır. Kızılhaç, iş bu sözleşmeyi istediği herhangi bir zamanda herhangi bir gerekçe göstermeksizin feshetme hakkına sahiptir.", "heading": "Sözleşmenin Tamamı:" @@ -870,7 +869,7 @@ "heading": "ARAYÜZ VE KULLANICI LİSANS ANLAŞMASI", "intro": "HİZMET KULLANARAK VEYA KUTUCUĞU İŞARETLEYEREK, BU SÖZLEŞMENİN KAYIT VE KOŞULLARINA BAĞLI KALMAYI KABUL EDERSİNİZ.\n\nArayüz, size (\"Siz\"), küresel hava durumu ve afet olay uyarısı beslemesi ve izleme bildirimleri (\"Olay Uyarıları\") dahil olmak üzere Kızıl Haç tarafından sunulan veri akışlarını almanıza, tehlike türüne, aciliyetine göre yerel tehlikelere nasıl hazırlanılacağına dair eyleme geçirilebilir ve bağlamsallaştırılmış mesajlar beslemesini kullanmanıza olanak tanıyan bir araç sağlayacaktır. (\"Hazırlık, Müdahale ve Kurtarma Mesajları\" ve toplu olarak Olay Uyarıları, \"Veri Beslemeleri\"). Hazırla, Yanıtla ve Kurtar Mesajları, kendi uygulamanızda Etkinlik Uyarılarına veya hava durumu ve felaket olaylarıyla ilişkili diğer uyarılara eşlik etmek ve bildirimleri izlemek için tasarlanmıştır. Veri Beslemelerini kullanımınız API Koşullarına tabidir.", "license_limitations": { - "body": "Veri Akışını yalnızca, API hükümlerine bağlı olarak kendi uygulamanız ile zaman zaman güncellenen API'ye uygunluğunuz göz önünde bulundurularak kullanabilirsiniz. Olay ikazlarını ve arayüz şartlarına tabi olarak verilerden gelen bireysel olay ikazlarının aciliyet ayarıyla ilgili, bağlamsal Hazırlık, Müdahale ve Kurtarma mesajlarınızı, son kullanıcılarınıza, özel olmayan, sınırlı ve iptal edilebilir indirme, kullanım, çoğaltma ve dağıtma hakkına sahipsiniz. API'yi yalnızca Veri Akışlarının ticari olmayan kullanımlarını API Koşullarına uygun olarak kolaylaştırmak için kullanabilirsiniz. Veri Beslemelerinin, Olay Uyarılarının ve / veya Mesajların Hazırlanması, Yanıtlanması ve Kurtarılması gibi ticari kullanımlarını kolaylaştırmak için arayüzü hiçbir durumda kullanamazsınız; bunlarla sınırlı olmamak kaydı ile, bunları yeniden satmak, bunlara erişmek için ücret almak, yeniden dağıtmak için ücret almak veya bunlara dayalı türev çalışmalar oluşturmak amaçlı ücret almak da dahildir. Kızıl Haç ve lisans verenleri, API, Hazırlama, Yanıtlama ve Kurtarma Mesajları, olay ikazları, Veri Beslemeleri ve Kaynak Referansları (aşağıda tanımlandığı gibi) ile ilgili tüm unvan, mülkiyet, hak ve menfaatleri elinde tutar. Açıkça verilmeyen tüm haklar saklıdır.", + "body": "Veri Akışını yalnızca, API hükümlerine bağlı olarak kendi uygulamanız ile zaman zaman güncellenen API'ye uygunluğunuz göz önünde bulundurularak kullanabilirsiniz. Olay ikazlarını ve arayüz şartlarına tabi olarak verilerden gelen bireysel olay ikazlarının aciliyet ayarıyla ilgili, bağlamsal Hazırlık, Müdahale ve Kurtarma mesajlarınızı, son kullanıcılarınıza, özel olmayan, sınırlı ve iptal edilebilir indirme, kullanım, çoğaltma ve dağıtma hakkına sahipsiniz. API'yi yalnızca Veri Akışlarının ticari olmayan kullanımlarını API Koşullarına uygun olarak kolaylaştırmak için kullanabilirsiniz. Veri Beslemelerinin, Olay Uyarılarının ve \/ veya Mesajların Hazırlanması, Yanıtlanması ve Kurtarılması gibi ticari kullanımlarını kolaylaştırmak için arayüzü hiçbir durumda kullanamazsınız; bunlarla sınırlı olmamak kaydı ile, bunları yeniden satmak, bunlara erişmek için ücret almak, yeniden dağıtmak için ücret almak veya bunlara dayalı türev çalışmalar oluşturmak amaçlı ücret almak da dahildir. Kızıl Haç ve lisans verenleri, API, Hazırlama, Yanıtlama ve Kurtarma Mesajları, olay ikazları, Veri Beslemeleri ve Kaynak Referansları (aşağıda tanımlandığı gibi) ile ilgili tüm unvan, mülkiyet, hak ve menfaatleri elinde tutar. Açıkça verilmeyen tüm haklar saklıdır.", "heading": "Müsaade ve Sınırlamalar:" }, "overview": { @@ -893,13 +892,13 @@ "six": "Herhangi bir virüs, truva atı veya yıkıcı nitelikteki bir öğeyi bulaştırmak." } }, - "reserve_rights": "Kızılhaç, önceden bildirimde bulunmaksızın herhangi bir zamanda geçici veya kalıcı olarak API ve verileri tamamen veya kısmen değiştirme ve / veya artık sağlamama hakkını saklı tutar. Şüpheye mahal vermemek adına, buradaki hiçbir şey Kızılhaç'ın API veya verilerini size sunma zorunluluğunu taşımaz ve siz, herhangi bir erişimin Kızılhaç'ın yegane ve mutlak takdir yetkisi dahilinde olduğunu kabul edip onaylarsınız.", + "reserve_rights": "Kızılhaç, önceden bildirimde bulunmaksızın herhangi bir zamanda geçici veya kalıcı olarak API ve verileri tamamen veya kısmen değiştirme ve \/ veya artık sağlamama hakkını saklı tutar. Şüpheye mahal vermemek adına, buradaki hiçbir şey Kızılhaç'ın API veya verilerini size sunma zorunluluğunu taşımaz ve siz, herhangi bir erişimin Kızılhaç'ın yegane ve mutlak takdir yetkisi dahilinde olduğunu kabul edip onaylarsınız.", "severability": { "body": "API Hükümlerinin herhangi bir şartının veya hükmünün geçersizliği, diğer herhangi bir hükmün geçerliliğini etkilemeyecektir.", "heading": "Bölünebilirlik ve Feragat:" }, "suspension": { - "body": "Kızılhaç, tamamen kendi takdirine bağlı olarak arayüz koşullarında belirtildiği gibi, herhangi bir kişinin veya Kızılhaç ağlarının güvenliğini ve / veya güvenliğini tehdit eden / tehlikeye atan herhangi bir faaliyette, arayüz veya verileri yetkisiz olarak kullandığınızı veya arayüz veya verileri kullandığınızı tespit ederse, Kızılhaç erişiminizi askıya alma veya sonlandırma hakkını saklı tutar.", + "body": "Kızılhaç, tamamen kendi takdirine bağlı olarak arayüz koşullarında belirtildiği gibi, herhangi bir kişinin veya Kızılhaç ağlarının güvenliğini ve \/ veya güvenliğini tehdit eden \/ tehlikeye atan herhangi bir faaliyette, arayüz veya verileri yetkisiz olarak kullandığınızı veya arayüz veya verileri kullandığınızı tespit ederse, Kızılhaç erişiminizi askıya alma veya sonlandırma hakkını saklı tutar.", "heading": "Askıya Alma veya Sonlandırma:" } }, diff --git a/resources/lang/ur.json b/resources/lang/ur.json index 63ee043..0c01a40 100644 --- a/resources/lang/ur.json +++ b/resources/lang/ur.json @@ -441,9 +441,9 @@ "immediate": "فوری", "warning": "انتباہ", "anticipated": "متوقع", - "assess_and_plan": "جائزہ لیں اور منصوبہ بنائیں", - "mitigate_risks": "خطرے کو کم کریں", - "prepare_to_respond": "جواب دینے کے لیے تیار رہیں", + "assess_and_plan":"جائزہ لیں اور منصوبہ بنائیں", + "mitigate_risks":"خطرے کو کم کریں", + "prepare_to_respond":"جواب دینے کے لیے تیار رہیں", "recover": "بحال کریں" }, "content": { @@ -526,7 +526,7 @@ "seasonalForecast_extra": "ایک موسمیاتی پیش گوئی ایک خطرناک واقعہ کی پیشن گوئی کا بیان ہے۔ کیئے گئے اقدامات ممکنہ خطرے کو کم کرنا اور سرگرمیوں کی منصوبہ بندی کرنا تاکہ خطرے کو کم کر کے کنبوں کو بچایا جا سکے۔", "watch": "نگرانی", "watch_help": "ردِعمل دینے کے لیے تیار رہیں", - "watch_extra": "ایک خطرے کی اطلاع اس وقت جاری کی جاتی ہے جب خطرناک واقعے کے وقوع پذیر ہونے کے خطرے میں نمایاں طور پر اضافہ ہوچکا ہو، لیکن اس کا وقوع، مقام، اور/ یا وقت ابھی تک غیر یقینی ہے۔ اس کا مقصد حفاظتی اقدامات اور جواب دینے کی تیاری کے لئے کافی وقت فراہم کرنا ہے۔", + "watch_extra": "ایک خطرے کی اطلاع اس وقت جاری کی جاتی ہے جب خطرناک واقعے کے وقوع پذیر ہونے کے خطرے میں نمایاں طور پر اضافہ ہوچکا ہو، لیکن اس کا وقوع، مقام، اور\/ یا وقت ابھی تک غیر یقینی ہے۔ اس کا مقصد حفاظتی اقدامات اور جواب دینے کی تیاری کے لئے کافی وقت فراہم کرنا ہے۔", "warning": "انتباہ", "warning_help": "ردِعمل دینے کے لیے تیار رہیں", "warning_extra": "ایک انتباہ کسی خطرناک واقعہ کے رونما پذیر ہونے، متوقع ہونے، یا واقع ہو جانے کے بہت زیادہ امکانات ہونے کی صورت میں دیا جاتا ہے۔ اس کا مطلب یہ ہے کہ حالات زندگی یا املاک کیلئے خطرہ ہیں۔ اس خطرے سے دوچار لوگوں کو حفاظتی اقدامات کرنے کی ضرورت ہے۔", @@ -558,8 +558,7 @@ "content_edit_title": "مواد میں ترمیم", "content_add_hazard_title": "خطرہ شامل کریں", "key_message_label": "کلیدی پیغام کا عنوان", - "supporting_message_label": "معاون پیغام", - "mitigate_risk": "خطرے کو کم کریں" + "supporting_message_label": "معاون پیغام" }, "message_editor": { "title": "ایٹریبیوشن ایڈیٹر", @@ -619,7 +618,7 @@ "bad_request_error_codes": { "30001": "کالم کی سرخیاں نمونے سے مماثل نہیں ہیں", "30002": "صفات کے نام، پیغام اور یو آر ایل گُم ہیں", - "30003": "غیر لاگو صفات یو آر ایل - براہِ مہربانی یقینی بنائیں کہ پروٹوکول موجود ہے، مثلاً http//: وغیرہ", + "30003": "غیر لاگو صفات یو آر ایل - براہِ مہربانی یقینی بنائیں کہ پروٹوکول موجود ہے، مثلاً http\/\/: وغیرہ", "40001": "ناموزوں ملکی کوڈ فراہم کیا گیا", "40002": "منتخب کی گئی سوسائٹی منتخب کی گئی فائل سے مماثلت نہیں رکھتی", "40003": "وہ تاریخ جس کو منتخب شدہ فائل برآمد کی تھی ناقص ہو چکی ہے اور درآمد مکمل نہیں ہو سکی" @@ -690,7 +689,7 @@ }, "landing": { "strapline": "سیفٹی میسج ڈیٹابیس سروس", - "strapline_part_2": "عالمی ریڈ کراس / ہلالِ احمر کے کلیدی حفاظتی پیغامات", + "strapline_part_2": "عالمی ریڈ کراس \/ ہلالِ احمر کے کلیدی حفاظتی پیغامات", "head_1": "آئی ایف آر سی سیفٹی", "head_2": "پیغامات کا ڈیٹابیس", "head_text_1": "سیفٹی میسجز آئی ایف آر سی کی عوامی بیداری اور", @@ -745,7 +744,7 @@ "fake_alert_heading": "انتباہ برائے شدید سردی", "fake_alert_description": "Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est.", "fake_alert_time": "1 گھنٹہ قبل", - "fake_alert_time_exact": "05/02/18 کو 05:15 سی ٹی پر", + "fake_alert_time_exact": "05\/02\/18 کو 05:15 سی ٹی پر", "use_cases": { "heading": "مزید جانیں", "first_heading": "یہ کیسے کام کرتا ہے", @@ -786,7 +785,7 @@ }, "data_preview": { "heading": "سیفٹی میسجز", - "sub_heading": "سائن اپ کریں اور دنیا بھر میں ریڈ کراس / ہلالِ احمر قومی سوسائٹی کے کلیدی پیغامات دیکھیں" + "sub_heading": "سائن اپ کریں اور دنیا بھر میں ریڈ کراس \/ ہلالِ احمر قومی سوسائٹی کے کلیدی پیغامات دیکھیں" }, "footer": { "terms_conditions": "شرائط و ضوابط", @@ -842,10 +841,10 @@ "industries": { "media": "میڈیا", "emergency": "ہنگامی حالات کے انتظامات", - "non_profit": "غیر منافع بخش/این جی او", + "non_profit": "غیر منافع بخش\/این جی او", "humanitarian": "انسان دوست تنظیم", - "red_cross": "ریڈ کراس/ ہلالِ احمر", - "education": "تعلیم/ تعلیمی ادارے", + "red_cross": "ریڈ کراس\/ ہلالِ احمر", + "education": "تعلیم\/ تعلیمی ادارے", "gov": "سرکاری ایجنسی", "other": "دیگر" }, @@ -860,9 +859,9 @@ "body": "اس معاہدے کے تحت کولمبیا کے ضلع کے قوانین میں اختلافات کے اصولوں کو اثر دیئے بغیر تمام حقوق اور ذمہ داریوں پر عمل کریں گے۔", "heading": "قابل اطلاق قانون:" }, - "body": "آپ ریڈ کراس کی طرف سے فراہم کی گئی رجسٹریشن کی کلید کی رازداری اور سلامتی کو برقرار رکھنے کے ذمہ دار ہیں۔ ڈیٹا فیڈ کے حصول کو جاری رکھنے کے لیئے آپ اے پی ای کے ساتھ مطابقت برقرار رکھنے کے ذمہ دار ہیں ، جیسا کہ وقت بہ وقت تازہ کیا جاتا ہے۔ ریڈ کراس اس کی واحد صوابدید پر اے پی ای اور ڈیٹا فیڈ کے تازہ ترین ورژن جاری کر سکتے ہیں۔ ہو سکتا ہے کہ نئے ورژن پچھلے نفاذات کے ساتھ ہم آہنگ نہ ہوں, اور آپ ڈیٹا فیڈ کے تازہ ترین ورژن کے استعمال پر اتفاق کرتے ہیں۔\n\nآپ اے پی آئی کے کسی بھی حصے یا ہلالِ احمر کے کسی بھی سافٹ وئیر میں ترمیم، تقسیم، غیر مرتب، بکھراؤ، یا ریورس انجئینرنگ۔\n\nآپ اے پی ای یا ڈیٹا فیڈ کو اس طرح استعمال نہیں کر سکتے کہ وہ قابلِ جواز درخواست کردہ حجم سے زیادہ ہو، یا ضرورت سے زیادہ استعمال یا غلط استعمال شامل ہے جیسا کہ ہلالَ احمر اپنی واحد صوابدید پر مقرر کرتا ہے۔\n\nآپ اے پی آئی یا ڈیٹا فیڈ کو اس انداز میں استعمال نہیں کر سکتے ہیں کہ وہ غیر قانونی ، گمراہ کن ، غیر محتاط ، بامقصد نقصان پہنچانے والا ، یا یہ نقصان ریڈ کراس، اس کی خدمات پہنچانے والے، اس کا مواد پہنچانے والے، یا دیگر کوئی شخص، جو کہ ریڈ کراس کی واحد صوابدید پر مقرر کیا گیا ہے۔\n\nریڈ کراس آپ کے پی آئی اور ڈیٹا فیڈ کو استعمال کرنے کی نگرانی کر سکتا ہے۔ آپ اس طرح کی نگرانی کے ساتھ مداخلت کرنے کے لئے کسی بھی تکنیکی ذریعہ کا استعمال نہیں کر سکتے ہیں ، اور ریڈ کراس کسی بھی ایسی مداخلت پر قابو پانے کے لئے تکنیکی وسائل کا استعمال کرسکتا ہے۔\n\nتیار کرنے ، جواب دینے اور پیغامات کی وصولی کے استعمال سے مربوط ایونٹ الرٹ کے اس وقت کے موجودہ فوری ترتیب میں صرف موجودہ یا اپ ڈیٹ کیا جائے گا ، اور آپ کو انفرادی تیاری ، جواب دینے ، اور کسی بھی اپ ڈیٹ پر پیغامات کو اپ ڈیٹ کرنے کی ضرورت ہوگی ڈیٹا فیڈ اور/یا اس سے مربوط واقعہ انتباہات ریڈ کراس کی طرف سے۔\n\nانفرادی طور پر تیاری ، ردعمل، اور بحالی پیغامات جو کہ آپ استعمال کرتے ہیں، صرف اور صرف ان جغرافیائی علاقوں سے متعلق کرنا چاہیئے جن کے لیئے یہ پیغامات جاری کیئے گئے ہیں۔ اگر ایک تیاری، ردعمل، اور بحالی پیغامات میں کسی ذریعے کا حوالہ شامل ہو، جیسا کہ امریکن ریڈ کراس، یا دیگر ریڈ کراس یا ہلالِ احمر قومی سوسائٹی یا تنظیم (ہر ایک \"ذریعے کا حوالہ\")، تو آپ کو ڈیٹا فیڈ میں فراہم کی گئی شکل میں ذریعے کے حوالے کو تیاری، ردعمل، اور بحالی کے پیغامات میں شامل کرنا ہو گا۔ آپ کو کسی بھی ذریعے کے حوالے کا مزید استعمال نہیں کرنا چاہیئے۔\n\nآپ ڈیٹا فیڈز، ایونٹ کے انتباہ، اور/یا تیاری، ردعمل، اور بحالی کے پیغامات کا کسی دوسری زبان میں ترجمہ نہیں کر سکتے، ڈیٹا فیڈز، ایونٹ کے انتباہ اور/یا تیاری، ردعمل اور بحالی کے پیغامات کا کسی قسم کا استعمال، ترمیم یا نظر ثانی، یا ان کے مفہوم تبدیل نہیں کر سکتے۔\n\nآپ کو لازمی طور پر یہ یقینی بنانا چاہیئے کہ ڈیٹا فیڈز، آپ کی واحد ملکیت اور/یا انضباط میں رہیں۔\n\nآپ آخری صارفین کو ایونٹ کے انتباہ اور تیاری، ردعمل اور بحالی کے پیغامات، کسی قسم کی اشتہار بازی یا ضمانت کے لیئے استعمال کرنے کی اجازت نہیں دے سکتے۔\n\nآپ مکمل طور پر یا جزوی طور پر اعداد و شمار کو محفوظ نہیں کر سکتے ہیں۔", + "body": "آپ ریڈ کراس کی طرف سے فراہم کی گئی رجسٹریشن کی کلید کی رازداری اور سلامتی کو برقرار رکھنے کے ذمہ دار ہیں۔ ڈیٹا فیڈ کے حصول کو جاری رکھنے کے لیئے آپ اے پی ای کے ساتھ مطابقت برقرار رکھنے کے ذمہ دار ہیں ، جیسا کہ وقت بہ وقت تازہ کیا جاتا ہے۔ ریڈ کراس اس کی واحد صوابدید پر اے پی ای اور ڈیٹا فیڈ کے تازہ ترین ورژن جاری کر سکتے ہیں۔ ہو سکتا ہے کہ نئے ورژن پچھلے نفاذات کے ساتھ ہم آہنگ نہ ہوں, اور آپ ڈیٹا فیڈ کے تازہ ترین ورژن کے استعمال پر اتفاق کرتے ہیں۔\n\nآپ اے پی آئی کے کسی بھی حصے یا ہلالِ احمر کے کسی بھی سافٹ وئیر میں ترمیم، تقسیم، غیر مرتب، بکھراؤ، یا ریورس انجئینرنگ۔\n\nآپ اے پی ای یا ڈیٹا فیڈ کو اس طرح استعمال نہیں کر سکتے کہ وہ قابلِ جواز درخواست کردہ حجم سے زیادہ ہو، یا ضرورت سے زیادہ استعمال یا غلط استعمال شامل ہے جیسا کہ ہلالَ احمر اپنی واحد صوابدید پر مقرر کرتا ہے۔\n\nآپ اے پی آئی یا ڈیٹا فیڈ کو اس انداز میں استعمال نہیں کر سکتے ہیں کہ وہ غیر قانونی ، گمراہ کن ، غیر محتاط ، بامقصد نقصان پہنچانے والا ، یا یہ نقصان ریڈ کراس، اس کی خدمات پہنچانے والے، اس کا مواد پہنچانے والے، یا دیگر کوئی شخص، جو کہ ریڈ کراس کی واحد صوابدید پر مقرر کیا گیا ہے۔\n\nریڈ کراس آپ کے پی آئی اور ڈیٹا فیڈ کو استعمال کرنے کی نگرانی کر سکتا ہے۔ آپ اس طرح کی نگرانی کے ساتھ مداخلت کرنے کے لئے کسی بھی تکنیکی ذریعہ کا استعمال نہیں کر سکتے ہیں ، اور ریڈ کراس کسی بھی ایسی مداخلت پر قابو پانے کے لئے تکنیکی وسائل کا استعمال کرسکتا ہے۔\n\nتیار کرنے ، جواب دینے اور پیغامات کی وصولی کے استعمال سے مربوط ایونٹ الرٹ کے اس وقت کے موجودہ فوری ترتیب میں صرف موجودہ یا اپ ڈیٹ کیا جائے گا ، اور آپ کو انفرادی تیاری ، جواب دینے ، اور کسی بھی اپ ڈیٹ پر پیغامات کو اپ ڈیٹ کرنے کی ضرورت ہوگی ڈیٹا فیڈ اور\/یا اس سے مربوط واقعہ انتباہات ریڈ کراس کی طرف سے۔\n\nانفرادی طور پر تیاری ، ردعمل، اور بحالی پیغامات جو کہ آپ استعمال کرتے ہیں، صرف اور صرف ان جغرافیائی علاقوں سے متعلق کرنا چاہیئے جن کے لیئے یہ پیغامات جاری کیئے گئے ہیں۔ اگر ایک تیاری، ردعمل، اور بحالی پیغامات میں کسی ذریعے کا حوالہ شامل ہو، جیسا کہ امریکن ریڈ کراس، یا دیگر ریڈ کراس یا ہلالِ احمر قومی سوسائٹی یا تنظیم (ہر ایک \"ذریعے کا حوالہ\")، تو آپ کو ڈیٹا فیڈ میں فراہم کی گئی شکل میں ذریعے کے حوالے کو تیاری، ردعمل، اور بحالی کے پیغامات میں شامل کرنا ہو گا۔ آپ کو کسی بھی ذریعے کے حوالے کا مزید استعمال نہیں کرنا چاہیئے۔\n\nآپ ڈیٹا فیڈز، ایونٹ کے انتباہ، اور\/یا تیاری، ردعمل، اور بحالی کے پیغامات کا کسی دوسری زبان میں ترجمہ نہیں کر سکتے، ڈیٹا فیڈز، ایونٹ کے انتباہ اور\/یا تیاری، ردعمل اور بحالی کے پیغامات کا کسی قسم کا استعمال، ترمیم یا نظر ثانی، یا ان کے مفہوم تبدیل نہیں کر سکتے۔\n\nآپ کو لازمی طور پر یہ یقینی بنانا چاہیئے کہ ڈیٹا فیڈز، آپ کی واحد ملکیت اور\/یا انضباط میں رہیں۔\n\nآپ آخری صارفین کو ایونٹ کے انتباہ اور تیاری، ردعمل اور بحالی کے پیغامات، کسی قسم کی اشتہار بازی یا ضمانت کے لیئے استعمال کرنے کی اجازت نہیں دے سکتے۔\n\nآپ مکمل طور پر یا جزوی طور پر اعداد و شمار کو محفوظ نہیں کر سکتے ہیں۔", "contact": "اے پی ای کے بارے میں کسی بھی سوال کے ساتھ {0} پر ریڈ کراس سے رابطہ کریں۔", - "disclaimer": "اے پی آئی اور اعداد و شمار صرف معلومات اور تعلیمی مقاصد کے لئے فراہم کیئے جاتے ہیں، اور 'جیسا ہے' اور 'جیسا دستیاب ہے' کی بنیاد پر میسر ہیں۔ ہلالِ احمر کسی بھی قسم، نظر آتی یا مضمر کی کوئی نمائندگی یا ضمانت نہیں دیتا۔ ہلالِ احمر تمام قسم کی ضمانتوں سے لاعلمی کا اظہار کرتا ہے، نظر آتی یا مضمر، بشمول لیکن مضمر ضمانتیں برائے فروختگی اور مخصوص مقصد کے لیئے قابلیت تک محدود نہ ہیں۔ ہلالِ احمر اور اس کے ملازمین، افسران ، گورنر اور ایجنٹوں اور لائسنس کے اے پی ای کے استعمال سے پیدا ہونے والے کسی بھی قسم کے نقصانات کے لئے ذمہ دار نہیں ہوں گے، ڈیٹا فیڈ ، ایونٹ الرٹ ، اور/یا تیار کرنے ، جواب دینے ، اور پیغامات کی وصولی ، بشمول براہ راست ، بالواسطہ ، اتفاقی ، تادیبی اور نتیجے میں نقصانات تک محدود نہیں۔\n\nہلالِ احمر ترتیب ، درستگی ، صداقت یا اے پی آئی کے مکمل ہونے، ڈیٹا فیڈ, ایونٹ الرٹ اور/یا تیاری, ردعمل, اور پیغامات کی وصولی اور آپ یا آپ کے صارفین یا کسی بھی تیسرے فریق کے لئے کسی بھی طرح سے ذمہ دار تصور نہیں کیا جائے گا, بشمول بغیر حد کے، کسی بھی تاخیر کے لئے, غلطیوں یا بھول چوک کے لیئے, اے پی آئی کے سلسلے میں, ڈیٹا فیڈ, ایونٹ الرٹ اور/یا تیار, ردعمل اور بحالی پیغامات آگے چل کر فراہم کیئے گئے ہیں۔", + "disclaimer": "اے پی آئی اور اعداد و شمار صرف معلومات اور تعلیمی مقاصد کے لئے فراہم کیئے جاتے ہیں، اور 'جیسا ہے' اور 'جیسا دستیاب ہے' کی بنیاد پر میسر ہیں۔ ہلالِ احمر کسی بھی قسم، نظر آتی یا مضمر کی کوئی نمائندگی یا ضمانت نہیں دیتا۔ ہلالِ احمر تمام قسم کی ضمانتوں سے لاعلمی کا اظہار کرتا ہے، نظر آتی یا مضمر، بشمول لیکن مضمر ضمانتیں برائے فروختگی اور مخصوص مقصد کے لیئے قابلیت تک محدود نہ ہیں۔ ہلالِ احمر اور اس کے ملازمین، افسران ، گورنر اور ایجنٹوں اور لائسنس کے اے پی ای کے استعمال سے پیدا ہونے والے کسی بھی قسم کے نقصانات کے لئے ذمہ دار نہیں ہوں گے، ڈیٹا فیڈ ، ایونٹ الرٹ ، اور\/یا تیار کرنے ، جواب دینے ، اور پیغامات کی وصولی ، بشمول براہ راست ، بالواسطہ ، اتفاقی ، تادیبی اور نتیجے میں نقصانات تک محدود نہیں۔\n\nہلالِ احمر ترتیب ، درستگی ، صداقت یا اے پی آئی کے مکمل ہونے، ڈیٹا فیڈ, ایونٹ الرٹ اور\/یا تیاری, ردعمل, اور پیغامات کی وصولی اور آپ یا آپ کے صارفین یا کسی بھی تیسرے فریق کے لئے کسی بھی طرح سے ذمہ دار تصور نہیں کیا جائے گا, بشمول بغیر حد کے، کسی بھی تاخیر کے لئے, غلطیوں یا بھول چوک کے لیئے, اے پی آئی کے سلسلے میں, ڈیٹا فیڈ, ایونٹ الرٹ اور\/یا تیار, ردعمل اور بحالی پیغامات آگے چل کر فراہم کیئے گئے ہیں۔", "entire_agreement": { "body": "اے پی آئی کی شرائط متن کے موضوع کے حوالے سے ہلالِ احمر اور آپ کے درمیان مکمل اور خصوصی معاہدے کی حامل ہیں اور پہلے سے موجود تمام زبانی اور لکھی گئی تفہیم، بات چیت اور سمجھوتوں جو خاص طور پر یہاں شامل نہیں ہیں پر فوقیت رکھتی ہیں۔ ریڈ کراس کسی بھی وقت اس معاہدے میں ترمیم یا منسوخی کا حق محفوظ رکھتا ہے۔", "heading": "مکمل معاہدہ:" @@ -870,7 +869,7 @@ "heading": "اے پی آئی اختتامی صارف لائسنسنگ معاہدہ", "intro": "اتفاق کریں: سروس کو استعمال کرتے ہوئے یا فراہم کردہ ڈبے پر نشان لگا کر ، صارف اس معاہدے کی طرف سے پابند ہونے سے متفق ہے۔\n\nاے پی آئی ایک ایسا آلہ ہے جو آپ (\"آپ\") کو ڈیٹا فیڈز بازیافت کرنے اور استعمال کرنے کی اجازت دیتا ہے جو ہلالِ احمر کی طرف سے دستیاب ہے بشمول ایک عالمی موسمیاتی اور آفاتی واقعے سے متعلق انتباہ اور یاداشتیں (\"ایونٹ الرٹ\") اور مقامی خطرات کو خطرے کی قسم اور فوری ضرورت (\"تیاری، ردعمل، اور بحالی پیغامات\"، اور مجموعی طور پر ایونٹ الرٹ اور \"ڈیٹا فیڈ\") پر قابل عمل اور پسِ منظر سے مربوط پیغامات فراہم کرتا ہے۔ تیاری ، جواب اور بحالی پیغامات کا مقصد واقعات کی تنبیہات یا دیگر انتباہات کے ساتھ ہونا ہے اور اپنی درخواست میں موسم اور تباہی کے واقعات سے وابستہ یاداشتیں دیکھنا ہے۔ آپ کا ڈیٹا فیڈ کا استعمال اے پی آئی کی شرائط کے تحت ہے۔", "license_limitations": { - "body": "آپ صرف اے پی آئی کی شرائط کے تحت اپنی درخواست کے ساتھ مل کر ڈیٹا فیڈز کا استعمال کرسکتے ہیں ، بشرطیکہ آپ وقتا فوقتا اپ ڈیٹ کے مطابق اے پی آئی کے ساتھ مطابقت برقرار رکھیں۔ آپ کو ایک غیر مخصوص، محدود اور قابلِ تنسیخ حق دیا گیا ہے کہ آپ ڈاؤنلوڈ کر سکیں، استعمال کر سکیں، دوبارہ بنا سکیں اور آپ کی اپنی اپلیکیشن کے آخری صارفین کو بانٹ سکیں (\"آخری صارفین\") واقعہ کا انتباہ اور اس کے متعلقہ سیاق و سباق میں تیاری، ردعمل اور بحالی کے پیغامات بمع ڈیٹا فیڈ سے فوری انفرادی واقعہ کے انتباہ کی ترتیب، اے پی آئی کی شرائط سے مشروط ہیں۔ آپ اے پی آئی کی شرائط کے مطابق ڈیٹا فیڈ کے غیر تجارتی استعمال میں آسانی کے لئے صرف اے پی آئی کا استعمال کرسکتے ہیں۔ آپ کسی بھی واقعہ میں ڈیٹا فیڈز کے تجارتی استعمال کو سہولت دینے کے لیئے اے پی آئی استعمال نہیں کر سکتے، واقعہ کے انتباہات اور/یا تیاری، ردعمل، اور بحالی کے پیغامات، بشمول بغیر حد، انہیں بیچنا، ان تک رسائی کا معاوضہ لینا، ان کو بانٹنے کا معاوضہ لینا، یا ان پر مشتمل ماخوذ کاموں کو تخلیق کرنے کا معاوضہ لینا۔ ریڈ کراس اور اس کے لائسنس دینے والے تمام عنوان، ملکیت، اے پی آئی میں اور اے پی آئی کے حقوق اور مفاد، تیاری، ردعمل ، اور بحالی پیغامات، واقعہ کی انتباہات، ڈیٹا فیڈز اور ماخذ حوالہ جات (جیسا کہ ذیل میں بیان کردہ ہیں) محفوظ رکھتے ہیں۔ تمام حقوق جو واضح طور پر نہیں دیئے جاتے ہیں وہ محفوظ ہیں۔", + "body": "آپ صرف اے پی آئی کی شرائط کے تحت اپنی درخواست کے ساتھ مل کر ڈیٹا فیڈز کا استعمال کرسکتے ہیں ، بشرطیکہ آپ وقتا فوقتا اپ ڈیٹ کے مطابق اے پی آئی کے ساتھ مطابقت برقرار رکھیں۔ آپ کو ایک غیر مخصوص، محدود اور قابلِ تنسیخ حق دیا گیا ہے کہ آپ ڈاؤنلوڈ کر سکیں، استعمال کر سکیں، دوبارہ بنا سکیں اور آپ کی اپنی اپلیکیشن کے آخری صارفین کو بانٹ سکیں (\"آخری صارفین\") واقعہ کا انتباہ اور اس کے متعلقہ سیاق و سباق میں تیاری، ردعمل اور بحالی کے پیغامات بمع ڈیٹا فیڈ سے فوری انفرادی واقعہ کے انتباہ کی ترتیب، اے پی آئی کی شرائط سے مشروط ہیں۔ آپ اے پی آئی کی شرائط کے مطابق ڈیٹا فیڈ کے غیر تجارتی استعمال میں آسانی کے لئے صرف اے پی آئی کا استعمال کرسکتے ہیں۔ آپ کسی بھی واقعہ میں ڈیٹا فیڈز کے تجارتی استعمال کو سہولت دینے کے لیئے اے پی آئی استعمال نہیں کر سکتے، واقعہ کے انتباہات اور\/یا تیاری، ردعمل، اور بحالی کے پیغامات، بشمول بغیر حد، انہیں بیچنا، ان تک رسائی کا معاوضہ لینا، ان کو بانٹنے کا معاوضہ لینا، یا ان پر مشتمل ماخوذ کاموں کو تخلیق کرنے کا معاوضہ لینا۔ ریڈ کراس اور اس کے لائسنس دینے والے تمام عنوان، ملکیت، اے پی آئی میں اور اے پی آئی کے حقوق اور مفاد، تیاری، ردعمل ، اور بحالی پیغامات، واقعہ کی انتباہات، ڈیٹا فیڈز اور ماخذ حوالہ جات (جیسا کہ ذیل میں بیان کردہ ہیں) محفوظ رکھتے ہیں۔ تمام حقوق جو واضح طور پر نہیں دیئے جاتے ہیں وہ محفوظ ہیں۔", "heading": "لائسنس اور حدود:" }, "overview": { @@ -889,7 +888,7 @@ "two": "ریڈ کراس یا اے پی آئی کے ذریعہ استعمال کردہ کوئی بھی کلیدیں یا سیکیورٹی میکانزم کو روکنے یا ان میں ترمیم کرنا ، بشمول کسی حد تک تصدیق کے ٹیکنالوجی کو شامل کرنا۔", "three": "آپ کے اپنے اکاؤنٹ کے لئے جو چیز آپ کو فراہم کی جاتی ہے اس کے علاوہ ، ریڈ کراس کے لئے سائن ان نام ، پاس ورڈ یا تصدیق نامہ کے دیگر سندوں سے درخواست کرنے ، جمع کرنے ، مانگنے یا دوسری صورت میں رسائی حاصل کرنے کے لئے۔", "four": "ریڈ کراس یا کسی دوسرے ریڈ کراس یا ہلالِ احمر قومی سوسائٹی یا تنظیم کے ذریعہ وابستگی ، اس کی کفالت یا توثیق کرنا۔", - "five": "یہ بیان کرنا یا دلالت کرنا کہ آپ اے پی آئی، ڈیٹا فیڈز، واقعہ کے انتباہات اور/یا تیاری، ردعمل، اور بحالی پیغامات کی ملکیت رکھتے ہیں۔", + "five": "یہ بیان کرنا یا دلالت کرنا کہ آپ اے پی آئی، ڈیٹا فیڈز، واقعہ کے انتباہات اور\/یا تیاری، ردعمل، اور بحالی پیغامات کی ملکیت رکھتے ہیں۔", "six": "کوئی بھی وائرس، وارم نقائص، تروجن ہارسز، یا کوئی بھی تخریبی فطرت کی چیز ڈالنا۔" } }, @@ -899,7 +898,7 @@ "heading": "علیٰحدگی پزیری اور دستبرداری:" }, "suspension": { - "body": "اگر ریڈ کراس کو لگتا ہے کہ آپ اے پی آئی یا ڈیٹا فیڈز کے ناجائز استعمال میں مصروف ہیں جیسا کہ اے پی آئی کی شرائط میں واضح کیا گیا ہے یا یہ کہ آپ اے پی آئی یا ڈیٹا فیڈز کا استعمال ایسی سرگرمی میں کر رہے ہیں جو کسی شخص یا ریڈ کراس کے نیٹ ورک کی سلامتی اور/یا حفاظت کے لیئے خطرہ ہے تو ریڈ کراس اپنی واحد صوابدید میں حق محفوظ رکھتا ہے کہ وہ آپ کی رسائی ختم کر دے۔", + "body": "اگر ریڈ کراس کو لگتا ہے کہ آپ اے پی آئی یا ڈیٹا فیڈز کے ناجائز استعمال میں مصروف ہیں جیسا کہ اے پی آئی کی شرائط میں واضح کیا گیا ہے یا یہ کہ آپ اے پی آئی یا ڈیٹا فیڈز کا استعمال ایسی سرگرمی میں کر رہے ہیں جو کسی شخص یا ریڈ کراس کے نیٹ ورک کی سلامتی اور\/یا حفاظت کے لیئے خطرہ ہے تو ریڈ کراس اپنی واحد صوابدید میں حق محفوظ رکھتا ہے کہ وہ آپ کی رسائی ختم کر دے۔", "heading": "معطلی یا خاتمہ:" } }, diff --git a/resources/lang/vi.json b/resources/lang/vi.json index 782ae7e..d861dcf 100644 --- a/resources/lang/vi.json +++ b/resources/lang/vi.json @@ -40,7 +40,7 @@ "name": "Tên", "first_name": "Tên", "last_name": "Họ", - "toggle_navigation": "Bật/tắt điều hướng", + "toggle_navigation": "Bật\/tắt điều hướng", "you_are_logged_in": "Bạn đã đăng nhập!", "reset_password": "Cài lại mật khẩu", "set_password": "Cài mật khẩu", @@ -197,15 +197,13 @@ "steps": { "one": { "heading": "Bước 1: Đăng ký", - "body": "Để bắt đầu sử dụng dữ liệu từ API Cơ sở dữ liệu Tin nhắn An toàn, trước tiên {0} vào Cổng thông tin Cơ sở dữ liệu Tin nhắn An toàn.\n\nBạn có thể sử dụng tài khoản Facebook & Google hoặc địa chỉ email để tạo tài khoản.", - "create_account_alt": "tạo tài khoản", + "body": "Để bắt đầu sử dụng dữ liệu từ API Cơ sở dữ liệu Tin nhắn An toàn, trước tiên {0} vào Cổng thông tin Cơ sở dữ liệu Tin nhắn An toàn.\n\nBạn có thể sử dụng tài khoản Facebook & Google hoặc địa chỉ email để tạo tài khoản.", "create_account_alt": "tạo tài khoản", "existing_account": "Nếu bạn đã có tài khoản, hãy {0}.", "login_cta": "đăng nhập", "sign_up_cta": "đăng ký" }, "two": { - "body": "Để sử dụng API, bạn phải tạo một ứng dụng trong Cổng thông tin Cơ sở dữ liệu Tin nhắn An toàn. Hãy cho chúng tôi biết một chút về những gì bạn đang xây dựng.", - "create_app_alt": "tạo ứng dụng", + "body": "Để sử dụng API, bạn phải tạo một ứng dụng trong Cổng thông tin Cơ sở dữ liệu Tin nhắn An toàn. Hãy cho chúng tôi biết một chút về những gì bạn đang xây dựng.", "create_app_alt": "tạo ứng dụng", "heading": "Bước 2: Tạo ứng dụng" }, "three": { @@ -216,8 +214,7 @@ }, "four": { "api_docs_cta": "Tài liệu API", - "body": "API Cơ sở dữ liệu Tin nhắn An toàn sử dụng HTTP(S) và cung cấp các điểm cuối RESTful để lấy dữ liệu đã xuất bản.\n\nMỗi yêu cầu phải được xác thực bằng khóa API được tạo ở bước trước.", - "example_title": "Ví dụ yêu cầu", + "body": "API Cơ sở dữ liệu Tin nhắn An toàn sử dụng HTTP(S) và cung cấp các điểm cuối RESTful để lấy dữ liệu đã xuất bản.\n\nMỗi yêu cầu phải được xác thực bằng khóa API được tạo ở bước trước.", "example_title": "Ví dụ yêu cầu", "heading": "Bước 4: Làm yêu cầu", "moreInfo": "Xem {0} để biết thêm thông tin về tất cả điểm cuối API." } @@ -441,9 +438,9 @@ "immediate": "Ngay lập tức", "warning": "Cảnh báo", "anticipated": "Dự kiến", - "assess_and_plan": "Đánh giá và Lập kế hoạch", - "mitigate_risks": "Giảm thiểu Rủi ro", - "prepare_to_respond": "Chuẩn bị ứng phó", + "assess_and_plan":"Đánh giá và Lập kế hoạch", + "mitigate_risks":"Giảm thiểu Rủi ro", + "prepare_to_respond":"Chuẩn bị ứng phó", "recover": "Phục hồi" }, "content": { @@ -558,8 +555,7 @@ "content_edit_title": "Chỉnh sửa nội dung", "content_add_hazard_title": "Thêm nguy hiểm", "key_message_label": "Tiêu đề tin nhắn chính", - "supporting_message_label": "Tin nhắn hỗ trợ", - "mitigate_risk": "Giảm thiểu Rủi ro" + "supporting_message_label": "Tin nhắn hỗ trợ" }, "message_editor": { "title": "Trình chỉnh sửa Ghi công", @@ -619,7 +615,7 @@ "bad_request_error_codes": { "30001": "Tiêu đề cột không khớp với tiêu bản", "30002": "Tên đặc tính, tin nhắn hoặc url bị thiếu", - "30003": "Đặc tính Url không hợp lệ - hãy đảm bảo rằng giao thức có sẵn, ví dụ: https: //", + "30003": "Đặc tính Url không hợp lệ - hãy đảm bảo rằng giao thức có sẵn, ví dụ: https: \/\/", "40001": "Mã quốc gia không hợp lệ", "40002": "Hiệp hội được chọn không khớp với hiệp hội trong tệp đã chọn", "40003": "Ngày xuất tệp đã chọn không đúng nên không thể hoàn tất việc nhập vào" @@ -690,7 +686,7 @@ }, "landing": { "strapline": "Dịch vụ Cơ sở dữ liệu Tin nhắn An toàn", - "strapline_part_2": "Thông điệp an toàn chính của hội Chữ thập đỏ / Trăng lưỡi liềm đỏ toàn cầu", + "strapline_part_2": "Thông điệp an toàn chính của hội Chữ thập đỏ \/ Trăng lưỡi liềm đỏ toàn cầu", "head_1": "An toàn IFRC", "head_2": "Cơ sở dữ liệu Tin nhắn", "head_text_1": "Tin nhắn an toàn dựa trên Nhận thức Cộng đồng của IFRC và", @@ -745,7 +741,7 @@ "fake_alert_heading": "Cảnh báo cực lạnh", "fake_alert_description": "Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est.", "fake_alert_time": "CÁCH ĐÂY 1 GIỜ", - "fake_alert_time_exact": "05/02/2018 lúc 05:15 CT", + "fake_alert_time_exact": "05\/02\/2018 lúc 05:15 CT", "use_cases": { "heading": "Tìm hiểu thêm", "first_heading": "Cách nó hoạt động", @@ -786,7 +782,7 @@ }, "data_preview": { "heading": "Tin nhắn An toàn", - "sub_heading": "Đăng ký và xem các thông điệp hành động chính của các Hiệp hội quốc gia Chữ thập đỏ / Trăng lưỡi liềm đỏ trên toàn thế giới" + "sub_heading": "Đăng ký và xem các thông điệp hành động chính của các Hiệp hội quốc gia Chữ thập đỏ \/ Trăng lưỡi liềm đỏ trên toàn thế giới" }, "footer": { "terms_conditions": "Điều khoản & điều kiện", @@ -842,10 +838,10 @@ "industries": { "media": "Đa phương tiện", "emergency": "Quản lý khẩn cấp", - "non_profit": "Phi lợi nhuận / NGO", + "non_profit": "Phi lợi nhuận \/ NGO", "humanitarian": "Tổ chức Nhân đạo", - "red_cross": "Chữ thập đỏ / Trăng lưỡi liềm đỏ", - "education": "Giáo dục / Học viện", + "red_cross": "Chữ thập đỏ \/ Trăng lưỡi liềm đỏ", + "education": "Giáo dục \/ Học viện", "gov": "Cơ quan chính phủ", "other": "Khác" }, @@ -860,9 +856,9 @@ "body": "Luật của Đặc khu Columbia sẽ điều chỉnh tất cả các quyền và nghĩa vụ theo Thỏa thuận này, mà không ảnh hưởng đến bất kỳ nguyên tắc xung đột pháp luật nào.", "heading": "Luật áp dụng:" }, - "body": "Bạn có trách nhiệm duy trì tính bí mật và bảo mật của khóa đăng ký do Hội Chữ thập Đỏ cung cấp cho Bạn. Bạn chịu trách nhiệm duy trì khả năng tương thích với API, được cập nhật theo thời gian, để tiếp tục nhận được Nguồn cấp dữ liệu. Hội Chữ thập Đỏ có thể phát hành các phiên bản cập nhật của API và Nguồn cấp dữ liệu theo quyết định riêng của mình. Các phiên bản mới có thể không tương thích với các triển khai trước đó và Bạn đồng ý sử dụng phiên bản cập nhật gần đây nhất của Nguồn cấp dữ liệu.\n\nBạn đồng ý không sửa đổi, phân phối, dịch ngược, tháo rời hoặc thiết kế đối chiếu bất kỳ phần nào của API hoặc bất kỳ phần mềm nào của Hội Chữ thập Đỏ.\n\nBạn không được sử dụng API hoặc Nguồn cấp dữ liệu theo cách vượt quá khối lượng yêu cầu hợp lý hoặc cấu thành việc sử dụng quá mức hoặc lạm dụng, theo quyết định riêng của Hội Chữ thập đỏ.\n\nBạn không được sử dụng API hoặc Nguồn cấp dữ liệu theo cách bất hợp pháp, gây hiểu lầm, cẩu thả, độc hại, có ý định gây hại hoặc gây hại cho Hội Chữ thập đỏ, các nhà cung cấp dịch vụ, nhà cung cấp nội dung của Hội chữ thập đỏ hoặc bất kỳ người nào khác, theo quyết định của Hội Chữ thập Đỏ theo quyết định của riêng mình.\n\n\nChữ thập đỏ có thể giám sát việc sử dụng API và Nguồn cấp dữ liệu của bạn. Bạn không được sử dụng bất kỳ phương tiện kỹ thuật nào để can thiệp vào việc giám sát đó, và Hội Chữ thập đỏ có thể sử dụng các phương tiện kỹ thuật để khắc phục bất kỳ sự can thiệp nào như vậy.\n\nViệc sử dụng các Thông báo Chuẩn bị, Trả lời và Khôi phục sẽ chỉ được trình bày dưới dạng hiện tại hoặc được cập nhật theo cài đặt khẩn cấp hiện tại của Cảnh báo sự kiện tương ứng và bạn sẽ cập nhật các Thông báo Chuẩn bị, Trả lời và Khôi phục riêng lẻ khi có bất kỳ bản cập nhật nào của Nguồn cấp dữ liệu và / hoặc Cảnh báo sự kiện tương quan của Hội Chữ thập đỏ.\n\nCác Tin nhắn Soạn thảo, Trả lời và Khôi phục Cá nhân Bạn sử dụng sẽ chỉ được liên kết với khu vực địa lý mà nó được phát hành. Nếu một Thông báo Chuẩn bị, Trả lời và Phục hồi bao gồm tham chiếu đến một nguồn như Hội Chữ thập đỏ Hoa Kỳ hoặc một tổ chức hoặc xã hội quốc gia Chữ thập đỏ hoặc Trăng lưỡi liềm đỏ khác (mỗi một \"Nguồn tham khảo\"), Bạn sẽ bao gồm Tham chiếu Nguồn được liên kết với mỗi Chuẩn bị, Trả lời và Khôi phục Thư ở dạng được cung cấp trong Nguồn cấp dữ liệu. Bạn sẽ không sử dụng thêm bất kỳ Tham chiếu Nguồn nào.\n\nBạn không được dịch Nguồn cấp dữ liệu, Cảnh báo sự kiện và / hoặc Chuẩn bị, Trả lời và Khôi phục thông báo sang bất kỳ ngôn ngữ nào khác, sử dụng, chỉnh sửa hoặc sửa đổi hoặc thay đổi (các) ý nghĩa của Nguồn cấp dữ liệu, Cảnh báo sự kiện và / hoặc Chuẩn bị, Trả lời và Khôi phục Tin nhắn.\n\nBạn phải đảm bảo rằng Nguồn cấp dữ liệu, vẫn thuộc quyền sở hữu và / hoặc quyền kiểm soát duy nhất của bạn.\n\nBạn không thể cho phép Thông báo Sự kiện và Chuẩn bị, Trả lời và Khôi phục Thông báo được gửi đến Người dùng Cuối để kết hợp bất kỳ quảng cáo hoặc tài trợ nào.\n\nBạn không được phép lưu trữ toàn bộ hoặc một phần Nguồn cấp dữ liệu.", + "body": "Bạn có trách nhiệm duy trì tính bí mật và bảo mật của khóa đăng ký do Hội Chữ thập Đỏ cung cấp cho Bạn. Bạn chịu trách nhiệm duy trì khả năng tương thích với API, được cập nhật theo thời gian, để tiếp tục nhận được Nguồn cấp dữ liệu. Hội Chữ thập Đỏ có thể phát hành các phiên bản cập nhật của API và Nguồn cấp dữ liệu theo quyết định riêng của mình. Các phiên bản mới có thể không tương thích với các triển khai trước đó và Bạn đồng ý sử dụng phiên bản cập nhật gần đây nhất của Nguồn cấp dữ liệu.\n\nBạn đồng ý không sửa đổi, phân phối, dịch ngược, tháo rời hoặc thiết kế đối chiếu bất kỳ phần nào của API hoặc bất kỳ phần mềm nào của Hội Chữ thập Đỏ.\n\nBạn không được sử dụng API hoặc Nguồn cấp dữ liệu theo cách vượt quá khối lượng yêu cầu hợp lý hoặc cấu thành việc sử dụng quá mức hoặc lạm dụng, theo quyết định riêng của Hội Chữ thập đỏ.\n\nBạn không được sử dụng API hoặc Nguồn cấp dữ liệu theo cách bất hợp pháp, gây hiểu lầm, cẩu thả, độc hại, có ý định gây hại hoặc gây hại cho Hội Chữ thập đỏ, các nhà cung cấp dịch vụ, nhà cung cấp nội dung của Hội chữ thập đỏ hoặc bất kỳ người nào khác, theo quyết định của Hội Chữ thập Đỏ theo quyết định của riêng mình.\n\n\nChữ thập đỏ có thể giám sát việc sử dụng API và Nguồn cấp dữ liệu của bạn. Bạn không được sử dụng bất kỳ phương tiện kỹ thuật nào để can thiệp vào việc giám sát đó, và Hội Chữ thập đỏ có thể sử dụng các phương tiện kỹ thuật để khắc phục bất kỳ sự can thiệp nào như vậy.\n\nViệc sử dụng các Thông báo Chuẩn bị, Trả lời và Khôi phục sẽ chỉ được trình bày dưới dạng hiện tại hoặc được cập nhật theo cài đặt khẩn cấp hiện tại của Cảnh báo sự kiện tương ứng và bạn sẽ cập nhật các Thông báo Chuẩn bị, Trả lời và Khôi phục riêng lẻ khi có bất kỳ bản cập nhật nào của Nguồn cấp dữ liệu và \/ hoặc Cảnh báo sự kiện tương quan của Hội Chữ thập đỏ.\n\nCác Tin nhắn Soạn thảo, Trả lời và Khôi phục Cá nhân Bạn sử dụng sẽ chỉ được liên kết với khu vực địa lý mà nó được phát hành. Nếu một Thông báo Chuẩn bị, Trả lời và Phục hồi bao gồm tham chiếu đến một nguồn như Hội Chữ thập đỏ Hoa Kỳ hoặc một tổ chức hoặc xã hội quốc gia Chữ thập đỏ hoặc Trăng lưỡi liềm đỏ khác (mỗi một \"Nguồn tham khảo\"), Bạn sẽ bao gồm Tham chiếu Nguồn được liên kết với mỗi Chuẩn bị, Trả lời và Khôi phục Thư ở dạng được cung cấp trong Nguồn cấp dữ liệu. Bạn sẽ không sử dụng thêm bất kỳ Tham chiếu Nguồn nào.\n\nBạn không được dịch Nguồn cấp dữ liệu, Cảnh báo sự kiện và \/ hoặc Chuẩn bị, Trả lời và Khôi phục thông báo sang bất kỳ ngôn ngữ nào khác, sử dụng, chỉnh sửa hoặc sửa đổi hoặc thay đổi (các) ý nghĩa của Nguồn cấp dữ liệu, Cảnh báo sự kiện và \/ hoặc Chuẩn bị, Trả lời và Khôi phục Tin nhắn.\n\nBạn phải đảm bảo rằng Nguồn cấp dữ liệu, vẫn thuộc quyền sở hữu và \/ hoặc quyền kiểm soát duy nhất của bạn.\n\nBạn không thể cho phép Thông báo Sự kiện và Chuẩn bị, Trả lời và Khôi phục Thông báo được gửi đến Người dùng Cuối để kết hợp bất kỳ quảng cáo hoặc tài trợ nào.\n\nBạn không được phép lưu trữ toàn bộ hoặc một phần Nguồn cấp dữ liệu.", "contact": "Vui lòng liên hệ với Hội Chữ thập đỏ tại {0} nếu có bất kỳ câu hỏi nào liên quan đến API.", - "disclaimer": "API và Nguồn cấp dữ liệu được cung cấp CHỈ CHO CÁC MỤC ĐÍCH VỀ THÔNG TIN VÀ GIÁO DỤC VÀ trên cơ sở 'nguyên trạng' và 'nếu có'. Hội Chữ thập Đỏ không tuyên bố hoặc bảo đảm dưới bất kỳ hình thức nào, rõ ràng hay ngụ ý. Hội chữ thập đỏ từ chối mọi bảo đảm, rõ ràng hay ngụ ý, bao gồm nhưng không giới hạn ở những bảo đảm ngụ ý về khả năng bán được và tính phù hợp cho một mục đích cụ thể. Hội Chữ thập Đỏ và các nhân viên, viên chức, thống đốc và các đại lý và người cấp phép sẽ không chịu trách nhiệm về những thiệt hại dưới bất kỳ hình thức nào phát sinh từ việc sử dụng API, Nguồn cấp dữ liệu, Cảnh báo sự kiện và / hoặc Chuẩn bị, Trả lời và Khôi phục Thông báo bao gồm nhưng không giới hạn đối với các thiệt hại trực tiếp, gián tiếp, ngẫu nhiên, trừng phạt và do hậu quả.\n\nHội Chữ thập Đỏ không đảm bảo trình tự, độ chính xác, tính xác thực hoặc tính hoàn chỉnh của API, Nguồn cấp dữ liệu, Cảnh báo sự kiện và / hoặc Chuẩn bị, Trả lời và Khôi phục Thông báo và sẽ không chịu trách nhiệm pháp lý dưới bất kỳ hình thức nào đối với Bạn hoặc Người dùng cuối của bạn hoặc bất kỳ bên thứ ba nào bên, bao gồm nhưng không giới hạn, đối với bất kỳ sự chậm trễ, không chính xác, lỗi hoặc thiếu sót nào, liên quan đến API, Nguồn cấp dữ liệu, Cảnh báo sự kiện và / hoặc Chuẩn bị, Trả lời và Khôi phục Thông báo được cung cấp dưới đây.", + "disclaimer": "API và Nguồn cấp dữ liệu được cung cấp CHỈ CHO CÁC MỤC ĐÍCH VỀ THÔNG TIN VÀ GIÁO DỤC VÀ trên cơ sở 'nguyên trạng' và 'nếu có'. Hội Chữ thập Đỏ không tuyên bố hoặc bảo đảm dưới bất kỳ hình thức nào, rõ ràng hay ngụ ý. Hội chữ thập đỏ từ chối mọi bảo đảm, rõ ràng hay ngụ ý, bao gồm nhưng không giới hạn ở những bảo đảm ngụ ý về khả năng bán được và tính phù hợp cho một mục đích cụ thể. Hội Chữ thập Đỏ và các nhân viên, viên chức, thống đốc và các đại lý và người cấp phép sẽ không chịu trách nhiệm về những thiệt hại dưới bất kỳ hình thức nào phát sinh từ việc sử dụng API, Nguồn cấp dữ liệu, Cảnh báo sự kiện và \/ hoặc Chuẩn bị, Trả lời và Khôi phục Thông báo bao gồm nhưng không giới hạn đối với các thiệt hại trực tiếp, gián tiếp, ngẫu nhiên, trừng phạt và do hậu quả.\n\nHội Chữ thập Đỏ không đảm bảo trình tự, độ chính xác, tính xác thực hoặc tính hoàn chỉnh của API, Nguồn cấp dữ liệu, Cảnh báo sự kiện và \/ hoặc Chuẩn bị, Trả lời và Khôi phục Thông báo và sẽ không chịu trách nhiệm pháp lý dưới bất kỳ hình thức nào đối với Bạn hoặc Người dùng cuối của bạn hoặc bất kỳ bên thứ ba nào bên, bao gồm nhưng không giới hạn, đối với bất kỳ sự chậm trễ, không chính xác, lỗi hoặc thiếu sót nào, liên quan đến API, Nguồn cấp dữ liệu, Cảnh báo sự kiện và \/ hoặc Chuẩn bị, Trả lời và Khôi phục Thông báo được cung cấp dưới đây.", "entire_agreement": { "body": "Các Điều Khoản này là thỏa thuận cuối cùng, đầy đủ và độc quyền của các bên liên quan đến vấn đề này và thay thế và hợp nhất tất cả các thảo luận trước đó giữa các bên liên quan đến vấn đề này. Hội Chữ thập đỏ có quyền sửa đổi hoặc thu hồi thỏa thuận này bất kỳ lúc nào.", "heading": "Toàn bộ thỏa thuận:" @@ -870,7 +866,7 @@ "heading": "API KẾT THÚC THỎA THUẬN CẤP PHÉP NGƯỜI DÙNG", "intro": "THỎA THUẬN: BẰNG CÁCH SỬ DỤNG DỊCH VỤ HOẶC KIỂM TRA HỘP ĐƯỢC CUNG CẤP, NGƯỜI DÙNG ĐỒNG Ý BỊ TRẢ LẠI THEO THỎA THUẬN NÀY.\n\nAPI là một công cụ cho phép bạn (“Bạn”) truy xuất và sử dụng nguồn cấp dữ liệu do Hội Chữ Thập Đỏ cung cấp, bao gồm nguồn cấp dữ liệu về cảnh báo thời tiết và thảm họa toàn cầu và thông báo xem (“Cảnh báo sự kiện”) và nguồn cấp dữ liệu có thể hành động và theo ngữ cảnh thông báo về cách chuẩn bị đối phó với các mối nguy hiểm cục bộ theo loại nguy cơ và mức độ khẩn cấp (“Chuẩn bị, Phản hồi và Khôi phục Thông báo” và gọi chung là Cảnh báo Sự kiện, “Nguồn cấp dữ liệu”). Thông báo Chuẩn bị, Phản hồi và Khôi phục được tạo ra nhằm mục đích đi kèm với Cảnh báo sự kiện hoặc các cảnh báo và theo dõi khác có kiên quan đến thời tiết hoặc thảm hoạ trong ứng dụng riêng của bạn. Việc sử dụng Nguồn cấp dữ liệu của bạn được quản lý bởi các điều khoản API.", "license_limitations": { - "body": "Bạn chỉ có thể sử dụng Nguồn cấp dữ liệu liên quan đến ứng dụng của bạn được quản lý bới các điều khoản API, và miễn là bạn duy trì khả năng tương thích với API được cập nhật theo thời gian. \nBạn được cấp một quyền không độc quyền, có giới hạn và có thể thu hồi để tải về, sử dụng và phân phát đến người dùng ứng dụng chính của bạn (\"Người dùng chính\") những Thông tin Cảnh báo và những ngữ cảnh có liên quan đến việc Chuẩn bị, Phản hồi và Khôi phục liên quan đến thiết lập khẩn cấp của Cảnh báo Sự kiện cá nhân từ Nguồn cung cấp dữ liệu, tuân theo điểu khoản API. Bạn chỉ có thể sử dụng API để sử dụng Nguồn cung cấp dữ liệu cho các mục đích phi thương mại phù hợp với các điều khoản của API. Trong bất kỳ trường hợp nào, bạn không được dùng API để sử dụng Nguồn cung cấp dữ liệu, Thông tin cảnh báo, hoặc/và tin nhắn Chuẩn bị, Phản hồi và Khôi phục cho mục đích thương mại, bao gồm nhưng không giới hạn, bán lại, tính phí để truy cập, phân phối hoặc tạo ra các tác phẩm khác dựa nào nó. Hội Chữ Thập Đỏ và người cấp phép của Hội duy trì tất cả chứng thư, quyền sở hữu, quyền và lợi ích trong và đối với API, tin nhắn Chuẩn bị, Phản hồi và Khôi phục, Thông tin cảnh báo, Nguồn cung cấp dữ liệu, và Nguồn Tham Khảo (như được định nghĩa bên dưới). \nTất cả các quyền không được cung cấp rõ ràng đều được bảo lưu.", + "body": "Bạn chỉ có thể sử dụng Nguồn cấp dữ liệu liên quan đến ứng dụng của bạn được quản lý bới các điều khoản API, và miễn là bạn duy trì khả năng tương thích với API được cập nhật theo thời gian. \nBạn được cấp một quyền không độc quyền, có giới hạn và có thể thu hồi để tải về, sử dụng và phân phát đến người dùng ứng dụng chính của bạn (\"Người dùng chính\") những Thông tin Cảnh báo và những ngữ cảnh có liên quan đến việc Chuẩn bị, Phản hồi và Khôi phục liên quan đến thiết lập khẩn cấp của Cảnh báo Sự kiện cá nhân từ Nguồn cung cấp dữ liệu, tuân theo điểu khoản API. Bạn chỉ có thể sử dụng API để sử dụng Nguồn cung cấp dữ liệu cho các mục đích phi thương mại phù hợp với các điều khoản của API. Trong bất kỳ trường hợp nào, bạn không được dùng API để sử dụng Nguồn cung cấp dữ liệu, Thông tin cảnh báo, hoặc\/và tin nhắn Chuẩn bị, Phản hồi và Khôi phục cho mục đích thương mại, bao gồm nhưng không giới hạn, bán lại, tính phí để truy cập, phân phối hoặc tạo ra các tác phẩm khác dựa nào nó. Hội Chữ Thập Đỏ và người cấp phép của Hội duy trì tất cả chứng thư, quyền sở hữu, quyền và lợi ích trong và đối với API, tin nhắn Chuẩn bị, Phản hồi và Khôi phục, Thông tin cảnh báo, Nguồn cung cấp dữ liệu, và Nguồn Tham Khảo (như được định nghĩa bên dưới). \nTất cả các quyền không được cung cấp rõ ràng đều được bảo lưu.", "heading": "Giấy phép và những điều khoản hạn chế:" }, "overview": { @@ -889,17 +885,17 @@ "two": "Phá vỡ hoặc sửa đổi bất kỳ mã khóa hoặc cơ chế bảo mật được sử dụng bởi Hội Chữ Thập Đỏ hoặc API, bao gồm nhưng không giới hạn bất kỳ công nghệ xác thực nào.", "three": "Yêu cầu, thu thập, gạ gẫm để có được quyền truy cập vào tên đăng nhập, mật khẩu và những thông tin xác thực khác của Hội Chữ Thập Đỏ ngoài những gì được cung cấp cho Bạn và tài khoản của bạn.", "four": "Tuyên bố hoặc ngụ ý rằng bạn có liên kết, được tài trợ hoặc ủng hội bởi Hội Chữ Thập Đỏ hoặc những cộng đồng quốc qua và tổ chức của Hội Chữ Thập Đỏ và Trăng Lưỡi Liềm.", - "five": "Tuyên bố hoặc ngụ ý rằng bạn sở hữu hoặc tạo ra API, Nguồn cấp dữ liệu, Cảnh báo sự kiện hoặc/và những tin nhắn Chuẩn bị, Phản hồi và Khôi phục.", + "five": "Tuyên bố hoặc ngụ ý rằng bạn sở hữu hoặc tạo ra API, Nguồn cấp dữ liệu, Cảnh báo sự kiện hoặc\/và những tin nhắn Chuẩn bị, Phản hồi và Khôi phục.", "six": "Truyền tải virus, sâu máy tính, Trojan, hoặc bất kỳ phần tử có tính chất gây hại nào." } }, - "reserve_rights": "Hội Chữ Thập Đỏ có quyền thay đổi hoặc/và ngừng cung cấp một phần hoặc toàn bộ API và Nguồn cấp dữ liệu, tạm thời hoặc vĩnh viễn mà không cần thông báo trước. Để tránh nghi ngờ, Hội Chữ Thập Đỏ không có nghĩa vụ phải cung cấp API và Nguồn cấp dữ liệu cho Bạn, và Bạn hiểu và chấp thuận rằng quyền truy cập thuộc quyền quyết định duy nhất và tuyệt đối của Hội Chữ Thập Đỏ", + "reserve_rights": "Hội Chữ Thập Đỏ có quyền thay đổi hoặc\/và ngừng cung cấp một phần hoặc toàn bộ API và Nguồn cấp dữ liệu, tạm thời hoặc vĩnh viễn mà không cần thông báo trước. Để tránh nghi ngờ, Hội Chữ Thập Đỏ không có nghĩa vụ phải cung cấp API và Nguồn cấp dữ liệu cho Bạn, và Bạn hiểu và chấp thuận rằng quyền truy cập thuộc quyền quyết định duy nhất và tuyệt đối của Hội Chữ Thập Đỏ", "severability": { "body": "\nTính không hợp lệ của bất kỳ điều khoản nào của Điều khoản API sẽ không ảnh hưởng đến hiệu lực của bất kỳ điều khoản nào khác", "heading": "Hiệu lực pháp lý và Quyền tự bỏ kiện tụng:" }, "suspension": { - "body": "Hội Chữ Thập Đỏ có quyền đình chỉ hoặc chấm dứt quyền truy cập của bạn nếu Hội Chữ Thập Đỏ xác định, quyền quyết địch duy nhất của Hội Chữ Thập Đỏ, là Bạn đang tham gia vào việc sử dụng trái phép các API hoặc Nguồn cung cấp dữ liệu như được nêu trong các điều khoản API hoặc Bạn đang sử dụng API hoặc Nguồn cung cấp dữ liệu trong bất kỳ hoạt động đe dọa / xâm phạm đến sự an toàn hoặc/và bảo mật của bất kỳ người nào hoặc của mạng lưới Chữ Thập Đỏ", + "body": "Hội Chữ Thập Đỏ có quyền đình chỉ hoặc chấm dứt quyền truy cập của bạn nếu Hội Chữ Thập Đỏ xác định, quyền quyết địch duy nhất của Hội Chữ Thập Đỏ, là Bạn đang tham gia vào việc sử dụng trái phép các API hoặc Nguồn cung cấp dữ liệu như được nêu trong các điều khoản API hoặc Bạn đang sử dụng API hoặc Nguồn cung cấp dữ liệu trong bất kỳ hoạt động đe dọa \/ xâm phạm đến sự an toàn hoặc\/và bảo mật của bất kỳ người nào hoặc của mạng lưới Chữ Thập Đỏ", "heading": "Quyền đình chỉ hoặc thu hồi giấy phép:" } }, diff --git a/resources/lang/zh.json b/resources/lang/zh.json index 5f255ce..3bd651f 100644 --- a/resources/lang/zh.json +++ b/resources/lang/zh.json @@ -236,25 +236,25 @@ }, "languages": { "am": "አማርኛ", - "ar": "阿拉伯语/عربى", + "ar": "阿拉伯语\/عربى", "bn": "বাংলা", "de": "Deutsch", - "en": "英语/English", - "es": "西班牙语/Español", - "fr": "法语/Français", + "en": "英语\/English", + "es": "西班牙语\/Español", + "fr": "法语\/Français", "ht": "Kreyòl", - "id": "印度尼西亚语/bahasa Indonesia", + "id": "印度尼西亚语\/bahasa Indonesia", "it": "Italiano", "ja": "日本語", "my": "ဗမာ", "ne": "नेपाली", - "pt": "葡萄牙语/\nPortuguês (UE)", - "ru": "俄语/русский", + "pt": "葡萄牙语\/\nPortuguês (UE)", + "ru": "俄语\/русский", "rw": "Ikinyarwanda", "sw": "Kiswahili", "th": "ภาษาไทย", "tr": "Türkçe", - "ur": "乌尔都语/اردو", + "ur": "乌尔都语\/اردو", "vi": "Tiếng Việt" }, "sidebar": { @@ -441,9 +441,9 @@ "immediate": "立即", "warning": "警告", "anticipated": "预期", - "assess_and_plan": "评估与计划", - "mitigate_risks": "降低风险", - "prepare_to_respond": "准备回应", + "assess_and_plan":"评估与计划", + "mitigate_risks":"降低风险", + "prepare_to_respond":"准备回应", "recover": "恢复" }, "content": { @@ -526,7 +526,7 @@ "seasonalForecast_extra": "季节性预报是声明所預測到的危险事件。所采取的措施是评估潜在风险并计划旨在降低风险和保护家庭的活动。", "watch": "观察", "watch_help": "准备回应", - "watch_extra": "当危险事件的风险显着增加,但其发生,位置和/或时间仍不确定时,将发出预警。目的是为保护措施和准备响应提供足够的时间。", + "watch_extra": "当危险事件的风险显着增加,但其发生,位置和\/或时间仍不确定时,将发出预警。目的是为保护措施和准备响应提供足够的时间。", "warning": "警告", "warning_help": "准备回应", "warning_extra": "当危险事件正在发生,迫在眉睫或极有可能发生时,发出警告。这意味着事态对生命或财产构成威胁。处于危险中的人们需要采取保护措施。", @@ -558,8 +558,7 @@ "content_edit_title": "内容编辑", "content_add_hazard_title": "添加危害", "key_message_label": "关键信息标题", - "supporting_message_label": "支持信息", - "mitigate_risk": "降低风险" + "supporting_message_label": "支持信息" }, "message_editor": { "title": "署名编辑", @@ -619,7 +618,7 @@ "bad_request_error_codes": { "30001": "列标题与模板不匹配", "30002": "属性名称,消息或网址缺失", - "30003": "无效的网址属性-请确保規程存在,例如https://", + "30003": "无效的网址属性-请确保規程存在,例如https:\/\/", "40001": "无效的国家代码", "40002": "所选的社团与所选文件的社团不匹配", "40003": "所选文件的导出日期格式不正确,导入无法完成" @@ -690,7 +689,7 @@ }, "landing": { "strapline": "安全信息数据库服务", - "strapline_part_2": "全球红十字会/红新月会重要安全信息", + "strapline_part_2": "全球红十字会\/红新月会重要安全信息", "head_1": "红十字与红新月联会安全", "head_2": "信息数据库", "head_text_1": "基于红十字与红新月联会《公众意识与安全》的安全信息", @@ -745,7 +744,7 @@ "fake_alert_heading": "极寒警告", "fake_alert_description": "但这需要简单和容易的区分。争取自由时我们的力量。", "fake_alert_time": "一小时前", - "fake_alert_time_exact": "05/02/18于05:15中部时间", + "fake_alert_time_exact": "05\/02\/18于05:15中部时间", "use_cases": { "heading": "了解更多", "first_heading": "如何运作", @@ -786,7 +785,7 @@ }, "data_preview": { "heading": "安全信息", - "sub_heading": "注册并查看来自世界各地的红十字会/红新月会的主要行动消息" + "sub_heading": "注册并查看来自世界各地的红十字会\/红新月会的主要行动消息" }, "footer": { "terms_conditions": "条款及细则", @@ -837,15 +836,15 @@ "industry": "行业领域", "create_account": "创建帐户", "last_name": "姓", - "select_country": "选择国家/地区", + "select_country": "选择国家\/地区", "select_industry": "选择行业", "industries": { "media": "媒体", "emergency": "应急管理", - "non_profit": "非营利/非政府组织", + "non_profit": "非营利\/非政府组织", "humanitarian": "人道主义援助组织", "red_cross": "红十字会和红新月会运动", - "education": "教育/学术界", + "education": "教育\/学术界", "gov": "官方机关", "other": "其他" }, @@ -860,9 +859,9 @@ "body": "哥伦比亚特区的法律适用于本协议项下的所有权利和义务,但不适用任何法律冲突原则。", "heading": "适用法律:" }, - "body": "您有责任维护红十字会向您提供的注册密钥的机密性和安全性。您有责任保持与API的兼容性,如不时更新,以继续接收数据提要。红十字会可自行决定发布API和数据提要的更新版本。新版本可能与以前的实现不兼容,您同意在任何时候使用数据提要的最新更新版本。您同意不修改、分发、反编译、反汇编或反向工程API的任何部分或红十字会的任何软件。您不得以超出合理要求量的方式使用API或数据提要,或构成由红十字会自行决定的过度或滥用使用。您不得以非法、误导、疏忽、恶意、意图造成伤害的方式使用API或数据提要,或红十字会根据其自行决定的方式伤害红十字会、其服务提供商、其内容提供商或任何其他人士。红十字会可能会监控您使用API和数据提要。您不得使用任何技术手段干扰这种监测,红十字会可以使用技术手段克服任何这种干扰。“准备”、“响应”和“恢复”消息的使用应仅以当前或更新到相关事件警报的当前紧急设置为准,并且您应在红十字会更新任何数据源和/或相关事件警报时更新个人“准备”、“响应”和“恢复”消息。您使用的个人准备、响应和恢复消息应仅与发布该消息的地理区域相关联。如果准备、响应和恢复消息包含一个引用来源,如美国红十字会或另一个红十字会或红新月会国家社会或组织(每一个“源引用”),您应包括源引用与每个相关准备、响应和恢复消息的形式提供的数据提要。你不得再使用任何参考资料。您不得将“数据提要”、“事件警报”和/或“准备、响应和恢复消息”翻译成任何其他语言,不得使用、编辑或修订或更改“数据提要”、“事件警报”和/或“准备、响应和恢复消息”的含义。您必须确保本资料源由您单独拥有和/或控制。您不得允许发送给最终用户的“事件警报”和“准备、响应和恢复消息”包含任何广告或赞助。您不可以对全部或部分数据提要进行任何存档。", + "body": "您有责任维护红十字会向您提供的注册密钥的机密性和安全性。您有责任保持与API的兼容性,如不时更新,以继续接收数据提要。红十字会可自行决定发布API和数据提要的更新版本。新版本可能与以前的实现不兼容,您同意在任何时候使用数据提要的最新更新版本。您同意不修改、分发、反编译、反汇编或反向工程API的任何部分或红十字会的任何软件。您不得以超出合理要求量的方式使用API或数据提要,或构成由红十字会自行决定的过度或滥用使用。您不得以非法、误导、疏忽、恶意、意图造成伤害的方式使用API或数据提要,或红十字会根据其自行决定的方式伤害红十字会、其服务提供商、其内容提供商或任何其他人士。红十字会可能会监控您使用API和数据提要。您不得使用任何技术手段干扰这种监测,红十字会可以使用技术手段克服任何这种干扰。“准备”、“响应”和“恢复”消息的使用应仅以当前或更新到相关事件警报的当前紧急设置为准,并且您应在红十字会更新任何数据源和\/或相关事件警报时更新个人“准备”、“响应”和“恢复”消息。您使用的个人准备、响应和恢复消息应仅与发布该消息的地理区域相关联。如果准备、响应和恢复消息包含一个引用来源,如美国红十字会或另一个红十字会或红新月会国家社会或组织(每一个“源引用”),您应包括源引用与每个相关准备、响应和恢复消息的形式提供的数据提要。你不得再使用任何参考资料。您不得将“数据提要”、“事件警报”和\/或“准备、响应和恢复消息”翻译成任何其他语言,不得使用、编辑或修订或更改“数据提要”、“事件警报”和\/或“准备、响应和恢复消息”的含义。您必须确保本资料源由您单独拥有和\/或控制。您不得允许发送给最终用户的“事件警报”和“准备、响应和恢复消息”包含任何广告或赞助。您不可以对全部或部分数据提要进行任何存档。", "contact": "如有任何有关API的问题,请致电{0}与红十字会联系。", - "disclaimer": "本网站提供的API和数据仅供参考和教育用途,并在“现有”和“可用”的基础上提供。红十字会不作任何明示或默示的陈述或保证。红十字会不提供任何明示或暗示的保证,包括但不限于有关适销性和适合某一特定用途的暗示保证。红十字会及其员工、高级职员、理事、代理和许可人不承担因使用API、数据传送、事件警报和/或准备、响应和恢复信息(包括但不限于直接、间接、附带、惩罚性和相应的损害赔偿)。红十字会并不保证序列、准确性、真实性和完整性的API、数据提要、事件警报和/或准备、回应、和恢复信息;不得承担责任以任何方式对你或你的最终用户或任何第三方,包括但不限于,任何延迟、不准确、错误或遗漏。", + "disclaimer": "本网站提供的API和数据仅供参考和教育用途,并在“现有”和“可用”的基础上提供。红十字会不作任何明示或默示的陈述或保证。红十字会不提供任何明示或暗示的保证,包括但不限于有关适销性和适合某一特定用途的暗示保证。红十字会及其员工、高级职员、理事、代理和许可人不承担因使用API、数据传送、事件警报和\/或准备、响应和恢复信息(包括但不限于直接、间接、附带、惩罚性和相应的损害赔偿)。红十字会并不保证序列、准确性、真实性和完整性的API、数据提要、事件警报和\/或准备、回应、和恢复信息;不得承担责任以任何方式对你或你的最终用户或任何第三方,包括但不限于,任何延迟、不准确、错误或遗漏。", "entire_agreement": { "body": "API条款构成了红十字会与您之间关于本协议主题事项的完整和排他性协议,并取代所有先前的口头或书面谅解、沟通或协议,这些协议未在本协议中明确纳入。红十字会保留随时修改或撤销此协议的权利。", "heading": "完整协议:" @@ -870,7 +869,7 @@ "heading": "API最终用户许可协议", "intro": "同意:用户使用本服务或勾选所提供的方框,即表示同意受本协议约束。API是一个工具,它允许您(“你”)来检索和使用数据提提要供红十字会包括一个提要全球天气和灾难事件的预警和看通知(“事件警报”)和可操作的、更符合实际的消息如何准备当地的灾害风险类型和紧迫性(“准备、回应、和恢复消息”,以及与事件警报一起的“数据提要”)。在您個人的应用中,准备、回应和信息的恢复應用于警报事件或其他警告,和用於與天气和灾难事件相關的监察通知。您对数据傳送的使用受API条款的監管。", "license_limitations": { - "body": "若果你想將你的應用程序和數據傳送一起使用,你必須謹遵API条款,並確保您与API的兼容性是與時並進的。根据API条款,您被授予非独家的,有限的和可撤销的权利去下载自己程序的警报事件和与数据传送中各个事件警报的紧急设置相关的信息的准备,回应和恢复,你可以使用它,复制它和发放给你的使用者(\"用户端\")。根据API条款,您只能将API用于非商业用途的數據傳送。在任何情况下,您都不得使用API促进数据傳送、事件提醒和/或准备、回应和恢复消息的商业使用,包括但不限于转售、访问收费、轉發收费或基于此而衍生的服務的收费。红十字会及其许可方保留对API的名称,所有权,权利, 利益。准备, 回应信息,紧急事件,数据傳送和引用的恢复。保留所有未明确授予的权利。", + "body": "若果你想將你的應用程序和數據傳送一起使用,你必須謹遵API条款,並確保您与API的兼容性是與時並進的。根据API条款,您被授予非独家的,有限的和可撤销的权利去下载自己程序的警报事件和与数据传送中各个事件警报的紧急设置相关的信息的准备,回应和恢复,你可以使用它,复制它和发放给你的使用者(\"用户端\")。根据API条款,您只能将API用于非商业用途的數據傳送。在任何情况下,您都不得使用API促进数据傳送、事件提醒和\/或准备、回应和恢复消息的商业使用,包括但不限于转售、访问收费、轉發收费或基于此而衍生的服務的收费。红十字会及其许可方保留对API的名称,所有权,权利, 利益。准备, 回应信息,紧急事件,数据傳送和引用的恢复。保留所有未明确授予的权利。", "heading": "许可和限制:" }, "overview": { @@ -889,17 +888,17 @@ "two": "规避或修改红十字会或API所使用的任何密钥或安全机制,包括但不限于任何身份验证技术。", "three": "请求、收集、恳求或以其他方式获取红十字会的登录名、密码或其他身份验证凭证,而不是为您自己的帐户提供的。", "four": "声明或暗示红十字会或任何其他红十字会或红新月会国家协会或组织的隶属关系、赞助或认可。", - "five": "声明或暗示您拥有或创建了API、数据傳送、事件警报和/或准备、响应和恢复信息。", + "five": "声明或暗示您拥有或创建了API、数据傳送、事件警报和\/或准备、响应和恢复信息。", "six": "传播任何病毒、蠕虫缺陷、特洛伊木马或任何具有破坏性的東西。" } }, - "reserve_rights": "红十字会保留随时更改和/或不再提供全部或部分API和数据傳送的权利,暂时或永久,无需事先通知。为免生疑义,本协议没有义务要求红十字会向您提供API或数据傳送,您同意并承认,红十字会有权自行决定对其进行任何访问。", + "reserve_rights": "红十字会保留随时更改和\/或不再提供全部或部分API和数据傳送的权利,暂时或永久,无需事先通知。为免生疑义,本协议没有义务要求红十字会向您提供API或数据傳送,您同意并承认,红十字会有权自行决定对其进行任何访问。", "severability": { "body": "API条款的任何条款或规定的无效不影响任何其他条款的效力。", "heading": "可分割性和豁免:" }, "suspension": { - "body": "如果红十字会認為您如API条款所提及的在未经授权的情况下使用API或数据傳送,或您在任何活动中使用API或数据提要威胁/损害任何人或红十字会网络的安全和/或安全,紅十字會將保留暂停或终止您的访问的权利。", + "body": "如果红十字会認為您如API条款所提及的在未经授权的情况下使用API或数据傳送,或您在任何活动中使用API或数据提要威胁\/损害任何人或红十字会网络的安全和\/或安全,紅十字會將保留暂停或终止您的访问的权利。", "heading": "暂停或终止:" } }, @@ -995,7 +994,7 @@ "role": "角色", "society": "社会", "date": "日期", - "country": "国家/地区", + "country": "国家\/地区", "email": "电子邮件", "created_at": "创建于", "last_logged_in_at": "最近登录", diff --git a/resources/lang/zh_CN.json b/resources/lang/zh_CN.json index ce42967..910eb91 100644 --- a/resources/lang/zh_CN.json +++ b/resources/lang/zh_CN.json @@ -441,9 +441,9 @@ "immediate": "立即", "warning": "警告", "anticipated": "预期", - "assess_and_plan": "评估与计划", - "mitigate_risks": "降低风险", - "prepare_to_respond": "准备回应", + "assess_and_plan":"评估与计划", + "mitigate_risks":"降低风险", + "prepare_to_respond":"准备回应", "recover": "恢复" }, "content": { @@ -526,7 +526,7 @@ "seasonalForecast_extra": "季節預報是對災害事件的預測聲明。所採取的行動包括評估潛在的風險和計劃活動,為了減低風險和保護家人。", "watch": "關注", "watch_help": "準備好回應", - "watch_extra": "當災害事件的風險顯著增加,但其發生、地點和/或時間仍不確定時,就會發佈警報。其目的是為保護行動和應對準備提供足夠的時間。", + "watch_extra": "當災害事件的風險顯著增加,但其發生、地點和\/或時間仍不確定時,就會發佈警報。其目的是為保護行動和應對準備提供足夠的時間。", "warning": "警告", "warning_help": "準備好回應", "warning_extra": "当災害事件正在发生、即将发生或发生概率很高时,将发出警告。這意味著情況對生命或財產構成威脅。在這災害帶上的人們需要採取保護措施。", @@ -558,8 +558,7 @@ "content_edit_title": "内容编辑", "content_add_hazard_title": "添加危害", "key_message_label": "关键信息标题", - "supporting_message_label": "支持信息", - "mitigate_risk": "降低风险" + "supporting_message_label": "支持信息" }, "message_editor": { "title": "署名编辑", @@ -619,7 +618,7 @@ "bad_request_error_codes": { "30001": "欄目標題與範本不一致", "30002": "標題屬性、資訊或網址缺失", - "30003": "無效的網址屬性 - 請確保規程的存在,例如:https://", + "30003": "無效的網址屬性 - 請確保規程的存在,例如:https:\/\/", "40001": "提供的國家代碼無效", "40002": "所選社群與選定檔案的社群不匹配", "40003": "所選文件匯出的日期格式不正確,導入無法完成" @@ -745,7 +744,7 @@ "fake_alert_heading": "極端寒冷警告", "fake_alert_description": "Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est.", "fake_alert_time": "一小時前", - "fake_alert_time_exact": "05/02/18 05:15美國中部時間", + "fake_alert_time_exact": "05\/02\/18 05:15美國中部時間", "use_cases": { "heading": "了解更多", "first_heading": "運作方式", @@ -786,7 +785,7 @@ }, "data_preview": { "heading": "安全信息", - "sub_heading": "註冊並查看來自世界各地紅十字會/紅新月會的關鍵行動資訊" + "sub_heading": "註冊並查看來自世界各地紅十字會\/紅新月會的關鍵行動資訊" }, "footer": { "terms_conditions": "條款 & 條件", @@ -844,8 +843,8 @@ "emergency": "緊急應變管理", "non_profit": "非牟利機構 (Non Profit)", "humanitarian": "人道主義組織", - "red_cross": "紅十字會/紅新月會", - "education": "教育/學術機構", + "red_cross": "紅十字會\/紅新月會", + "education": "教育\/學術機構", "gov": "政府委托的代理機構", "other": "其他" }, @@ -860,9 +859,9 @@ "body": "本協議項下的所有權利和義務均受哥倫比亞特區法律的管轄,但不適用任何法律衝突原則。", "heading": "適用法律:" }, - "body": "您有責任維護紅十字會提供給您的註冊要鑰的保密性和安全性。你有責任保持與API的相容性,並不時進行更新,以便繼續接收數據源。紅十字會可自主決定發佈API和數據源的更新版本。新版本可能與之前的履行不相容,您同意在任何時候使用數據源的最新更新版本。你同意不對API的任何部分或紅十字會的任何軟體進行修改、分發、反編譯、反彙編或反向工程。你不得以超出合理請求量或構成過度或濫用的方式使用API或資料饋送,情形由紅十字會自主決定。你不得以非法、誤導、疏忽、惡意、意圖造成傷害或傷害紅十字會、其服務供應商、其內容供應商或任何其他人士的方式使用API或数据源,情形由紅十字會自主決定。紅十字會可能會監測你對API和数据源的使用情況。您不得使用任何技術手段干擾這種監察,紅十字會可以使用技術手段攻克任何這種干擾。準備、回應和恢復信息使用應僅以當前或更新到相關事件警報的當前緊急設置為准,並且您應在紅十字會更新任何資料來源和/或相關事件警報時更新個人準備、回應和恢復信息。您所使用的個人\n準備、回應和恢復信息應只與它所發佈的地理區域相關聯。如果準備、回應和恢復信息包含一個引用來源,如美國紅十字會,或另一個紅十字會,或紅新月會國家社會團體或組織(此為,每一個“資料來源參考” ),您應在資料源所提供的格式中包括每個相關準備、回應和恢復信息相關聯的資料來源參考。您不得再进一步使用任何參考資料來源。您不得將“資料源”、“事件警報”和/或“準備、回應和恢復信息”翻譯成任何其他語言,不得對 “ 資料源”、“事件警報”和/或“準備、回應和恢復信息”進行任何使用、編輯或修訂,或改變其含義。您必須確保資料饋送仍由您獨自擁有和/或控制。您不得允許向用戶端發送的事件警報和準備、回應和恢復信息包含任何廣告或贊助\n\n您不可以對全部或部分資料饋送進行任何存檔。", + "body": "您有責任維護紅十字會提供給您的註冊要鑰的保密性和安全性。你有責任保持與API的相容性,並不時進行更新,以便繼續接收數據源。紅十字會可自主決定發佈API和數據源的更新版本。新版本可能與之前的履行不相容,您同意在任何時候使用數據源的最新更新版本。你同意不對API的任何部分或紅十字會的任何軟體進行修改、分發、反編譯、反彙編或反向工程。你不得以超出合理請求量或構成過度或濫用的方式使用API或資料饋送,情形由紅十字會自主決定。你不得以非法、誤導、疏忽、惡意、意圖造成傷害或傷害紅十字會、其服務供應商、其內容供應商或任何其他人士的方式使用API或数据源,情形由紅十字會自主決定。紅十字會可能會監測你對API和数据源的使用情況。您不得使用任何技術手段干擾這種監察,紅十字會可以使用技術手段攻克任何這種干擾。準備、回應和恢復信息使用應僅以當前或更新到相關事件警報的當前緊急設置為准,並且您應在紅十字會更新任何資料來源和\/或相關事件警報時更新個人準備、回應和恢復信息。您所使用的個人\n準備、回應和恢復信息應只與它所發佈的地理區域相關聯。如果準備、回應和恢復信息包含一個引用來源,如美國紅十字會,或另一個紅十字會,或紅新月會國家社會團體或組織(此為,每一個“資料來源參考” ),您應在資料源所提供的格式中包括每個相關準備、回應和恢復信息相關聯的資料來源參考。您不得再进一步使用任何參考資料來源。您不得將“資料源”、“事件警報”和\/或“準備、回應和恢復信息”翻譯成任何其他語言,不得對 “ 資料源”、“事件警報”和\/或“準備、回應和恢復信息”進行任何使用、編輯或修訂,或改變其含義。您必須確保資料饋送仍由您獨自擁有和\/或控制。您不得允許向用戶端發送的事件警報和準備、回應和恢復信息包含任何廣告或贊助\n\n您不可以對全部或部分資料饋送進行任何存檔。", "contact": "如有任何關於API的問題,請聯繫紅十字會,電話:{0}。", - "disclaimer": "API和資料僅供參考和教育用途,並在“現有”和“可用” 的基礎上提供。紅十字會不做任何形式的明示或暗示的陳述或保證。紅十字會不提供任何明示或暗示的保證,包括但不限於有關適銷性和某一特定用途的適用性的暗示保證。紅十字會及其員工、高級職員、理事、代理和許可人不承擔因使用API、資料傳送、事件警報和/或準備、回應和恢復信息而產生的任何類型(包括但不限於直接、間接、附帶、懲罰性和相應的)損害賠償。紅十字會不保證API、資料來源、事件警報和/或準備、回應和恢復資訊的順序、準確性、真實性或完整性,並且不以任何方式對您或您的最終用戶或任何協力廠商負責,包括但不限於就 API、資料來源、事件警報和/或準備、回應和恢復信息提供的任何延誤、不準確、錯誤或遺漏。", + "disclaimer": "API和資料僅供參考和教育用途,並在“現有”和“可用” 的基礎上提供。紅十字會不做任何形式的明示或暗示的陳述或保證。紅十字會不提供任何明示或暗示的保證,包括但不限於有關適銷性和某一特定用途的適用性的暗示保證。紅十字會及其員工、高級職員、理事、代理和許可人不承擔因使用API、資料傳送、事件警報和\/或準備、回應和恢復信息而產生的任何類型(包括但不限於直接、間接、附帶、懲罰性和相應的)損害賠償。紅十字會不保證API、資料來源、事件警報和\/或準備、回應和恢復資訊的順序、準確性、真實性或完整性,並且不以任何方式對您或您的最終用戶或任何協力廠商負責,包括但不限於就 API、資料來源、事件警報和\/或準備、回應和恢復信息提供的任何延誤、不準確、錯誤或遺漏。", "entire_agreement": { "body": "API條款構成紅十字會與您之間關於本協定主題事項的完整和排他性協議,並取代所有先前的口頭或書面諒解、溝通或在此未具體納入的協議。公司保留隨時修改本政策的權利,恕不另行通知。", "heading": "完整協議:" @@ -870,7 +869,7 @@ "heading": "API終端使用者授權合約", "intro": "同意:通過使用服務或勾選所提供的方框,使用者同意接受本協議的約束。API是一個工具,允許您(“您”)檢索和使用紅十字會提供的資料源,包括資訊饋送全球天氣和災害事件警告和觀察通知(“事件警報”),以及關於如何按災害類型和緊急程度準備應對當地災害的可操作和背景化資訊 (“準備、回應和恢復信息”,與事件警報合稱“資料源”)。準備、回應和恢復信息是計畫與事件警報和您手機上的其他天氣及災難警示軟體共同工作。您對資料來源的使用會被API條款所約束。", "license_limitations": { - "body": "在您遵守不斷更新的API條款的前提下,您僅可以使用資料來源與您自己的受API條款限制的應用進行交互。在API條款的約束下和個人事件警報的資料來源緊急設定下,您被給予非獨享、有限的和可被撤回的權力去下載、使用、複製和傳播給您的應用軟體的終端使用者(“終端使用者”)事件警報和相關的準備、回應和恢復信息。在API條款的約束下,您僅可以以非商業目的使用數據源服務。在任何情況下,您不可以使用數據源、事件警報和/或準備、回應和恢復信息以服務非商業目的包括但不限於二次出售他們,收費以訪問他們,收費以分發他們或收費以製作基於他們的衍生產品。紅十字會和其許可人保留API、準備、回應和恢復信息、事件警報、數據源和參考源(如上文所定義)中的一切稱謂、所有權、權利和利益。本節未明確授予之權力皆為協會所保留。", + "body": "在您遵守不斷更新的API條款的前提下,您僅可以使用資料來源與您自己的受API條款限制的應用進行交互。在API條款的約束下和個人事件警報的資料來源緊急設定下,您被給予非獨享、有限的和可被撤回的權力去下載、使用、複製和傳播給您的應用軟體的終端使用者(“終端使用者”)事件警報和相關的準備、回應和恢復信息。在API條款的約束下,您僅可以以非商業目的使用數據源服務。在任何情況下,您不可以使用數據源、事件警報和\/或準備、回應和恢復信息以服務非商業目的包括但不限於二次出售他們,收費以訪問他們,收費以分發他們或收費以製作基於他們的衍生產品。紅十字會和其許可人保留API、準備、回應和恢復信息、事件警報、數據源和參考源(如上文所定義)中的一切稱謂、所有權、權利和利益。本節未明確授予之權力皆為協會所保留。", "heading": "授權與限制:" }, "overview": { @@ -889,17 +888,17 @@ "two": "繞開或修改紅十字會或API使用的任何密鑰和安全設置,包括但不限於任何認證技術。", "three": "要求、收集、請求或使用其他方式獲取非紅十字會提供給您本人賬戶的用戶名、密碼或其他識別認證信息。", "four": "表明或暗示與美國紅十字會或任何紅十字會或紅新月會組織的從屬關係,資助關係或被資助關係。", - "five": "表明或暗示您擁有或創建了API、數據源、事件警報和/或準備、回應和恢復信息。", + "five": "表明或暗示您擁有或創建了API、數據源、事件警報和\/或準備、回應和恢復信息。", "six": "傳播任何病毒、蠕蟲病毒、木馬病毒或任何含破壞性質的項目。" } }, - "reserve_rights": "紅十字會保留在任何時間無提前通知的情況下暫時或永久改變和/或停止部分或全部API和數據源服務的權力。為消除疑惑,紅十字會沒有為您提供API和數據源的義務,並且您同意並承認一切訪問均在紅十字會的單獨和絕對審查下進行。", + "reserve_rights": "紅十字會保留在任何時間無提前通知的情況下暫時或永久改變和\/或停止部分或全部API和數據源服務的權力。為消除疑惑,紅十字會沒有為您提供API和數據源的義務,並且您同意並承認一切訪問均在紅十字會的單獨和絕對審查下進行。", "severability": { "body": "任何API服務中的條款不影響任何其他服務的有效性。", "heading": "效力瑕疵條款及免責聲明:" }, "suspension": { - "body": "紅十字會保留暫停或終止您的訪問權限的權力,如果在其獨立審查中認定您參與了API條款中列舉的未被授權的對API或數據源的使用,或您對API或數據源的任何使用行為威脅到/削弱了任何人或紅十字會網絡的安全性。", + "body": "紅十字會保留暫停或終止您的訪問權限的權力,如果在其獨立審查中認定您參與了API條款中列舉的未被授權的對API或數據源的使用,或您對API或數據源的任何使用行為威脅到\/削弱了任何人或紅十字會網絡的安全性。", "heading": "暫停或終止服務:" } }, From 239fc4dcef0b17e222c04b5e4a1b97bae9ce668d Mon Sep 17 00:00:00 2001 From: Juan24 Date: Tue, 21 Apr 2026 09:57:15 -0300 Subject: [PATCH 3/3] update translations --- resources/lang/am.json | 46 ++++++++++++++------------ resources/lang/ar.json | 9 ++--- resources/lang/bn.json | 50 +++++++++++++++------------- resources/lang/de.json | 37 +++++++++++---------- resources/lang/en.json | 5 +-- resources/lang/es.json | 3 +- resources/lang/fr.json | 3 +- resources/lang/ht.json | 54 ++++++++++++++++-------------- resources/lang/id.json | 35 ++++++++++---------- resources/lang/it.json | 33 ++++++++++--------- resources/lang/ja.json | 11 ++++--- resources/lang/my.json | 44 +++++++++++++------------ resources/lang/ne.json | 69 +++++++++++++++++++++------------------ resources/lang/pt.json | 33 ++++++++++--------- resources/lang/ru.json | 33 ++++++++++--------- resources/lang/rw.json | 25 +++++++------- resources/lang/sw.json | 37 +++++++++++---------- resources/lang/th.json | 31 +++++++++--------- resources/lang/tr.json | 33 ++++++++++--------- resources/lang/ur.json | 35 ++++++++++---------- resources/lang/vi.json | 46 ++++++++++++++------------ resources/lang/zh.json | 55 ++++++++++++++++--------------- resources/lang/zh_CN.json | 33 ++++++++++--------- 23 files changed, 402 insertions(+), 358 deletions(-) diff --git a/resources/lang/am.json b/resources/lang/am.json index 874f3ee..82998ba 100644 --- a/resources/lang/am.json +++ b/resources/lang/am.json @@ -197,7 +197,8 @@ "steps": { "one": { "heading": "ደረጃ 1 - ይመዝገቡ", - "body": "ከደህንነት መልዕክት ዳታቤዝ ኤፒአይ መረጃ መጠቀም ለመጀመር በመጀመሪያ {0} ወደ የደህንነት መልዕክት ዳታቤዝ ፖርታል ይግቡ።\n\nፌስቡክ እና ጎግል አካውንትዎን ወይም ኢሜል አድራሻዎን ተጠቅመው አካውንት መፍጠር ይችላሉ።", "create_account_alt": "አካዉንት ይክፈቱ፤", + "body": "ከደህንነት መልዕክት ዳታቤዝ ኤፒአይ መረጃ መጠቀም ለመጀመር በመጀመሪያ {0} ወደ የደህንነት መልዕክት ዳታቤዝ ፖርታል ይግቡ።\n\nፌስቡክ እና ጎግል አካውንትዎን ወይም ኢሜል አድራሻዎን ተጠቅመው አካውንት መፍጠር ይችላሉ።", + "create_account_alt": "አካዉንት ይክፈቱ፤", "existing_account": "ከዚህ ቀደም አካዉንት ካለዎት፣ እባከዎ {0}።", "login_cta": "ይግቡ፤", "sign_up_cta": "ይመዝገቡ፤" @@ -215,7 +216,8 @@ }, "four": { "api_docs_cta": "የ ኤፒ አይ (API) ሰነድ፤", - "body": "የደህንነት መልዕክት ዳታቤዝ ኤፒአይ HTTP(S) ይጠቀማል እና የታተመ መረጃ ለማግኘት RESTful endpoints ያቀርባል።\n\nእያንዳንዱ ጥያቄ በቀደመው ደረጃ በተፈጠረው ኤፒአይ ቁልፍ መረጋገጥ አለበት።", "example_title": "የሙከራ ጥያቄ፤", + "body": "የደህንነት መልዕክት ዳታቤዝ ኤፒአይ HTTP(S) ይጠቀማል እና የታተመ መረጃ ለማግኘት RESTful endpoints ያቀርባል።\n\nእያንዳንዱ ጥያቄ በቀደመው ደረጃ በተፈጠረው ኤፒአይ ቁልፍ መረጋገጥ አለበት።", + "example_title": "የሙከራ ጥያቄ፤", "heading": "ደረጃ4 - ጥያቄ ያቅርቡ", "moreInfo": "ስለሁሉም የ API ኢንድፖይንቶች ተጨማሪ መረጃ ለማግኘት፣{0} ይመልከቱ።" } @@ -439,9 +441,9 @@ "immediate": "ወዲያውኑ", "warning": "ማስጠንቀቂያ", "anticipated": "በቅድሚያ የተጠበቀ", - "assess_and_plan":"ግምገማ እና እቅድ", - "mitigate_risks":"አደጋን መቀነስ", - "prepare_to_respond":"ለመልስ ዝግጁ ይሁኑ", + "assess_and_plan": "ግምገማ እና እቅድ", + "mitigate_risks": "አደጋን መቀነስ", + "prepare_to_respond": "ለመልስ ዝግጁ ይሁኑ", "recover": "መልሶ ማግኛት" }, "content": { @@ -524,7 +526,7 @@ "seasonalForecast_extra": "የወቅቱ ትንበያ የአደገኛ ክስተት ትንበያ መግለጫ ነው። የሚወሰዱ እርምጃዎች አደጋዎችን ለመዳሰስ እና አደጋን ለመቀነስ እና ቤተሰቡን ለመጠበቅ የሚረዱ እንቅስቃሴዎችን ለማቀድ ነው ፡፡", "watch": "ማየት", "watch_help": "ለመመለስ መዘጋጀት", - "watch_extra": " ማየት የሚታዘዘው የአደገኛ ክስተት ስጋት በከፍተኛ ሁኔታ ይጨምራል ፣ ግን መከሰቱ ፣ቦታው ፣ወይም\/ እና የጊዜ አወጣጥ አሁንም እርግጠኛ አይደሉም። ለመከላከያ እርምጃዎች እና ቅደመ ምላሽ ለመስጠት ዝግጁ ለማድረግ በቂ ጊዜ ለመስጠት የታሰበ ነው ፡፡", + "watch_extra": " ማየት የሚታዘዘው የአደገኛ ክስተት ስጋት በከፍተኛ ሁኔታ ይጨምራል ፣ ግን መከሰቱ ፣ቦታው ፣ወይም/ እና የጊዜ አወጣጥ አሁንም እርግጠኛ አይደሉም። ለመከላከያ እርምጃዎች እና ቅደመ ምላሽ ለመስጠት ዝግጁ ለማድረግ በቂ ጊዜ ለመስጠት የታሰበ ነው ፡፡", "warning": "ማስጠንቀቂያ", "warning_help": "ለመመለስ መዘጋጀት", "warning_extra": "አደገኛ ክስተት ሲከሰት ፣ ሲቃረብ ወይም በጣም ከፍተኛ የመከሰት እድሉ ሲኖር ማስጠንቀቂያ ይሰጣል ፡፡ ያ ማለት ለህይወት ወይም ለንብረት አስጊ ሁኔታ ሲፈጠር ማለት ነው። በዚህ አደጋ ጎዳና ላይ ያሉ ሰዎች የመከላከያ እርምጃዎችን መውሰድ አለባቸው ፡፡", @@ -556,7 +558,8 @@ "content_edit_title": "ይዘት አርትዕ", "content_add_hazard_title": "አደጋ ጨምር", "key_message_label": "ዋና መልእክት ርዕስ", - "supporting_message_label": "የድጋፍ መልእክት" + "supporting_message_label": "የድጋፍ መልእክት", + "mitigate_risk": "አደጋን መቀነስ" }, "message_editor": { "title": "የምክንያት አርታኢ", @@ -616,7 +619,7 @@ "bad_request_error_codes": { "30001": "የአምድ ርዕሶች ከእቅድ ንድፍ ጋር አይመሳሰሉም", "30002": " የመለያ ስም፣ መልክዕት ወይም ማስፈንጥሪያው ተዘሏል", - "30003": "የማይሰራ የመለያ ማስፈንጠሪያ እባኮዎን የአሁን ፕሮቶኮል መሆኑን ያረጋግጡ፣ ለምሳሌ https:\/\/", + "30003": "የማይሰራ የመለያ ማስፈንጠሪያ እባኮዎን የአሁን ፕሮቶኮል መሆኑን ያረጋግጡ፣ ለምሳሌ https://", "40001": "የማይሰራ ያሀገር ኮድ ተሰጥቷል", "40002": "የተመረጠው ማህበረሰብ ከተመረጠው ፋይል ከማህበረሰቡ ጋር አይጣጣምም", "40003": "የተመረጠው ፋይል ወደ ውጭ ሲልክ የተሳሳተ ስለሆነ ማስመጣቱን ማጠናቀቅ አይችልም" @@ -687,7 +690,7 @@ }, "landing": { "strapline": "የደህንነት መልዕክት ዳታቤዝ አገልግሎት", - "strapline_part_2": "የአለም አቀፍ ቀይ መስቀል \/ ቀይ ጨረቃ ቁልፍ የደህንነት መልዕክቶች", + "strapline_part_2": "የአለም አቀፍ ቀይ መስቀል / ቀይ ጨረቃ ቁልፍ የደህንነት መልዕክቶች", "head_1": "IFRC ደህንነት", "head_2": "የመልዕክት ዳታቤዝ", "head_text_1": "በIFRC የህዝብ ግንዛቤ እና ላይ የተመሰረቱ የደህንነት መልዕክቶች", @@ -742,7 +745,7 @@ "fake_alert_heading": "እጅግ በጣም የቀዘቀዘ ማስጠንቀቂያ", "fake_alert_description": "Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est.", "fake_alert_time": "አንድ ሰዓት በፊት", - "fake_alert_time_exact": "05\/02\/18 at 05:15 CT", + "fake_alert_time_exact": "05/02/18 at 05:15 CT", "use_cases": { "heading": "የበለጠ ይማሩ", "first_heading": " እንዴት እንደሚሰራ", @@ -783,7 +786,7 @@ }, "data_preview": { "heading": "የደህንነት መልዕክቶች", - "sub_heading": "በዓለም ዙርያ ካሉት የቀይ መስቀል\/ቀይ ጨረቃ ብሔራዊ ማኅበራት ቁልፍ የድርጊት መልእክቶችን ለማየት ይመዝገቡ" + "sub_heading": "በዓለም ዙርያ ካሉት የቀይ መስቀል/ቀይ ጨረቃ ብሔራዊ ማኅበራት ቁልፍ የድርጊት መልእክቶችን ለማየት ይመዝገቡ" }, "footer": { "terms_conditions": "ውሎች እና ሁኔታዎች", @@ -839,10 +842,10 @@ "industries": { "media": "መገናኛ ዘዴ", "emergency": "የአደጋ ጊዜ አስተዳደር", - "non_profit": "ለትርፍ ያልተቋቋመ \/ መንግስታዊ ያልሆነ ድርጅት", + "non_profit": "ለትርፍ ያልተቋቋመ / መንግስታዊ ያልሆነ ድርጅት", "humanitarian": "የሰብአዊ እርዳታ ድርጅት", - "red_cross": "ቀይ መስቀል \/ ቀይ ጨረቃ", - "education": "ትምህርት \/ አካዳሚ", + "red_cross": "ቀይ መስቀል / ቀይ ጨረቃ", + "education": "ትምህርት / አካዳሚ", "gov": "የመንግስት ድርጅት", "other": "ሌላ" }, @@ -857,9 +860,9 @@ "body": "የኮሎምቢያ ዲስትሪክት ህጎች በዚህ ስምምነት መሠረት ማንኛውንም የሕግ ግጭቶች መርሆዎች ሳይፈጽሙ ሁሉንም መብቶች እና ግዴታዎች ያስተዳድራሉ ፡፡", "heading": "ተፈጻሚ ህግ:" }, - "body": "በቀይ መስቀል ለእርስዎ የተሰጠውን የምዝገባ ቁልፍ ምስጥራዊነት እና ደህንነት የመጠበቅ ሃላፊነት የእርስዎ ነው ፡፡ ከጊዜ ወደጊዜ ለማዘመን እና መረጃዎችን (Data Feeds) መቀበልን ለመቀጠል ከኤ.ፒ.አይ ጋር ተጓዳኝነትን ማስቀጠል የእርስዎ ሃላፊነት ነው፡፡ ቀይ መስቀል የዘመኑ የኤፒአይ ስሪቶችን እና መረጃዎችን በራሱ ምርጫ ሊለቅ ይችላል። አዲስ ስሪቶች ከቀደሙት ትግበራዎች ጋር ላይጣጣሙ ይችላሉ ፤ እንዲሁም በጣም በቅርብ ጊዜ የተሻሻለውን የመረጃ መቀበያ ስሪት በማንኛውም ጊዜ ለመጠቀም ተስማምተዋል።\n\nማንኛውንም የኤ.ፒ.አይ ክፍልን ወይም ማንኛውንም የቀይ መስቀልን ሶፍትዌር ላለማሻሻል ፣ ላለማሰራጨት ፣ ላለመበተን ፣ ላለማቀናጀት ወይም ላለመቀልበስ ተስማምተዋል ፡፡\n\nኤ.ፒ.አይ.ውን ወይም የመረጃ መቀበያውን ቀይ መስቀል በወሰነው ውሳኔ መሠረት ከተመጣጣኝ የጥያቄ መጠን በላይ ወይም ከመጠን በላይ ወይም አላግባብ ላይጠቀሙ ይችላሉ::\n\nበቀይ መስቀል ብቸኛ ውሳኔ መሠረት ኤ.ፒ.አይ. ወይም የመረጃ መቀበያዎችን በሕገ-ወጥ ፣ በተሳሳተ ፣ በቸልተኛ ፣ በተንኮል-አዘል መንገድ ቀይ መስቀል፣ የአገልግሎት አቅራቢዎች ፣ የይዘት አቅራቢዎች ወይም ሌላ ሰው ላይ ጉዳት ለማድረስ በማሰብ ወይም በሚጎዳ መንገድ መጠቀም አይችሉም ፡፡\n\nቀይ መስቀል የኤ.ፒ.አይ. እና የመረጃ መቀበያዎች አጠቃቀምዎን ሊከታተል ይችላል። በእንደዚህ ዓይነት ቁጥጥር ውስጥ ጣልቃ ለመግባት ማንኛውንም ቴክኒካዊ ዘዴዎችን አይጠቀሙም ፤ እንዲሁም ቀይ መስቀል ማንኛውንም እንደዚህ ዓይነቱን ጣልቃ ገብነት ለማሸነፍ ቴክኒካዊ መንገዶችን ሊጠቀም ይችላል ፡፡\n\nየዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶች (Prepare, Respond, and Recover Messages) መቅረብ ያለባቸው በወቅቱ የክስተት ማንቂያ (Event Alert) አንገብጋቢ መቼት መሰረት ወቅታዊ ወይም የዘመኑ ሲሆኑ ብቻ ነው ፤ እንዲሁም ግለሰብ የዝግጅት ፣ እያንዳንዳቸውን የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶች (Prepare, Respond, and Recover Messages) በቀይ መስቀል የሚወጡ የመረጃ መቀበያዎች እና\/ወይም ተያያዥ የክስተት ማንቂያዎች (Event Alert) ወቅታዊ በሚሆኑበት ወቅት ማዘመን አለብዎት፡፡\n\nእያንዳንዱ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክት (Prepare, Respond, and Recover Message) መገናኘት ያለበት ለወጣበት መልክአ-ምድር ብቻ ነው:: የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶች እንደ አሜሪካን ቀይ መስቀል ወይም ሌላ የቀይ መስቀልን ወይም የቀይ ጨረቃ ብሔራዊ ማኅበረሰብን ወይም ድርጅትን እንደ ማጣቀሻ ከተጠቀሙ (እያንዳንዱ “ምንጭ ማጣቀሻ”) ለመረጃ መቀበያዎች በተዘጋጀው ፎርም ላይ ከእያንዳንዳቸው የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶች ጋር የተገናኘውን ምንጭ ማጣቀሻ መግለፅ አለብዎት፡፡ ማንኛውንም ምንጭ ማጣቀሻ መጠቀም አይቻልም::\n\nየመረጃ መቀበያዎችን ፣ የክስተት ማንቂያዎችን እና \/ ወይም የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶችን ወደ ሌላ ቋንቋ መተርጎም፣ መጠቀም፣ አርትኦት ማድረግ ወይም መከለስ ወይም የመረጃ መቀበያዎችን ፣ የክስተት ማንቂያዎችን እና \/ ወይም የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶችን ትርጉም መቀየር አይችሉም ፡፡\n\nየመረጃ መቀበያዎችን በርስዎ ሀላፊነት ወይም ቁጥጥር ውስጥ መሆናቸውን ማረጋገጥ አለብዎት::\n\nየክስተት ማንቂያዎችን እና የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶችን ማንኛውንም ማስታወቂያ ወይም ስፖንሰርሺፕን አካትቶ ለዋና ተጠቃሚዎች እንዲደርሱ ማድረግ አይችሉም ፡፡\n\nበጠቅላላው ወይም በከፊል የመረጃ መቀበያዎችን መዝገብ መያዝ አይችሉም ፡፡", + "body": "በቀይ መስቀል ለእርስዎ የተሰጠውን የምዝገባ ቁልፍ ምስጥራዊነት እና ደህንነት የመጠበቅ ሃላፊነት የእርስዎ ነው ፡፡ ከጊዜ ወደጊዜ ለማዘመን እና መረጃዎችን (Data Feeds) መቀበልን ለመቀጠል ከኤ.ፒ.አይ ጋር ተጓዳኝነትን ማስቀጠል የእርስዎ ሃላፊነት ነው፡፡ ቀይ መስቀል የዘመኑ የኤፒአይ ስሪቶችን እና መረጃዎችን በራሱ ምርጫ ሊለቅ ይችላል። አዲስ ስሪቶች ከቀደሙት ትግበራዎች ጋር ላይጣጣሙ ይችላሉ ፤ እንዲሁም በጣም በቅርብ ጊዜ የተሻሻለውን የመረጃ መቀበያ ስሪት በማንኛውም ጊዜ ለመጠቀም ተስማምተዋል።\n\nማንኛውንም የኤ.ፒ.አይ ክፍልን ወይም ማንኛውንም የቀይ መስቀልን ሶፍትዌር ላለማሻሻል ፣ ላለማሰራጨት ፣ ላለመበተን ፣ ላለማቀናጀት ወይም ላለመቀልበስ ተስማምተዋል ፡፡\n\nኤ.ፒ.አይ.ውን ወይም የመረጃ መቀበያውን ቀይ መስቀል በወሰነው ውሳኔ መሠረት ከተመጣጣኝ የጥያቄ መጠን በላይ ወይም ከመጠን በላይ ወይም አላግባብ ላይጠቀሙ ይችላሉ::\n\nበቀይ መስቀል ብቸኛ ውሳኔ መሠረት ኤ.ፒ.አይ. ወይም የመረጃ መቀበያዎችን በሕገ-ወጥ ፣ በተሳሳተ ፣ በቸልተኛ ፣ በተንኮል-አዘል መንገድ ቀይ መስቀል፣ የአገልግሎት አቅራቢዎች ፣ የይዘት አቅራቢዎች ወይም ሌላ ሰው ላይ ጉዳት ለማድረስ በማሰብ ወይም በሚጎዳ መንገድ መጠቀም አይችሉም ፡፡\n\nቀይ መስቀል የኤ.ፒ.አይ. እና የመረጃ መቀበያዎች አጠቃቀምዎን ሊከታተል ይችላል። በእንደዚህ ዓይነት ቁጥጥር ውስጥ ጣልቃ ለመግባት ማንኛውንም ቴክኒካዊ ዘዴዎችን አይጠቀሙም ፤ እንዲሁም ቀይ መስቀል ማንኛውንም እንደዚህ ዓይነቱን ጣልቃ ገብነት ለማሸነፍ ቴክኒካዊ መንገዶችን ሊጠቀም ይችላል ፡፡\n\nየዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶች (Prepare, Respond, and Recover Messages) መቅረብ ያለባቸው በወቅቱ የክስተት ማንቂያ (Event Alert) አንገብጋቢ መቼት መሰረት ወቅታዊ ወይም የዘመኑ ሲሆኑ ብቻ ነው ፤ እንዲሁም ግለሰብ የዝግጅት ፣ እያንዳንዳቸውን የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶች (Prepare, Respond, and Recover Messages) በቀይ መስቀል የሚወጡ የመረጃ መቀበያዎች እና/ወይም ተያያዥ የክስተት ማንቂያዎች (Event Alert) ወቅታዊ በሚሆኑበት ወቅት ማዘመን አለብዎት፡፡\n\nእያንዳንዱ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክት (Prepare, Respond, and Recover Message) መገናኘት ያለበት ለወጣበት መልክአ-ምድር ብቻ ነው:: የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶች እንደ አሜሪካን ቀይ መስቀል ወይም ሌላ የቀይ መስቀልን ወይም የቀይ ጨረቃ ብሔራዊ ማኅበረሰብን ወይም ድርጅትን እንደ ማጣቀሻ ከተጠቀሙ (እያንዳንዱ “ምንጭ ማጣቀሻ”) ለመረጃ መቀበያዎች በተዘጋጀው ፎርም ላይ ከእያንዳንዳቸው የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶች ጋር የተገናኘውን ምንጭ ማጣቀሻ መግለፅ አለብዎት፡፡ ማንኛውንም ምንጭ ማጣቀሻ መጠቀም አይቻልም::\n\nየመረጃ መቀበያዎችን ፣ የክስተት ማንቂያዎችን እና / ወይም የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶችን ወደ ሌላ ቋንቋ መተርጎም፣ መጠቀም፣ አርትኦት ማድረግ ወይም መከለስ ወይም የመረጃ መቀበያዎችን ፣ የክስተት ማንቂያዎችን እና / ወይም የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶችን ትርጉም መቀየር አይችሉም ፡፡\n\nየመረጃ መቀበያዎችን በርስዎ ሀላፊነት ወይም ቁጥጥር ውስጥ መሆናቸውን ማረጋገጥ አለብዎት::\n\nየክስተት ማንቂያዎችን እና የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶችን ማንኛውንም ማስታወቂያ ወይም ስፖንሰርሺፕን አካትቶ ለዋና ተጠቃሚዎች እንዲደርሱ ማድረግ አይችሉም ፡፡\n\nበጠቅላላው ወይም በከፊል የመረጃ መቀበያዎችን መዝገብ መያዝ አይችሉም ፡፡", "contact": "ኤ.ፒ.አይ.ን በተመለከተ ማንኛውም ጥያቄ ካለዎት እባክዎን ቀይ መስቀልን በ {0} ያነጋግሩ ፡፡", - "disclaimer": "ኤ.ፒ.አይ እና የመረጃ መቀበያዎች ለመረጃ እና ለትምህርታዊ ዓላማዎች ብቻ በ 'እንደነበረው' እና 'በተገኘው' መሠረት የተሰጡ ናቸው። ቀይ መስቀል በግልጽም ሆነ በተዘዋዋሪ ምንም ዓይነት ውክልና ወይም ዋስትና አይሰጥም ፡፡ በተዘዋዋሪ የተመለከቱ የመሸጥ ዋስትናዎች እና ብቃት ማረጋገጫዎችን ጨምሮ ቀይ መስቀል ሁሉንም ዋስትናዎች አይቀበልም፡፡ በቀጥታ፣ በተዘዋዋሪ፣ በአጋጣሚ፣ በቅጣት እና በተከታይነት የሚፈጠሩ ጉዳቶችን ጨምሮ ኤ.ፒ.አይን፣ የመረጃ መቀበያዎችን ፣ የክስተት ማንቂያዎችን እና \/ ወይም የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶችን በመጠቀም ወቅት ለሚደርሱ ጉዳቶች ቀይ መስቀል እና ሰራተኞቹ ፣ መኮንኖች ፣ ገዥዎች እና ወኪሎች እንዲሁም ፈቃድ ሰጪዎች ተጠያቂ አይሆኑም ፡፡\n\nቀይ መስቀል ኤ.ፒ.አይን፣ የመረጃ መቀበያዎችን ፣ የክስተት ማንቂያዎችን እና \/ ወይም የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶችን ቅደም ተከተል ፣ ትክክለኛነት ፣ እውነተኝነት ወይም ሙሉነት ዋስትና አይሰጥም እንዲሁም በምንም መንገድ ለእርስዎ ወይም ለዋና ተጠቃሚዎችዎ ወይም ለማንኛውም ሶስተኛ አካል ማንኛውንም መዘግየቶች ፣ ጉድለቶች፣ ስህተቶች ወይም ግድፈቶችን ጨምሮ ያለምንም ገደብ ቀጥሎ ያሉትን ኤ.ፒ.አይ፣ የመረጃ መቀበያዎች ፣ የክስተት ማንቂያዎችን እና \/ ወይም የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶች በተመለከተ ተጠያቂ አይሆንም፡፡", + "disclaimer": "ኤ.ፒ.አይ እና የመረጃ መቀበያዎች ለመረጃ እና ለትምህርታዊ ዓላማዎች ብቻ በ 'እንደነበረው' እና 'በተገኘው' መሠረት የተሰጡ ናቸው። ቀይ መስቀል በግልጽም ሆነ በተዘዋዋሪ ምንም ዓይነት ውክልና ወይም ዋስትና አይሰጥም ፡፡ በተዘዋዋሪ የተመለከቱ የመሸጥ ዋስትናዎች እና ብቃት ማረጋገጫዎችን ጨምሮ ቀይ መስቀል ሁሉንም ዋስትናዎች አይቀበልም፡፡ በቀጥታ፣ በተዘዋዋሪ፣ በአጋጣሚ፣ በቅጣት እና በተከታይነት የሚፈጠሩ ጉዳቶችን ጨምሮ ኤ.ፒ.አይን፣ የመረጃ መቀበያዎችን ፣ የክስተት ማንቂያዎችን እና / ወይም የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶችን በመጠቀም ወቅት ለሚደርሱ ጉዳቶች ቀይ መስቀል እና ሰራተኞቹ ፣ መኮንኖች ፣ ገዥዎች እና ወኪሎች እንዲሁም ፈቃድ ሰጪዎች ተጠያቂ አይሆኑም ፡፡\n\nቀይ መስቀል ኤ.ፒ.አይን፣ የመረጃ መቀበያዎችን ፣ የክስተት ማንቂያዎችን እና / ወይም የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶችን ቅደም ተከተል ፣ ትክክለኛነት ፣ እውነተኝነት ወይም ሙሉነት ዋስትና አይሰጥም እንዲሁም በምንም መንገድ ለእርስዎ ወይም ለዋና ተጠቃሚዎችዎ ወይም ለማንኛውም ሶስተኛ አካል ማንኛውንም መዘግየቶች ፣ ጉድለቶች፣ ስህተቶች ወይም ግድፈቶችን ጨምሮ ያለምንም ገደብ ቀጥሎ ያሉትን ኤ.ፒ.አይ፣ የመረጃ መቀበያዎች ፣ የክስተት ማንቂያዎችን እና / ወይም የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶች በተመለከተ ተጠያቂ አይሆንም፡፡", "entire_agreement": { "body": "የኤ.ፒ.አይ. ውሎች በዚህ ጉዳይ ላይ በቀይ መስቀል እና በርስዎ መካከል የተደረገ የተሟላ እና ብቸኛ ስምምነትን የሚያካትቱ ሲሆን ከዚህ በፊት የተደረጉ የቃል ወይም የጽሑፍ ግንዛቤዎችን ፣ ግንኙነቶችን ወይም በዚህ ውስጥ ያልተካተቱ ስምምነቶችን ሁሉ ይተካሉ ፡፡ ቀይ መስቀል ይህንን ስምምነት በማንኛውም ጊዜ የማሻሻል ወይም የመሻር መብቱ የተጠበቀ ነው ፡፡", "heading": "አጠቃላይ ስምምነት:" @@ -867,11 +870,12 @@ "heading": "የኤ.ፒ.አይ. ዋና ተጠቃሚ ፈቃድ አሰጣጥ ስምምነት", "intro": "እስማማለሁ: አገልግሎቱን በመጠቀም ወይም የቀረበው ሣጥን ላይ ምልክት በማድረግ ተጠቃሚው በዚህ ስምምነት እንዲታሰር እየተስማማ ነው።\n\nኤ.ፒ.አይ.ው እርስዎ (“እርስዎ”) በቀይ መስቀል በኩል የሚቀርቡ የዓለም የአየር ሁኔታ እና የአደጋ ክስተት ማስጠንቀቂያ እና የእይታ ማስታወቂያዎችን (“የክስተት ማንቂያዎች”) እና ተግባራዊ እና አውዳዊ መልእክቶችን ጨምሮ ለአካባቢያዊ አደጋዎች በአደጋው አይነት እና አስቸኳይነት መሰረት መዘጋጀትን ጨምሮ የመረጃ መቀብያዎችን (የዝግጅት ፣ የምላሽ አሰጣጥ እና የመልሶ ማግኛ መልዕክቶች እና በአጠቃላይ የክስተት ማንቂያዎችን እና የመረጃ መቀብያዎችን) ሰርስረው እንዲያወጡ የሚያስችልዎ መሳሪያ ነው፡፡ ተዘጋጅ፣ መልስ እና እንደገና አግኝ የሚሉ መልእክቶች ከዝግጅት ማንቂያዎች ወይም ሌላ ማስጠንቀቂያ ጋር እና በእርስዎ መተግበሪያ ውስጥ ከአየር ንብረት እና የአደጋ ክስተት ጋር ተያያዥ ከሆኑ የማሳሰቢያ ማስታዎሻዎች ጋር አብረው እንዲመጡ የሚታሰቡ ናቸው። የእርስዎ መረጃ አቅርቦት በኤፒአይ ቃላት የሚመራ ነው።", "license_limitations": { - "body": "በየጊዜው ከሚታደሰው ከኤፒ አይ ጋር ያለውን ተመጣጣኝነት እስከጠበቁ ድረስ የመረጃ አቅርቦቶችን ለኤፒአይ ውሎች ከሚሆኑ ትግበራዎች ጋር አያይዘው ሊጠቀሙ ይችላሉ። የራስዎን መተግበሪያ (“የመጨረሻ ተጠቃሚዎች”) የክስተት ማስጠንቀቂያዎች እና አግባብነት ያለው ዐውደ-ጽሑፍ የተስተካከለ መልዕክቶችን በአስቸኳይ ፣ በፍጥነት በማደስ ፣ መልሶ የማግኘት ፣ የመጠቀም ፣ የማባዛት እና የማሰራጨት ብቸኛ ያልሆነ ፣ ውስን እና ሊሻር የሚችል መብት ተሰጥቶዎታል ፡፡ በኤፒአይ ውሎች መሠረት ከእያንዳንዱ የውሂብ ምግቦች የግለሰብ የዝግጅት ማስጠንቀቂያዎች ቅንብር። ኤፒአይን መጠቀም የሚችሉት ከንግድ ጋር ያልተያያዙ በኤፒአይን ውል መሠረት የመረጃ አቅርቦቶችን ለማቃለል ብቻ ነው። የመረጃ አቅርቦቶች፣ የዝግጅት ማስጠንቀቂያዎችን እና \/ ወይም ለማዘጋጀት ፣ ምላሽ ለመስጠት እና መልዕክቶችን ያለገደብ ጨምሮ ፣ መልሶ በመሸጥ ፣ እነሱን ለመድረስ ክፍያ በመጠየቅ ፣ እነሱን እንደገና ለማሰራጨት ክፍያ ለመሙላት ወይም ክፍያ ለመሙላት በማንኛውም ሁኔታ ኤ.ፒ.አይ. መጠቀም አይችሉም ፡፡ በእነሱ ላይ የተመሠረተ የመነሻ ሥራዎችን ለመፍጠር ፡፡ የኤፒአይ ኀላፊነት፣ ባለቤትነት፣ መብትና ትርፍ የቀይ መስቀልና ፈቃድ የሰጡት አካላት ነው። ይህም የሚያካትተው ዝግጅትን፣ ምላሽን፣ የጠፉ መልእክቶችን የመመለስን፣ የኹናት ማስጠንቀቂያዎችን፣ የመረጃ አቅርቦትንና የምንጭ ጣቀሻዎችን ነው። በግልጽ ያልተሰጡ መብቶች በሙሉ ተጠብቀዋል ፡፡", + "body": "በየጊዜው ከሚታደሰው ከኤፒ አይ ጋር ያለውን ተመጣጣኝነት እስከጠበቁ ድረስ የመረጃ አቅርቦቶችን ለኤፒአይ ውሎች ከሚሆኑ ትግበራዎች ጋር አያይዘው ሊጠቀሙ ይችላሉ። የራስዎን መተግበሪያ (“የመጨረሻ ተጠቃሚዎች”) የክስተት ማስጠንቀቂያዎች እና አግባብነት ያለው ዐውደ-ጽሑፍ የተስተካከለ መልዕክቶችን በአስቸኳይ ፣ በፍጥነት በማደስ ፣ መልሶ የማግኘት ፣ የመጠቀም ፣ የማባዛት እና የማሰራጨት ብቸኛ ያልሆነ ፣ ውስን እና ሊሻር የሚችል መብት ተሰጥቶዎታል ፡፡ በኤፒአይ ውሎች መሠረት ከእያንዳንዱ የውሂብ ምግቦች የግለሰብ የዝግጅት ማስጠንቀቂያዎች ቅንብር። ኤፒአይን መጠቀም የሚችሉት ከንግድ ጋር ያልተያያዙ በኤፒአይን ውል መሠረት የመረጃ አቅርቦቶችን ለማቃለል ብቻ ነው። የመረጃ አቅርቦቶች፣ የዝግጅት ማስጠንቀቂያዎችን እና / ወይም ለማዘጋጀት ፣ ምላሽ ለመስጠት እና መልዕክቶችን ያለገደብ ጨምሮ ፣ መልሶ በመሸጥ ፣ እነሱን ለመድረስ ክፍያ በመጠየቅ ፣ እነሱን እንደገና ለማሰራጨት ክፍያ ለመሙላት ወይም ክፍያ ለመሙላት በማንኛውም ሁኔታ ኤ.ፒ.አይ. መጠቀም አይችሉም ፡፡ በእነሱ ላይ የተመሠረተ የመነሻ ሥራዎችን ለመፍጠር ፡፡ የኤፒአይ ኀላፊነት፣ ባለቤትነት፣ መብትና ትርፍ የቀይ መስቀልና ፈቃድ የሰጡት አካላት ነው። ይህም የሚያካትተው ዝግጅትን፣ ምላሽን፣ የጠፉ መልእክቶችን የመመለስን፣ የኹናት ማስጠንቀቂያዎችን፣ የመረጃ አቅርቦትንና የምንጭ ጣቀሻዎችን ነው። በግልጽ ያልተሰጡ መብቶች በሙሉ ተጠብቀዋል ፡፡", "heading": "ፈቃድና ገደቦች:-" }, "overview": { - "body": "ግሎባል የአደጋ ዝግጁነት ማዕከል የደህንነት መልዕክት ዳታቤዝ አገልግሎት መተግበሪያ ፕሮግራም በይነገጽ (“ኤፒአይ”) በአሜሪካ ብሔራዊ ቀይ መስቀል (“ቀይ መስቀል”) ለእርስዎ ይገኛል። ኤፒአይ የምዝገባ ቁልፍ ያስፈልገዋል። በምዝገባ ሂደት ውስጥ፣ ከዚህ በታች ያለውን ሰነድ በማውረድ እና ከታች ያለውን 'ተቀብያለሁ' የሚለውን ቁልፍ በመጫን የተጠቃሚውን ስምምነት ውሎች ከዚህ በታች ካለው ሰነድ በማውረድ እና 'ተቀብያለሁ' የሚለውን ቁልፍ በመጫን በ {0} ላይ ከሚገኘው ቀይ መስቀል ድር ጣቢያ የአገልግሎት ውል ስምምነት ውሎች ጋር (በጋራ “ኤፒአይ ውሎች”) መስማማት አለብዎት። ኤፒአይ ውሎች የእርስዎን የኤፒአይ አጠቃቀም እና በኤፒአይ በኩል የሚገኙትን ሊወርዱ የሚችሉ የኤሌክትሮኒክስ ቁሳቁሶችን ይቆጣጠራሉ። {1}", "cta": "ለመመዝገብ ይህንን ይጫኑ።" + "body": "ግሎባል የአደጋ ዝግጁነት ማዕከል የደህንነት መልዕክት ዳታቤዝ አገልግሎት መተግበሪያ ፕሮግራም በይነገጽ (“ኤፒአይ”) በአሜሪካ ብሔራዊ ቀይ መስቀል (“ቀይ መስቀል”) ለእርስዎ ይገኛል። ኤፒአይ የምዝገባ ቁልፍ ያስፈልገዋል። በምዝገባ ሂደት ውስጥ፣ ከዚህ በታች ያለውን ሰነድ በማውረድ እና ከታች ያለውን 'ተቀብያለሁ' የሚለውን ቁልፍ በመጫን የተጠቃሚውን ስምምነት ውሎች ከዚህ በታች ካለው ሰነድ በማውረድ እና 'ተቀብያለሁ' የሚለውን ቁልፍ በመጫን በ {0} ላይ ከሚገኘው ቀይ መስቀል ድር ጣቢያ የአገልግሎት ውል ስምምነት ውሎች ጋር (በጋራ “ኤፒአይ ውሎች”) መስማማት አለብዎት። ኤፒአይ ውሎች የእርስዎን የኤፒአይ አጠቃቀም እና በኤፒአይ በኩል የሚገኙትን ሊወርዱ የሚችሉ የኤሌክትሮኒክስ ቁሳቁሶችን ይቆጣጠራሉ። {1}", + "cta": "ለመመዝገብ ይህንን ይጫኑ።" }, "privacy_policy": { "body": "ኤፒአይ ውስጥ የተወሰኑ መርሃግብሮች፣ አገልግሎቶች፣ ቈሳቍስ፤ የግዢ አማራጮች፤ ዕቆች፤ ወይም መረጃዎች የሚያስፈልጋቸው እርስዎን ሊያሳውቁ የሚችሉ የግል መረጃዎች አቅርቦትን፣ ተጠቃሚነትንና ሥርጭትን መኾኑን ተረድተዋል፣ ተቀብለዋል እንዲሁም ተስማምተዋል። በዚህ መሠረት ኤ.ፒ.አይን ለመድረስ እና ለመጠቀም ከፈለጉ ኤፒአይው መጠቀሙ በ {0} በተለጠፈው የግላዊነት ፖሊሲ ውስጥ የተካተቱትን የግል መለያ መረጃዎችን የመሰብሰብና የመጠቀም ልምዶችን መቀበልን እንደሚቀበል እውቅና ይሰጡዎታል እንዲሁም ይስማማሉ ፡፡", @@ -885,17 +889,17 @@ "two": "በቀይ መስቀል ወይም በኤ.ፒ.አይ. የተቀጠሩ ማናቸውንም የማረጋገጫ ቴክኖሎጂዎች ያለ ምንም ገደብ ጨምሮ ማንኛውንም ቁልፍ ወይም የደህንነት ዘዴዎችን ለመከልከል ወይም ለማሻሻል ፡፡", "three": "ለራስዎ መለያ ለእርስዎ ከሚቀርበው በስተቀር ለቀይ መስቀል የመለያ መግቢያ ስሞችን ፣ የይለፍ ቃሎችን ወይም ሌሎች የማረጋገጫ ማስረጃዎችን ለመጠየቅ ፣ ለመሰብሰብ ፣ ለመጠየቅ ወይም በሌላ መንገድ ለማግኘት ፡፡", "four": " በቀይ መስቀል ወይም ከቀይ መስቀል ጋር ተያያዥነት ባላቸው ድርጅቶች ወይም ማኅበራት መዋሃድን፣ መደገፍን ወይም መታገዝን መግለጽ ወይም ማካተት", - "five": "ኤፒአዩን፣ የመረጃ አቅርቦቱን፣ የክስተት ማንቂያ እና\/ ወይም የመዘጋጃ፣ የምላሽ መስጫ፣ እና የመመለሻ መልእክቶችን የእርስዎ እንደሆን ወይም እንደፈጠሩት ለማስቀመጥ ወይም ለማመላከት", + "five": "ኤፒአዩን፣ የመረጃ አቅርቦቱን፣ የክስተት ማንቂያ እና/ ወይም የመዘጋጃ፣ የምላሽ መስጫ፣ እና የመመለሻ መልእክቶችን የእርስዎ እንደሆን ወይም እንደፈጠሩት ለማስቀመጥ ወይም ለማመላከት", "six": "ለጒዳት የሚያጋልጥ ማንኛውንም ዐይነት ቫይረስ፣ እንቅፋት፣ ትሮጃን ሆርስም ሆነ ሌላ ለማስተላለፍ" } }, - "reserve_rights": "ቀይ መስቀል ኤፒአይ እና የመረጃ ምግቦች ሙሉ በሙሉ ወይም በከፊል ለጊዜው ወይም በቋሚነት በማንኛውም ጊዜ ያለ ቅድመ ማስጠንቀቂያ የመቀየር እና \/ ወይም ከአሁን በኋላ የመቀበል መብቱ የተጠበቀ ነው ፡፡ ጥርጣሬን ለማስቀረት የቀይ መስቀል ኤ.ፒ.አይ. ወይም የውሂብ ምግቦች ለእርስዎ እንዲገኙ በዚህ ውስጥ የሚያስገድድ አንዳችም ነገር የለም ፣ እናም ማንኛውም መዳረሻ በቀይ መስቀል ብቸኛ እና በፍፁም ውሳኔ ውስጥ መሆኑን ይስማማሉ እና ይቀበላሉ ፡፡", + "reserve_rights": "ቀይ መስቀል ኤፒአይ እና የመረጃ ምግቦች ሙሉ በሙሉ ወይም በከፊል ለጊዜው ወይም በቋሚነት በማንኛውም ጊዜ ያለ ቅድመ ማስጠንቀቂያ የመቀየር እና / ወይም ከአሁን በኋላ የመቀበል መብቱ የተጠበቀ ነው ፡፡ ጥርጣሬን ለማስቀረት የቀይ መስቀል ኤ.ፒ.አይ. ወይም የውሂብ ምግቦች ለእርስዎ እንዲገኙ በዚህ ውስጥ የሚያስገድድ አንዳችም ነገር የለም ፣ እናም ማንኛውም መዳረሻ በቀይ መስቀል ብቸኛ እና በፍፁም ውሳኔ ውስጥ መሆኑን ይስማማሉ እና ይቀበላሉ ፡፡", "severability": { "body": "የኤ.ፒ.አይ. ውሎች ማንኛውም ቃል ወይም አቅርቦት ዋጋ ቢስነት የሌላ ማንኛውም አቅርቦት ትክክለኛነት ላይ ተጽዕኖ አይኖረውም ፡፡", "heading": "ሊሰበር የሚችልና የሚተው\n" }, "suspension": { - "body": "ቀይ መስቀሉ በኤፒአይ ውሎች ላይ በተጠቀሰው መሠረት ኤፒአይ ወይም የውሂብ ምግብ ባልተፈቀደ አጠቃቀም ላይ የተሰማሩ እንደሆኑ ወይም ኤ.ፒ.አይ ወይም የውሂብ ምግብን እየተጠቀሙ መሆኑን የሚወስን ከሆነ በቀይ መስቀል ብቸኛ ምርጫው መዳረሻዎን የማገድ ወይም የማቋረጥ መብቱ የተጠበቀ ነው ፡፡ በማንኛውም ሰው ወይም በቀይ መስቀል አውታረመረቦች ደህንነት እና \/ ወይም ደህንነት ላይ አደጋ በሚያደርስ \/ በሚጎዳ እንቅስቃሴ ውስጥ ፡፡", + "body": "ቀይ መስቀሉ በኤፒአይ ውሎች ላይ በተጠቀሰው መሠረት ኤፒአይ ወይም የውሂብ ምግብ ባልተፈቀደ አጠቃቀም ላይ የተሰማሩ እንደሆኑ ወይም ኤ.ፒ.አይ ወይም የውሂብ ምግብን እየተጠቀሙ መሆኑን የሚወስን ከሆነ በቀይ መስቀል ብቸኛ ምርጫው መዳረሻዎን የማገድ ወይም የማቋረጥ መብቱ የተጠበቀ ነው ፡፡ በማንኛውም ሰው ወይም በቀይ መስቀል አውታረመረቦች ደህንነት እና / ወይም ደህንነት ላይ አደጋ በሚያደርስ / በሚጎዳ እንቅስቃሴ ውስጥ ፡፡", "heading": "እገዳ ወይም ማቋረጥ" } }, diff --git a/resources/lang/ar.json b/resources/lang/ar.json index 46fd668..5e7aced 100644 --- a/resources/lang/ar.json +++ b/resources/lang/ar.json @@ -449,9 +449,9 @@ "immediate": "فوري", "warning": "تحذير", "anticipated": "متوقع", - "assess_and_plan":"تقييم وتخطيط", - "mitigate_risks":"تخفيف المخاطرة", - "prepare_to_respond":"الاستعداد للاستجابة", + "assess_and_plan": "تقييم وتخطيط", + "mitigate_risks": "تخفيف المخاطرة", + "prepare_to_respond": "الاستعداد للاستجابة", "recover": "التعافي" }, "content": { @@ -594,7 +594,8 @@ "desc_tool": "قدم وصفًا موجزًا عن الخطر والرسائل. يجب أن يكون هذا من 1-3 جمل.", "title_tool": "على سبيل المثال: رسائل السلامة للفيضانات", "safety_tool": "هذا إجراء ذو أولوية يجب على الشخص اتخاذه للحفاظ على سلامته. يجب أن تكون الرسالة موجهة نحو العمل وموجزة وأقل من 50 حرفًا.", - "supporting_tool": "يوفر هذا مزيدًا من التفاصيل لدعم الإجراء الرئيسي ذي الأولوية. يجب أن تكون الرسالة موجهة نحو العمل وموجزة." + "supporting_tool": "يوفر هذا مزيدًا من التفاصيل لدعم الإجراء الرئيسي ذي الأولوية. يجب أن تكون الرسالة موجهة نحو العمل وموجزة.", + "mitigate_risk": "تخفيف المخاطرة" }, "message_editor": { "title": "محرر الإسناد", diff --git a/resources/lang/bn.json b/resources/lang/bn.json index 4efe0b2..b872f5a 100644 --- a/resources/lang/bn.json +++ b/resources/lang/bn.json @@ -197,13 +197,15 @@ "steps": { "one": { "heading": "১ম ধাপ - সাইন আপ", - "body": "নিরাপত্তা বার্তা ডেটাবেস API থেকে ডেটা ব্যবহার শুরু করতে, প্রথমে নিরাপত্তা বার্তা ডেটাবেস পোর্টালে {0} করুন।\n\nআপনি আপনার ফেসবুক ও গুগল অ্যাকাউন্ট অথবা একটি ইমেল ঠিকানা ব্যবহার করে একটি অ্যাকাউন্ট তৈরি করতে পারেন।", "create_account_alt": "অ্যাকাউন্ট তৈরি করুন", + "body": "নিরাপত্তা বার্তা ডেটাবেস API থেকে ডেটা ব্যবহার শুরু করতে, প্রথমে নিরাপত্তা বার্তা ডেটাবেস পোর্টালে {0} করুন।\n\nআপনি আপনার ফেসবুক ও গুগল অ্যাকাউন্ট অথবা একটি ইমেল ঠিকানা ব্যবহার করে একটি অ্যাকাউন্ট তৈরি করতে পারেন।", + "create_account_alt": "অ্যাকাউন্ট তৈরি করুন", "existing_account": "আপনার যদি ইতিমধ্যে একটি অ্যাকাউন্ট থাকে, তবে অনুগ্রহ করে {0} দিন।", "login_cta": "লগ ইন করুন", "sign_up_cta": "সাইন আপ করুন" }, "two": { - "body": "API ব্যবহার করতে, আপনাকে নিরাপত্তা বার্তা ডেটাবেস পোর্টালে একটি অ্যাপ্লিকেশন তৈরি করতে হবে। আপনি কী তৈরি করছেন সে সম্পর্কে আমাদের কিছু বলুন।", "create_app_alt": "অ্যাপ তৈরি করুন", + "body": "API ব্যবহার করতে, আপনাকে নিরাপত্তা বার্তা ডেটাবেস পোর্টালে একটি অ্যাপ্লিকেশন তৈরি করতে হবে। আপনি কী তৈরি করছেন সে সম্পর্কে আমাদের কিছু বলুন।", + "create_app_alt": "অ্যাপ তৈরি করুন", "heading": "২য় ধাপ- অ্যাপ তৈরি করুন" }, "three": { @@ -214,7 +216,8 @@ }, "four": { "api_docs_cta": "এপিআই নথিকরণ", - "body": "নিরাপত্তা বার্তা ডেটাবেস API HTTP(S) ব্যবহার করে এবং প্রকাশিত ডেটা পাওয়ার জন্য RESTful এন্ডপয়েন্ট সরবরাহ করে।\n\nপ্রতিটি অনুরোধ পূর্ববর্তী ধাপে তৈরি API কী ব্যবহার করে প্রমাণীকরণ করা আবশ্যক।", "example_title": "অনুরোধের উদাহরণ", + "body": "নিরাপত্তা বার্তা ডেটাবেস API HTTP(S) ব্যবহার করে এবং প্রকাশিত ডেটা পাওয়ার জন্য RESTful এন্ডপয়েন্ট সরবরাহ করে।\n\nপ্রতিটি অনুরোধ পূর্ববর্তী ধাপে তৈরি API কী ব্যবহার করে প্রমাণীকরণ করা আবশ্যক।", + "example_title": "অনুরোধের উদাহরণ", "heading": "ধাপ ৪- অনুরোধ করুন", "moreInfo": "এপিআই -এর এন্ড পয়েন্টগুলোর উপর অতিরিক্ত তথ্য পেতে, {0} দেখুন।" } @@ -438,9 +441,9 @@ "immediate": "তাৎক্ষণিক", "warning": "সতর্কীকরণ", "anticipated": "প্রত্যাশিত", - "assess_and_plan":"মূল্যায়ন এবং পরিকল্পনা", - "mitigate_risks":"ঝুঁকি হ্রাস করুন", - "prepare_to_respond":"সাড়া দিতে প্রস্তুত", + "assess_and_plan": "মূল্যায়ন এবং পরিকল্পনা", + "mitigate_risks": "ঝুঁকি হ্রাস করুন", + "prepare_to_respond": "সাড়া দিতে প্রস্তুত", "recover": "পুনরুদ্ধার" }, "content": { @@ -523,7 +526,7 @@ "seasonalForecast_extra": "ঋতু ভিত্তিক পূর্বাভাস হল একটি বিপজ্জনক ঘটনার পূর্বাভাসের বিবৃতি। গৃহীত পদক্ষেপগুলো হচ্ছে পরিবারকে সুরক্ষা করার জন্য সম্ভাব্য ঝুঁকিগুলো ধারণা করা এবং ওগুলো কমাতে পরিকল্পিতভাবে কাজ করা।", "watch": "পর্যবেক্ষণ করা", "watch_help": "সাড়া দিতে প্রস্তুত", - "watch_extra": "যখন একটি বিপজ্জনক ঘটনার ঝুঁকি অত্যন্ত প্রবল হয়ে ওঠে তখন একটি পর্যবেক্ষন জারি করা হয় কিন্তু এর উপস্থিতি, অবস্থান এবং\/বা সময় তখন পর্যন্ত অনুপস্থিত থাকে। এর উদ্দেশ্য হল প্রতিরক্ষামূলক কাজ এবং প্রস্তুতির জন্য পর্যাপ্ত সময় দেয়া।", + "watch_extra": "যখন একটি বিপজ্জনক ঘটনার ঝুঁকি অত্যন্ত প্রবল হয়ে ওঠে তখন একটি পর্যবেক্ষন জারি করা হয় কিন্তু এর উপস্থিতি, অবস্থান এবং/বা সময় তখন পর্যন্ত অনুপস্থিত থাকে। এর উদ্দেশ্য হল প্রতিরক্ষামূলক কাজ এবং প্রস্তুতির জন্য পর্যাপ্ত সময় দেয়া।", "warning": "সতর্কীকরণ", "warning_help": "সাড়া দিতে প্রস্তুত", "warning_extra": "যখন কোন বিপজ্জনক ঘটনা ঘটে, ঘটা আসন্ন হয় বা ঘটে যাওয়ার খুব বেশি সম্ভাবনা থাকে তখন একটি সতর্কতা জারি করা হয়। এর অর্থ হল পরিস্থিতি জীবন বা সম্পত্তির জন্য হুমকিস্বরূপ। এই বিপদের সম্মুখে মানুষদের প্রতিরক্ষামূলক পদক্ষেপ নেওয়া দরকার।", @@ -550,7 +553,8 @@ "disaster_risk_reduction": "দুর্যোগ ঝুঁকি হ্রাস", "disaster_risk_reduction_description": "পিএপিই থেকে মূল নিরাপত্তা বার্তা", "recovery": "পুনরুদ্ধার", - "recovery_description": "পুনরুদ্ধার কার্যক্রমের জন্য মূল নিরাপত্তা" + "recovery_description": "পুনরুদ্ধার কার্যক্রমের জন্য মূল নিরাপত্তা", + "mitigate_risk": "ঝুঁকি হ্রাস করুন" }, "message_editor": { "title": "অ্যাট্রিবিউশন সম্পাদক", @@ -610,7 +614,7 @@ "bad_request_error_codes": { "30001": "কলামের শিরোনামগুলো টেমপ্লেটের সাথে মিলছে না", "30002": "অ‍্যাট্রিবিউশনের নাম, বার্তা অথবা URL অনুপস্থিত", - "30003": "অকার্যকর অ‍্যাট্রিবিউশন URL - অনুগ্রহ করে নিশ্চিত করুন যে প্রোটোকল উপস্থিত, যেমন https: \/\/", + "30003": "অকার্যকর অ‍্যাট্রিবিউশন URL - অনুগ্রহ করে নিশ্চিত করুন যে প্রোটোকল উপস্থিত, যেমন https: //", "40001": "অবৈধ দেশ কোড প্রদান করা হয়েছে", "40002": "যে সমাজ নির্বাচিত করা হয়েছে তা নির্বাচিত ফাইলের মধ্যে থাকা সমাজের সঙ্গে মিলছে না", "40003": "যে তারিখে নির্বাচিত ফাইলটি এক্সপোর্ট করা হয়েছে তা ত্রুটিযুক্ত এবং ইমপোর্ট সম্পূর্ণ করা যায় নি" @@ -681,7 +685,7 @@ }, "landing": { "strapline": "নিরাপত্তা বার্তা ডেটাবেস পরিষেবা", - "strapline_part_2": "গ্লোবাল রেড ক্রস \/ রেড ক্রিসেন্ট এর মূল সুরক্ষা বার্তা", + "strapline_part_2": "গ্লোবাল রেড ক্রস / রেড ক্রিসেন্ট এর মূল সুরক্ষা বার্তা", "head_1": "IFRC নিরাপত্তা", "head_2": "বার্তা ডেটাবেস", "head_text_1": "IFRC জনসচেতনতা এবং এর উপর ভিত্তি করে নিরাপত্তা বার্তা", @@ -736,7 +740,7 @@ "fake_alert_heading": "চরম ঠান্ডার জন্য সতর্কীকরণ", "fake_alert_description": "Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est.", "fake_alert_time": "১ ঘণ্টা পূর্বে", - "fake_alert_time_exact": "০৫\/০২\/১৮ তারিখে ০৫:১৫ কেন্দ্রীয় সময়", + "fake_alert_time_exact": "০৫/০২/১৮ তারিখে ০৫:১৫ কেন্দ্রীয় সময়", "use_cases": { "heading": "আরও জানুন", "first_heading": "এটা কিভাবে কাজ করে", @@ -777,7 +781,7 @@ }, "data_preview": { "heading": "নিরাপত্তা বার্তা", - "sub_heading": "বিশ্বব্যাপী রেড ক্রস \/ রেড ক্রিসেন্ট ন্যাশনাল সোসাইটির কাছ থেকে কী অ‍্যাকশন মেসেজগুলো দেখতে সাইন আপ করুন" + "sub_heading": "বিশ্বব্যাপী রেড ক্রস / রেড ক্রিসেন্ট ন্যাশনাল সোসাইটির কাছ থেকে কী অ‍্যাকশন মেসেজগুলো দেখতে সাইন আপ করুন" }, "footer": { "terms_conditions": "নিয়ম ও শর্তাবলী", @@ -833,10 +837,10 @@ "industries": { "media": "মিডিয়া", "emergency": "জরুরি ব্যবস্থাপনা", - "non_profit": "অলাভজনক\/এনজিও", + "non_profit": "অলাভজনক/এনজিও", "humanitarian": "মানবিক সাহায্য সংস্থা", - "red_cross": "রেড ক্রস \/ রেড ক্রিসেন্ট", - "education": "শিক্ষা\/একাডেমিয়া", + "red_cross": "রেড ক্রস / রেড ক্রিসেন্ট", + "education": "শিক্ষা/একাডেমিয়া", "gov": "সরকারী সংস্থা", "other": "অন্যান্য" }, @@ -851,9 +855,9 @@ "body": "ডিসট্রিক্ট অফ কলম্বিয়ার আইন গুলির দ্বারা কোনও নীতি কার্যকর না করে এই চুক্তির অধীনে থাকা সমস্ত অধিকার এবং বাধ্যবাধকতা পরিচালনা করবে।", "heading": "প্রযোজ্য আইন:" }, - "body": "রেড ক্রস প্রদত্ত রেজিষ্ট্রেশন কী-এর গোপনীয়তা এবং সুরক্ষা বজায় রাখার জন্য আপনি দায় বদ্ধ থাকবেন। ডেটা ফিড গুলি গ্রহণ করা চালিয়ে যাওয়ার জন্য মাঝে মাঝে আপডেট হিসাবে API-এর সাথে সামঞ্জস্য বজায় রাখার জন্য আপনি দায়বদ্ধ থাকবেন। রেড ক্রস তার নিজস্ব বিবেচনার ভিত্তিতে এপিআই এবং ডেটা ফিড গুলির আপডেট সংস্করণ প্রকাশ করতে পারে। নতুন সংস্করণগুলো পূর্ববর্তী বাস্তবায়নের সাথে সামঞ্জস্যপূর্ণ নাও হতে পারে এবং আপনি সর্বদা ডেটা ফিড গুলির সর্বশেষ আপডেট হওয়া সংস্করণটি ব্যবহার করতে সম্মত থাকবেন।\n\nআপনাকে সম্মত হতে হবে যে এপিআই বা রেড ক্রসের কোনও সফটওয়্যারের কোনও অংশ সংশোধন, বিতরণ, ডি কম্পাইল, বিচ্ছিন্ন করা, বা রিভার্স ইনজিনিয়ারিং করা যাবে না।\n\nআপনি API বা ডেটা ফিড গুলি এমনভাবে ব্যবহার করতে পারবেন না যা যুক্তিসঙ্গত অনুরোধের পরিমাণকে ছাড়িয়ে যায় বা অতিরিক্ত বা আপত্তিজনক ব্যবহার করে, যা রেড ক্রসের নিজস্ব বিবেচনার ভিত্তিতে নির্ধারিত।\n\nআপনি এপিআই অথবা ডেটা ফিড গুলি এমনভাবে ব্যবহার করতে পারবেন না যা বেআইনী, বিভ্রান্তিকর, অবহেলাপূর্ণ, বিদ্বেষপূর্ণ, যা ক্ষতির কারণ হতে পারে অথবা রেড ক্রস, এর পরিষেবা সরবরাহকারী, এর কনটেন্ট সরবরাহকারী, বা অন্য কোনও ব্যক্তিকে ক্ষতি করে, যা রেড ক্রস দ্বারা এর নিজস্ব বিবেচনার ভিত্তিতে নির্ধারিত।\n\nরেড ক্রস আপনার এপিআই এবং ডেটা ফিড গুলির ব্যবহার পর্যবেক্ষণ করতে পারে। আপনি এই ধরনের পর্যবেক্ষণে হস্তক্ষেপ করার জন্য কোনও প্রযুক্তিগত পদ্ধতি ব্যবহার নাও করতে পারেন, এবং রেড ক্রস এই জাতীয় কোনও হস্তক্ষেপ কাটিয়ে উঠতে প্রযুক্তিগত পদ্ধতি ব্যবহার করতে পারে।\n\nপ্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার করা বার্তা গুলির ব্যবহার কেবলমাত্র বর্তমান হিসাবে উপস্থাপিত হবে বা তৎক্ষনাৎ বর্তমান জরুরী সেটিং-এর সাথে সম্পর্কিত সম্পর্কিত ইভেন্ট অ্যালার্টের আপডেট করা হবে, এবং আপনি রেড ক্রস দ্বারা ডেটা ফিড এবং\/অথবা সম্পর্কিত ইভেন্ট সতর্কতার যে কোনও আপডেট হওয়ার পরে পৃথকভাবে প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার করা বার্তাগুলি আপডেট করবেন।\n\nনিজস্ব প্রস্তুতি, প্রতিক্রিয়া, এবং পুনরুদ্ধার বার্তাসমূহ যা আপনি ব‍্যবহার করবেন কেবলমাত্র সংশ্লিষ্ট ভৌগোলিক অঞ্চলের জন‍্য প্রযোজ‍্য হবে। যদি কোনও প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার বার্তা একটি উৎসের সঙ্গে একটি রেফারেন্স যেমন আমেরিকান রেড ক্রস বা অন্য রেড ক্রস বা রেড ক্রিসেন্ট ন্যাশনাল সোসাইটি বা সংগঠন (প্রতিটি ”সোর্স রেফারেন্স”) অন্তর্ভুক্ত করে তবে আপনি ডেটা ফিড গুলোতে প্রদত্ত ফর্মে প্রতিটি প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার এর বার্তাগুলোর সাথে সম্পর্কিত উৎসের রেফারেন্স অন্তর্ভুক্ত করবেন। আপনি আর কোনও উৎস রেফারেন্স ব্যবহার করবেন না।\n\nআপনি অন্য কোন ভাষায় ডেটা ফিড, ইভেন্ট অ্যালার্ট, এবং\/অথবা প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার এর বার্তাগুলোর অনুবাদ নাও করতে পারেন, ডেটা ফিড, ইভেন্ট অ্যালার্ট এবং\/অথবা প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার এর বার্তাগুলোর কোন ব্যবহার, সম্পাদনা, বা অর্থ পরিবর্তন নাও করতে পারেন।\n\nআপনাকে অবশ্যই নিশ্চিত করতে হবে যে ডেটা ফিড গুলো কেবলমাত্র আপনার দখলে এবং\/অথবা নিয়ন্ত্রণে থাকবে।\n\nআপনি প্রান্তিক ব্যবহারকারীদের কাছে বিতরণ করা ইভেন্ট অ্যালার্ট এবং প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার এর বার্তাগুলোতে কোন বিজ্ঞাপন বা স্পনসরশিপ অন্তর্ভুক্ত করার অনুমতি নাও দিতে পারেন।\n\nআপনি পুরোপুরি বা আংশিকভাবে ডাটা ফিডের কোন আর্কাইভ তৈরি নাও করতে পারেন।", + "body": "রেড ক্রস প্রদত্ত রেজিষ্ট্রেশন কী-এর গোপনীয়তা এবং সুরক্ষা বজায় রাখার জন্য আপনি দায় বদ্ধ থাকবেন। ডেটা ফিড গুলি গ্রহণ করা চালিয়ে যাওয়ার জন্য মাঝে মাঝে আপডেট হিসাবে API-এর সাথে সামঞ্জস্য বজায় রাখার জন্য আপনি দায়বদ্ধ থাকবেন। রেড ক্রস তার নিজস্ব বিবেচনার ভিত্তিতে এপিআই এবং ডেটা ফিড গুলির আপডেট সংস্করণ প্রকাশ করতে পারে। নতুন সংস্করণগুলো পূর্ববর্তী বাস্তবায়নের সাথে সামঞ্জস্যপূর্ণ নাও হতে পারে এবং আপনি সর্বদা ডেটা ফিড গুলির সর্বশেষ আপডেট হওয়া সংস্করণটি ব্যবহার করতে সম্মত থাকবেন।\n\nআপনাকে সম্মত হতে হবে যে এপিআই বা রেড ক্রসের কোনও সফটওয়্যারের কোনও অংশ সংশোধন, বিতরণ, ডি কম্পাইল, বিচ্ছিন্ন করা, বা রিভার্স ইনজিনিয়ারিং করা যাবে না।\n\nআপনি API বা ডেটা ফিড গুলি এমনভাবে ব্যবহার করতে পারবেন না যা যুক্তিসঙ্গত অনুরোধের পরিমাণকে ছাড়িয়ে যায় বা অতিরিক্ত বা আপত্তিজনক ব্যবহার করে, যা রেড ক্রসের নিজস্ব বিবেচনার ভিত্তিতে নির্ধারিত।\n\nআপনি এপিআই অথবা ডেটা ফিড গুলি এমনভাবে ব্যবহার করতে পারবেন না যা বেআইনী, বিভ্রান্তিকর, অবহেলাপূর্ণ, বিদ্বেষপূর্ণ, যা ক্ষতির কারণ হতে পারে অথবা রেড ক্রস, এর পরিষেবা সরবরাহকারী, এর কনটেন্ট সরবরাহকারী, বা অন্য কোনও ব্যক্তিকে ক্ষতি করে, যা রেড ক্রস দ্বারা এর নিজস্ব বিবেচনার ভিত্তিতে নির্ধারিত।\n\nরেড ক্রস আপনার এপিআই এবং ডেটা ফিড গুলির ব্যবহার পর্যবেক্ষণ করতে পারে। আপনি এই ধরনের পর্যবেক্ষণে হস্তক্ষেপ করার জন্য কোনও প্রযুক্তিগত পদ্ধতি ব্যবহার নাও করতে পারেন, এবং রেড ক্রস এই জাতীয় কোনও হস্তক্ষেপ কাটিয়ে উঠতে প্রযুক্তিগত পদ্ধতি ব্যবহার করতে পারে।\n\nপ্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার করা বার্তা গুলির ব্যবহার কেবলমাত্র বর্তমান হিসাবে উপস্থাপিত হবে বা তৎক্ষনাৎ বর্তমান জরুরী সেটিং-এর সাথে সম্পর্কিত সম্পর্কিত ইভেন্ট অ্যালার্টের আপডেট করা হবে, এবং আপনি রেড ক্রস দ্বারা ডেটা ফিড এবং/অথবা সম্পর্কিত ইভেন্ট সতর্কতার যে কোনও আপডেট হওয়ার পরে পৃথকভাবে প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার করা বার্তাগুলি আপডেট করবেন।\n\nনিজস্ব প্রস্তুতি, প্রতিক্রিয়া, এবং পুনরুদ্ধার বার্তাসমূহ যা আপনি ব‍্যবহার করবেন কেবলমাত্র সংশ্লিষ্ট ভৌগোলিক অঞ্চলের জন‍্য প্রযোজ‍্য হবে। যদি কোনও প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার বার্তা একটি উৎসের সঙ্গে একটি রেফারেন্স যেমন আমেরিকান রেড ক্রস বা অন্য রেড ক্রস বা রেড ক্রিসেন্ট ন্যাশনাল সোসাইটি বা সংগঠন (প্রতিটি ”সোর্স রেফারেন্স”) অন্তর্ভুক্ত করে তবে আপনি ডেটা ফিড গুলোতে প্রদত্ত ফর্মে প্রতিটি প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার এর বার্তাগুলোর সাথে সম্পর্কিত উৎসের রেফারেন্স অন্তর্ভুক্ত করবেন। আপনি আর কোনও উৎস রেফারেন্স ব্যবহার করবেন না।\n\nআপনি অন্য কোন ভাষায় ডেটা ফিড, ইভেন্ট অ্যালার্ট, এবং/অথবা প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার এর বার্তাগুলোর অনুবাদ নাও করতে পারেন, ডেটা ফিড, ইভেন্ট অ্যালার্ট এবং/অথবা প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার এর বার্তাগুলোর কোন ব্যবহার, সম্পাদনা, বা অর্থ পরিবর্তন নাও করতে পারেন।\n\nআপনাকে অবশ্যই নিশ্চিত করতে হবে যে ডেটা ফিড গুলো কেবলমাত্র আপনার দখলে এবং/অথবা নিয়ন্ত্রণে থাকবে।\n\nআপনি প্রান্তিক ব্যবহারকারীদের কাছে বিতরণ করা ইভেন্ট অ্যালার্ট এবং প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার এর বার্তাগুলোতে কোন বিজ্ঞাপন বা স্পনসরশিপ অন্তর্ভুক্ত করার অনুমতি নাও দিতে পারেন।\n\nআপনি পুরোপুরি বা আংশিকভাবে ডাটা ফিডের কোন আর্কাইভ তৈরি নাও করতে পারেন।", "contact": "অনুগ্রহ করে এপিআই সম্পর্কিত যে কোন প্রশ্ন করতে রেড ক্রসের সাথে {0} তে যোগাযোগ করুন।", - "disclaimer": "এপিআই এবং ডেটা ফিড গুলি শুধুমাত্র তথ্যমূলক এবং শিক্ষাগত উদ্দেশ্যে সরবরাহ করা হয়, এবং ‘যেমন আছে তেমন’ এবং ‘উপলব্ধ হওয়ার’ ভিত্তিতে সরবরাহ করা হয়। রেড ক্রস কোন ধরণের প্রকাশিত বা নিহিত প্রতিনিধিত্ব বা ওয়ারেন্টি তৈরি করে না। রেড ক্রস প্রকাশিত বা অন্তর্নিহিত সমস্ত ওয়ারেন্টি পরিত্যাগ করে, একটি নির্দিষ্ট উদ্দেশ্যে বাণিজ্য এবং উপযুক্ততার জন্য অন্তর্ভুক্ত কিন্তু অন্তর্নিহিত ওয়ারেন্টির মধ্যে তা সীমাবদ্ধ না। রেড ক্রস এবং এর কর্মচারী, কর্মকর্তা, প্রশাসক এবং প্রতিনিধি এবং লাইসেন্সধারীরা এপিআই, ডেটা ফিড, ইভেন্ট অ্যালার্ট এবং\/অথবা প্রিপেয়ার, রেসপন্ড এবং রিকভার মেসেজ ব্যবহার থেকে উদ্ভূত কোন ধরণের ক্ষতির জন্য দায়বদ্ধ হবে না যার মধ্যে অন্তর্ভুক্ত রয়েছে তবে তা প্রত্যক্ষ, পরোক্ষ, আনুষঙ্গিক, শাস্তিমূলক এবং ফলস্বরূপ ক্ষতিতে সীমাবদ্ধ নয়।\n\nরেড ক্রস এপিআই, ডেটা ফিড, ইভেন্ট অ্যালার্ট এবং\/অথবা প্রিপেয়ার, রেসপন্ড এবং রিকভার মেসেজ ক্রম, নির্ভুলতা, সত্যতা বা সম্পূর্ণতার গ্যারান্টি দেয় না এবং এখানে প্রদত্ত এপিআই, ডেটা ফিডস, ইভেন্ট অ্যালার্ট এবং\/অথবা প্রিপেয়ার, রেসপন্ড এবং রিকভার মেসেজের ক্ষেত্রে কোনও বিলম্ব, ভুল, বা কোন বাদ দেওয়ার সীমাবদ্ধতা ছাড়াই আপনার বা আপনার এন্ড ইউজার বা কোনও তৃতীয় পক্ষের কাছে দায়বদ্ধ থাকবে না।", + "disclaimer": "এপিআই এবং ডেটা ফিড গুলি শুধুমাত্র তথ্যমূলক এবং শিক্ষাগত উদ্দেশ্যে সরবরাহ করা হয়, এবং ‘যেমন আছে তেমন’ এবং ‘উপলব্ধ হওয়ার’ ভিত্তিতে সরবরাহ করা হয়। রেড ক্রস কোন ধরণের প্রকাশিত বা নিহিত প্রতিনিধিত্ব বা ওয়ারেন্টি তৈরি করে না। রেড ক্রস প্রকাশিত বা অন্তর্নিহিত সমস্ত ওয়ারেন্টি পরিত্যাগ করে, একটি নির্দিষ্ট উদ্দেশ্যে বাণিজ্য এবং উপযুক্ততার জন্য অন্তর্ভুক্ত কিন্তু অন্তর্নিহিত ওয়ারেন্টির মধ্যে তা সীমাবদ্ধ না। রেড ক্রস এবং এর কর্মচারী, কর্মকর্তা, প্রশাসক এবং প্রতিনিধি এবং লাইসেন্সধারীরা এপিআই, ডেটা ফিড, ইভেন্ট অ্যালার্ট এবং/অথবা প্রিপেয়ার, রেসপন্ড এবং রিকভার মেসেজ ব্যবহার থেকে উদ্ভূত কোন ধরণের ক্ষতির জন্য দায়বদ্ধ হবে না যার মধ্যে অন্তর্ভুক্ত রয়েছে তবে তা প্রত্যক্ষ, পরোক্ষ, আনুষঙ্গিক, শাস্তিমূলক এবং ফলস্বরূপ ক্ষতিতে সীমাবদ্ধ নয়।\n\nরেড ক্রস এপিআই, ডেটা ফিড, ইভেন্ট অ্যালার্ট এবং/অথবা প্রিপেয়ার, রেসপন্ড এবং রিকভার মেসেজ ক্রম, নির্ভুলতা, সত্যতা বা সম্পূর্ণতার গ্যারান্টি দেয় না এবং এখানে প্রদত্ত এপিআই, ডেটা ফিডস, ইভেন্ট অ্যালার্ট এবং/অথবা প্রিপেয়ার, রেসপন্ড এবং রিকভার মেসেজের ক্ষেত্রে কোনও বিলম্ব, ভুল, বা কোন বাদ দেওয়ার সীমাবদ্ধতা ছাড়াই আপনার বা আপনার এন্ড ইউজার বা কোনও তৃতীয় পক্ষের কাছে দায়বদ্ধ থাকবে না।", "entire_agreement": { "body": "এপিআই শর্তাবলী রেড ক্রস এবং আপনার মধ্যে এর বিষয়বস্তু সম্পর্কিত সম্পূর্ণ এবং একচেটিয়া চুক্তি গঠন করে এবং এখানে নির্দিষ্টভাবে অন্তর্ভুক্ত নয় এমন সমস্ত পূর্ব মৌখিক বা লিখিত বোঝা পড়া, যোগাযোগ বা চুক্তিগুলো বাদ দিয়ে দেয়। রেড ক্রস যে কোন সময় এই চুক্তিটি সংশোধন বা প্রত্যাহার করার অধিকার সংরক্ষণ করে।", "heading": "সম্পূর্ণ চুক্তি:" @@ -861,7 +865,7 @@ "heading": "এপিআই এন্ড ইউজার লাইসেন্সিং চুক্তি", "intro": "সম্মত: পরিষেবাটি ব্যবহার করার মাধ‍্যমে বা প্রদত্ত বক্সটিতে টিক দেওয়ার মাধ‍্যমে, ব্যবহারকারী এই চুক্তিতে আবদ্ধ হতে সম্মত হচ্ছেন।\n\nAPI এমন একটি টুল যা আপনাকে (”আপনি”) রেড ক্রস দ্বারা উপলব্ধ ডেটা ফিড গুলি পুনরুদ্ধার এবং ব্যবহার করতে দেয় যার মধ্যে রয়েছে বিশ্বব্যাপী আবহাওয়া এবং দুর্যোগের ঘটনার সতর্কতা এবং ঘড়ির বিজ্ঞপ্তিগুলো (”ইভেন্ট অ্যালার্ট”) এবং ঝুঁকির ধরণ এবং জরুরির দ্বারা কীভাবে স্থানীয় বিপদের জন্য প্রস্তুতি নেবেন সে সম্পর্কিত বিষয়ে কার্যকর এবং প্রাসঙ্গিক বার্তা গুলির একটি ফিড (\"প্রস্তুত করুন, প্রতিক্রিয়া জানান এবং বার্তা পুনরুদ্ধার করুন\" এবং ইভেন্ট অ্যালার্টের সাথে \"ডেটা ফিডS\")। প্রিপেয়ার, রেসপন্ড, এবং রিকভার বার্তা গুলোর উদ্দেশ্য ইভেন্ট অ্যালার্ট বা অন্যান্য সতর্কতার সাথে যুক্ত হওয়া এবং আপনার নিজের অ্যাপ্লিকেশনে আবহাওয়া এবং দুর্যোগের ঘটনার সাথে সম্পর্কিত বিজ্ঞপ্তিগুলো দেখা। আপনার ডেটা ফিড গুলির ব্যবহার এপিআই শর্তাবলী দ্বারা পরিচালিত হয়।", "license_limitations": { - "body": "আপনি শুধুমাত্র API-এর শর্তাবলী সাপেক্ষে আপনার নিজের অ্যাপ্লিকেশনের সাথে সামঞ্জস্য রেখে ডেটা ফিড গুলি ব্যবহার করতে পারেন এবং মাঝে মাঝে আপডেট হওয়ার সাথে সাথে আপনি API-এর সাথে সামঞ্জস্য বজায় রাখতে পারেন। আপনাকে এপিআই শর্তাবলী সাপেক্ষে ডেটা ফিডগুলি থেকে স্বতন্ত্র ইভেন্ট অ্যালার্ট এর জরুরি সেটিং-এর সাথে সামঞ্জস্য রেখে আপনার নিজস্ব অ্যাপ্লিকেশনের প্রান্তিক ব্যবহারকারীদের ইভেন্ট অ্যালার্ট এবং প্রাসঙ্গিক পরিপ্রেক্ষিত ভিত্তিক প্রস্তুতি, প্রতিক্রিয়া, এবং বার্তা পুনরুদ্ধার, ডাউনলোড, ব্যবহার, পুনরুত্পাদন এবং বিতরণ করার একটি অ-একচেটিয়া, সীমিত এবং প্রত্যাখ্যান যোগ্য অধিকার দেওয়া হয় (“প্রান্তিক ব্যবহারকারী”)। আপনি শুধুমাত্র এপিআই শর্তাবলী অনুসারে ডেটা ফিড গুলির অ-বাণিজ্যিক ব্যবহারের সুবিধার্থে এপিআই ব্যবহার করতে পারবেন। আপনি কোন ইভেন্টে এপিআই ব্যবহার করে ডেটা ফিডস, ইভেন্ট অ্যালার্ট এবং\/অথবা প্রস্তুতি, প্রতিক্রিয়া এবং বার্তা পুনরুদ্ধার, বাণিজ্যিক ব্যবহার সহজতর করতে পারবেন না।\nসীমাবদ্ধতা ছাড়াই, পুনরায় বিক্রয়, ওগুলোতে প্রবেশের মূল্য নেয়া, পুনরায় বিতরণ করার জন্য মূল্য গ্রহন, বা ওগুলোর উপর ভিত্তি করে কিছু তৈরি করা হলে তার উপর মূল্য গ্রহন করতে পারবেন না। রেড ক্রস এবং এর লাইসেন্স দাতারা এতে এবং এর মধ্যে API- এর সমস্ত শিরোনাম, মালিকানা, অধিকার এবং আগ্রহ বজায় রাখেন, বার্তার প্রস্তুতি, বার্তার প্রতিক্রিয়া এবং পুনরুদ্ধার, ইভেন্ট সতর্কতা, ডেটা ফিড এবং উত্স রেফারেন্স গুলি (নীচে সংজ্ঞায়িত হিসাবে) এতে রয়েছে। স্পষ্টভাবে অনুমোদিত নয় এমন সমস্ত অধিকার সংরক্ষিত।", + "body": "আপনি শুধুমাত্র API-এর শর্তাবলী সাপেক্ষে আপনার নিজের অ্যাপ্লিকেশনের সাথে সামঞ্জস্য রেখে ডেটা ফিড গুলি ব্যবহার করতে পারেন এবং মাঝে মাঝে আপডেট হওয়ার সাথে সাথে আপনি API-এর সাথে সামঞ্জস্য বজায় রাখতে পারেন। আপনাকে এপিআই শর্তাবলী সাপেক্ষে ডেটা ফিডগুলি থেকে স্বতন্ত্র ইভেন্ট অ্যালার্ট এর জরুরি সেটিং-এর সাথে সামঞ্জস্য রেখে আপনার নিজস্ব অ্যাপ্লিকেশনের প্রান্তিক ব্যবহারকারীদের ইভেন্ট অ্যালার্ট এবং প্রাসঙ্গিক পরিপ্রেক্ষিত ভিত্তিক প্রস্তুতি, প্রতিক্রিয়া, এবং বার্তা পুনরুদ্ধার, ডাউনলোড, ব্যবহার, পুনরুত্পাদন এবং বিতরণ করার একটি অ-একচেটিয়া, সীমিত এবং প্রত্যাখ্যান যোগ্য অধিকার দেওয়া হয় (“প্রান্তিক ব্যবহারকারী”)। আপনি শুধুমাত্র এপিআই শর্তাবলী অনুসারে ডেটা ফিড গুলির অ-বাণিজ্যিক ব্যবহারের সুবিধার্থে এপিআই ব্যবহার করতে পারবেন। আপনি কোন ইভেন্টে এপিআই ব্যবহার করে ডেটা ফিডস, ইভেন্ট অ্যালার্ট এবং/অথবা প্রস্তুতি, প্রতিক্রিয়া এবং বার্তা পুনরুদ্ধার, বাণিজ্যিক ব্যবহার সহজতর করতে পারবেন না।\nসীমাবদ্ধতা ছাড়াই, পুনরায় বিক্রয়, ওগুলোতে প্রবেশের মূল্য নেয়া, পুনরায় বিতরণ করার জন্য মূল্য গ্রহন, বা ওগুলোর উপর ভিত্তি করে কিছু তৈরি করা হলে তার উপর মূল্য গ্রহন করতে পারবেন না। রেড ক্রস এবং এর লাইসেন্স দাতারা এতে এবং এর মধ্যে API- এর সমস্ত শিরোনাম, মালিকানা, অধিকার এবং আগ্রহ বজায় রাখেন, বার্তার প্রস্তুতি, বার্তার প্রতিক্রিয়া এবং পুনরুদ্ধার, ইভেন্ট সতর্কতা, ডেটা ফিড এবং উত্স রেফারেন্স গুলি (নীচে সংজ্ঞায়িত হিসাবে) এতে রয়েছে। স্পষ্টভাবে অনুমোদিত নয় এমন সমস্ত অধিকার সংরক্ষিত।", "heading": "লাইসেন্স এবং সীমাবদ্ধতা:" }, "overview": { @@ -880,17 +884,17 @@ "two": "সীমাবদ্ধতা ছাড়াই কোন সত্যতা যাচাইয়ের প্রযুক্তিসহ, রেড ক্রস বা এপিআই দ্বারা নিযুক্ত কোনও কী বা সুরক্ষা ব্যবস্থা এড়াতে বা সংশোধন করতে।", "three": "আপনার নিজের অ্যাকাউন্টের জন্য যা আপনাকে সরবরাহ করা হয়েছে তা ছাড়া রেড ক্রসের অন‍্য সাইন-ইন নাম, পাসওয়ার্ড বা অন্যান্য যাচাইকরণ গোপনীয় তথ‍্য লাভের অনুরোধ করা, সংগ্রহ করা, আবেদন করা বা অন্য কোনো উপায়ে সংগ্রহ করা।", "four": "রেডক্রস বা অন্য কোন রেড ক্রস বা রেড ক্রিসেন্ট ন্যাশনাল সোসাইটি বা সংগঠনের সাথে সংশ্লিষ্টতা, স্পন্সরশিপ বা এনডোর্সমেন্ট প্রকাশ করা।", - "five": "API বা ডেটা ফিড গুলো, ইভেন্ট অ্যালার্টস এবং\/অথবা প্রস্তুতি, প্রতিক্রিয়া এবং বার্তা পুনরুদ্ধারের মালিকানা আপনার বা আপনি তা তৈরি করেছেন তা প্রকাশ বা নিহিত করতে।", + "five": "API বা ডেটা ফিড গুলো, ইভেন্ট অ্যালার্টস এবং/অথবা প্রস্তুতি, প্রতিক্রিয়া এবং বার্তা পুনরুদ্ধারের মালিকানা আপনার বা আপনি তা তৈরি করেছেন তা প্রকাশ বা নিহিত করতে।", "six": "কোনো ভাইরাস, ও‍য়ার্মস ডিফেক্টস, ট্রোজান হর্স অথবা অন‍্য কোনও ধ্বংসাত্মক কিছু ট্রান্সমিট করা।" } }, - "reserve_rights": "রেড ক্রস পূর্ব ঘোষণা ছাড়াই যে কোন সময়ে অস্থায়ী বা স্থায়ীভাবে সম্পূর্ণ বা আংশিকভাবে এপিআই এবং ডেটা ফিডস পরিবর্তন এবং\/ বা আর সরবরাহ না করার অধিকার সংরক্ষণ করে। সংশয় এড়াতে, এ কথা জানানো হচ্ছে যে এগুলোর মধ্যে কোন কিছুই রেড ক্রসকে তার API বা ডেটা ফিড গুলো আপনার কাছে উপলভ‍্য করতে বাধ্য করে না এবং আপনি সম্মত হচ্ছেন এবং স্বীকার করছেন যে, যে কোন প্রকার অ্যাক্সেস রেড ক্রসের একমাত্র এবং পূর্ণ ইচ্ছাধীনতার মধ্যে রয়েছে।", + "reserve_rights": "রেড ক্রস পূর্ব ঘোষণা ছাড়াই যে কোন সময়ে অস্থায়ী বা স্থায়ীভাবে সম্পূর্ণ বা আংশিকভাবে এপিআই এবং ডেটা ফিডস পরিবর্তন এবং/ বা আর সরবরাহ না করার অধিকার সংরক্ষণ করে। সংশয় এড়াতে, এ কথা জানানো হচ্ছে যে এগুলোর মধ্যে কোন কিছুই রেড ক্রসকে তার API বা ডেটা ফিড গুলো আপনার কাছে উপলভ‍্য করতে বাধ্য করে না এবং আপনি সম্মত হচ্ছেন এবং স্বীকার করছেন যে, যে কোন প্রকার অ্যাক্সেস রেড ক্রসের একমাত্র এবং পূর্ণ ইচ্ছাধীনতার মধ্যে রয়েছে।", "severability": { "body": "এপিআই শর্তাবলির কোন শর্তের বা বিধানের অবৈধতা অন্য কোন বিধানের বৈধতা প্রভাবিত করবে না।", "heading": "তীব্রতা এবং অধিকার পরিত্যাগের ঘোষণা:" }, "suspension": { - "body": "রেড ক্রস যদি এর পূর্ণ স্বাধীন ইচ্ছায় ঠিক করে যে আপনি এপিআই শর্তাবলির এপিআই বা ডাটা ফিড ব্যবহারের অননুমোদিত ব‍্যবহারে নিয়োজিত বা আপনি এপিআই বা ডেটা ফিড এমন কোন কাজে ব্যবহার করছেন যা রেডক্রস নেটওয়ার্কগুলোর বা কোন ব্যক্তির নিরাপত্তার জন্য হুমকি\/আপস করে তাহলে রেড ক্রস আপনার প্রবেশাধিকার স্থগিত বা স্্থগিত করার অধিকার রাখে।", + "body": "রেড ক্রস যদি এর পূর্ণ স্বাধীন ইচ্ছায় ঠিক করে যে আপনি এপিআই শর্তাবলির এপিআই বা ডাটা ফিড ব্যবহারের অননুমোদিত ব‍্যবহারে নিয়োজিত বা আপনি এপিআই বা ডেটা ফিড এমন কোন কাজে ব্যবহার করছেন যা রেডক্রস নেটওয়ার্কগুলোর বা কোন ব্যক্তির নিরাপত্তার জন্য হুমকি/আপস করে তাহলে রেড ক্রস আপনার প্রবেশাধিকার স্থগিত বা স্্থগিত করার অধিকার রাখে।", "heading": "স্থগিতকরণ বা সমাপ্তি:" } }, @@ -903,7 +907,7 @@ "alert_preview": "সতর্কতার পূর্বরূপ", "cap_alerts": "সিএপি এলার্ট", "onset": "শুরু", - "severity": "গুরুতর\/কঠোরতা", + "severity": "গুরুতর/কঠোরতা", "title": "শিরোনাম", "date": "তারিখ", "headline": "শিরোনাম", @@ -917,7 +921,7 @@ "type": "ধরন", "status": "স্ট‍্যাটাস", "urgency": "ত্বরা", - "severity": "গুরুতর\/কঠোরতা", + "severity": "গুরুতর/কঠোরতা", "certainty": "নিশ্চয়তা", "sent": "প্রেরিত", "effective": "কার্যকর", diff --git a/resources/lang/de.json b/resources/lang/de.json index aa4e494..0a38610 100644 --- a/resources/lang/de.json +++ b/resources/lang/de.json @@ -40,7 +40,7 @@ "name": "Name", "first_name": "Vorname", "last_name": "Nachname", - "toggle_navigation": "Navigation ein-\/ausblenden", + "toggle_navigation": "Navigation ein-/ausblenden", "you_are_logged_in": "Sie sind eingeloggt!", "reset_password": "Passwort zurücksetzen", "set_password": "Passwort einrichten", @@ -441,9 +441,9 @@ "immediate": "Sofort", "warning": "Warnung", "anticipated": "Erwartet", - "assess_and_plan":"Bewerten und planen", - "mitigate_risks":"Risiko mindern", - "prepare_to_respond":"Auf die Reaktion vorbereiten", + "assess_and_plan": "Bewerten und planen", + "mitigate_risks": "Risiko mindern", + "prepare_to_respond": "Auf die Reaktion vorbereiten", "recover": "Wiederherstellen" }, "content": { @@ -526,7 +526,7 @@ "seasonalForecast_extra": "Eine saisonale Vorhersage ist eine Aussage über die Vorhersehbarkeit eines gefährlichen Ereignisses. Die ergriffenen Maßnahmen dienen der Bewertung potenzieller Risiken und der Planung von Aktivitäten zur Risikominderung und zum Schutz des Haushalts.", "watch": "Ansehen", "watch_help": "Bereiten Sie sich vor, zu reagieren", - "watch_extra": "Eine Frühwarnung wird ausgegeben, wenn das Risiko eines gefährlichen Ereignisses erheblich gestiegen ist, aber sein Auftreten, sein Ort und\/oder sein Zeitpunkt noch ungewiss sind. Sie soll genügend Zeit für Schutzmaßnahmen und die Vorbereitung auf die Reaktion bieten.", + "watch_extra": "Eine Frühwarnung wird ausgegeben, wenn das Risiko eines gefährlichen Ereignisses erheblich gestiegen ist, aber sein Auftreten, sein Ort und/oder sein Zeitpunkt noch ungewiss sind. Sie soll genügend Zeit für Schutzmaßnahmen und die Vorbereitung auf die Reaktion bieten.", "warning": "Warnung", "warning_help": "Bereiten Sie sich vor, zu reagieren", "warning_extra": "Eine Warnung wird ausgegeben, wenn ein gefährliches Ereignis eintritt, unmittelbar bevorsteht oder eine sehr hohe Eintrittswahrscheinlichkeit hat. Es bedeutet, dass die Bedingungen eine Gefahr für Leben oder Eigentum darstellen. Personen, die sich im Wirkungsbereich dieser Gefahr befinden, müssen Schutzmaßnahmen ergreifen.", @@ -558,7 +558,8 @@ "content_edit_title": "Inhalt bearbeiten", "content_add_hazard_title": "Gefahr hinzufügen", "key_message_label": "Titel der Hauptnachricht", - "supporting_message_label": "Unterstützende Nachricht" + "supporting_message_label": "Unterstützende Nachricht", + "mitigate_risk": "Risiko mindern" }, "message_editor": { "title": "Attribution Editor", @@ -618,7 +619,7 @@ "bad_request_error_codes": { "30001": "Spaltenüberschriften stimmen nicht mit der Vorlage überein", "30002": "Zuordnungsname, Nachricht oder URL fehlen", - "30003": "Ungültige Zuordnungs-URL - bitte stellen Sie sicher, dass das Protokoll vorhanden ist, z. B. https:\/\/", + "30003": "Ungültige Zuordnungs-URL - bitte stellen Sie sicher, dass das Protokoll vorhanden ist, z. B. https://", "40001": "Ungültiger Ländercode angegeben", "40002": "Ausgewählte Gesellschaft stimmt nicht mit der Gesellschaft für die ausgewählte Datei überein", "40003": "Das Datum, an dem die ausgewählte Datei exportiert wurde, ist fehlerhaft und der Import kann nicht abgeschlossen werden" @@ -689,7 +690,7 @@ }, "landing": { "strapline": "Datenbankdienst für Sicherheitsmeldungen", - "strapline_part_2": "Die wichtigsten Sicherheitsbotschaften des Globalen Roten Kreuzes \/ Roten Halbmondes", + "strapline_part_2": "Die wichtigsten Sicherheitsbotschaften des Globalen Roten Kreuzes / Roten Halbmondes", "head_1": "IFRC-Sicherheit", "head_2": "Nachrichten-Datenbank", "head_text_1": "Sicherheitsbotschaften auf der Grundlage von IFRC Public Awareness and", @@ -785,7 +786,7 @@ }, "data_preview": { "heading": "Sicherheitshinweise", - "sub_heading": "Melden Sie sich an und sehen Sie sich die wichtigsten Aktionsbotschaften der Nationalen Gesellschaften des Roten Kreuzes \/ Roten Halbmondes in aller Welt an" + "sub_heading": "Melden Sie sich an und sehen Sie sich die wichtigsten Aktionsbotschaften der Nationalen Gesellschaften des Roten Kreuzes / Roten Halbmondes in aller Welt an" }, "footer": { "terms_conditions": "Geschäftsbedingungen", @@ -841,10 +842,10 @@ "industries": { "media": "Mediathek", "emergency": "Notfallmanagement", - "non_profit": "Non-Profit\/NGO", + "non_profit": "Non-Profit/NGO", "humanitarian": "Humanitäre Organisation", - "red_cross": "Rotes Kreuz\/Roter Halbmond", - "education": "Bildungswesen\/Wissenschaft", + "red_cross": "Rotes Kreuz/Roter Halbmond", + "education": "Bildungswesen/Wissenschaft", "gov": "Regierungsbehörde", "other": "Sonstiges" }, @@ -859,9 +860,9 @@ "body": "Die Gesetze des District of Columbia bestimmen alle Rechte und Pflichten dieser Vereinbarung unter Ausschluss der Grundsätze des Kollisionsrechts.", "heading": "Geltendes Recht:" }, - "body": "Sie sind verantwortlich für die Geheimhaltung und Sicherheit des Registrierungsschlüssels, der Ihnen vom Roten Kreuz zur Verfügung gestellt wird. Sie sind dafür verantwortlich, die Kompatibilität mit der von Zeit zu Zeit aktualisierten API aufrechtzuerhalten, um weiterhin die Daten-Feeds zu erhalten. Das Rote Kreuz kann nach eigenem Ermessen aktualisierte Versionen der API und der Daten-Feeds veröffentlichen. Neue Versionen sind möglicherweise nicht mit früheren Implementierungen kompatibel, und Sie erklären sich damit einverstanden, stets die zuletzt aktualisierte Version der Daten-Feeds zu verwenden.\n\nSie erklären sich damit einverstanden, keinen Teil der API oder Software vom Roten Kreuz zu verändern, zu vertreiben, zu entschlüsseln, zu disassemblieren oder zu rekonstruieren.\n\nSie dürfen die API oder Datenfeeds nicht in einer Weise nutzen, die ein angemessenes Anfragevolumen überschreitet oder eine exzessive oder missbräuchliche Nutzung darstellt, wie vom Roten Kreuz nach eigenem Ermessen festgelegt.\n\nSie dürfen die API oder Datenfeeds nicht in einer Weise nutzen, die rechtswidrig, irreführend, fahrlässig, böswillig oder in der Absicht, Schaden zu verursachen, ist oder das Rote Kreuz, seinen Dienstanbietern, seinen Inhaltsanbietern oder einer anderen Person schadet, wie vom Roten Kreuz nach eigenem Ermessen festgelegt.\n\nDas Rote Kreuz kann Ihre Nutzung der API und Daten-Feeds überwachen. Sie dürfen keine technischen Mittel einsetzen, um diese Überwachung zu stören, und das Rote Kreuz darf technische Mittel einsetzen, um eine solche Störung zu überwinden.\n\nDie Verwendung von Prepare-, Respond- und Recover-Nachrichten darf nur als aktuell oder als aktualisiert auf die damals aktuelle Dringlichkeitseinstellung der damit verbundenen Ereigniswarnung dargestellt werden, und Sie müssen einzelne Prepare-, Respond- und Recover-Nachrichten bei jeder Aktualisierung der Daten-Feeds und\/oder korrelierten Ereigniswarnungen durch das Rote Kreuz aktualisieren.\n\nEinzelne Prepare-, Respond- und Recover-Nachrichten, die Sie verwenden, werden nur mit der geografischen Region in Verbindung gebracht, für die sie freigegeben sind. Wenn eine Prepare-, Respond- und Recover-Nachricht einen Verweis auf eine Quelle wie das Amerikanische Rote Kreuz oder eine andere nationale Gesellschaft oder Organisation des Roten Kreuzes oder des Roten Halbmonds (jeweils ein \"Quellenverweis\") enthält, müssen Sie den Quellenverweis, der mit jeder Prepare-, Respond- und Recover-Nachricht verbunden ist, in der in den Daten-Feeds bereitgestellten Form angeben. Sie dürfen die Quellverweise nicht weiter verwenden.\n\nEs ist nicht gestattet, die Daten-Feeds, Ereigniswarnungen und\/oder Prepare-, Respond- und Recover-Nachrichten in eine andere Sprache zu übersetzen, zu verwenden, zu bearbeiten oder zu überarbeiten oder die Bedeutung der Daten-Feeds, Ereigniswarnungen und\/oder Prepare-, Respond- und Recover-Nachrichten zu verändern.\n\nSie müssen sicherstellen, dass die Daten-Feeds in Ihrem alleinigen Besitz und\/oder unter Ihrer Kontrolle sind.\n\nSie dürfen nicht zulassen, dass Ereigniswarnungen und Prepare-, Respond- und Recover-Nachrichten, die an Endbenutzer gesendet werden, Werbung oder Sponsoring enthalten.\n\nSie dürfen die Daten-Feeds weder ganz noch teilweise archivieren.", + "body": "Sie sind verantwortlich für die Geheimhaltung und Sicherheit des Registrierungsschlüssels, der Ihnen vom Roten Kreuz zur Verfügung gestellt wird. Sie sind dafür verantwortlich, die Kompatibilität mit der von Zeit zu Zeit aktualisierten API aufrechtzuerhalten, um weiterhin die Daten-Feeds zu erhalten. Das Rote Kreuz kann nach eigenem Ermessen aktualisierte Versionen der API und der Daten-Feeds veröffentlichen. Neue Versionen sind möglicherweise nicht mit früheren Implementierungen kompatibel, und Sie erklären sich damit einverstanden, stets die zuletzt aktualisierte Version der Daten-Feeds zu verwenden.\n\nSie erklären sich damit einverstanden, keinen Teil der API oder Software vom Roten Kreuz zu verändern, zu vertreiben, zu entschlüsseln, zu disassemblieren oder zu rekonstruieren.\n\nSie dürfen die API oder Datenfeeds nicht in einer Weise nutzen, die ein angemessenes Anfragevolumen überschreitet oder eine exzessive oder missbräuchliche Nutzung darstellt, wie vom Roten Kreuz nach eigenem Ermessen festgelegt.\n\nSie dürfen die API oder Datenfeeds nicht in einer Weise nutzen, die rechtswidrig, irreführend, fahrlässig, böswillig oder in der Absicht, Schaden zu verursachen, ist oder das Rote Kreuz, seinen Dienstanbietern, seinen Inhaltsanbietern oder einer anderen Person schadet, wie vom Roten Kreuz nach eigenem Ermessen festgelegt.\n\nDas Rote Kreuz kann Ihre Nutzung der API und Daten-Feeds überwachen. Sie dürfen keine technischen Mittel einsetzen, um diese Überwachung zu stören, und das Rote Kreuz darf technische Mittel einsetzen, um eine solche Störung zu überwinden.\n\nDie Verwendung von Prepare-, Respond- und Recover-Nachrichten darf nur als aktuell oder als aktualisiert auf die damals aktuelle Dringlichkeitseinstellung der damit verbundenen Ereigniswarnung dargestellt werden, und Sie müssen einzelne Prepare-, Respond- und Recover-Nachrichten bei jeder Aktualisierung der Daten-Feeds und/oder korrelierten Ereigniswarnungen durch das Rote Kreuz aktualisieren.\n\nEinzelne Prepare-, Respond- und Recover-Nachrichten, die Sie verwenden, werden nur mit der geografischen Region in Verbindung gebracht, für die sie freigegeben sind. Wenn eine Prepare-, Respond- und Recover-Nachricht einen Verweis auf eine Quelle wie das Amerikanische Rote Kreuz oder eine andere nationale Gesellschaft oder Organisation des Roten Kreuzes oder des Roten Halbmonds (jeweils ein \"Quellenverweis\") enthält, müssen Sie den Quellenverweis, der mit jeder Prepare-, Respond- und Recover-Nachricht verbunden ist, in der in den Daten-Feeds bereitgestellten Form angeben. Sie dürfen die Quellverweise nicht weiter verwenden.\n\nEs ist nicht gestattet, die Daten-Feeds, Ereigniswarnungen und/oder Prepare-, Respond- und Recover-Nachrichten in eine andere Sprache zu übersetzen, zu verwenden, zu bearbeiten oder zu überarbeiten oder die Bedeutung der Daten-Feeds, Ereigniswarnungen und/oder Prepare-, Respond- und Recover-Nachrichten zu verändern.\n\nSie müssen sicherstellen, dass die Daten-Feeds in Ihrem alleinigen Besitz und/oder unter Ihrer Kontrolle sind.\n\nSie dürfen nicht zulassen, dass Ereigniswarnungen und Prepare-, Respond- und Recover-Nachrichten, die an Endbenutzer gesendet werden, Werbung oder Sponsoring enthalten.\n\nSie dürfen die Daten-Feeds weder ganz noch teilweise archivieren.", "contact": "Bitte kontaktieren Sie bei Fragen zur API das Rote Kreuz unter {0}.", - "disclaimer": "Die API und die Daten-Feeds werden NUR ZU INFORMATIONS- UND BILDUNGSZWECKEN UND auf einer Basis \"wie vorliegend\" und \"wie verfügbar\" zur Verfügung gestellt. Das Rote Kreuz trifft keinerlei ausdrückliche oder implizite Zusicherungen oder Garantien. Das Rote Kreuz lehnt alle ausdrücklichen oder impliziten Garantien ab, einschließlich, aber nicht beschränkt auf implizite Garantien der Marktgängigkeit und Eignung für einen bestimmten Zweck. Das Rote Kreuz und seine Mitarbeiter, leitenden Angestellten, Geschäftsführer und Vertreter sowie Lizenzgeber haften nicht für Schäden jeglicher Art, die aus der Nutzung der API, der DatenFeeds, der Ereigniswarnungen und\/oder der Prepare-, Respond- und Recover-Nachrichten entstehen, einschließlich, aber nicht beschränkt auf direkte, indirekte, zufällige, strafbare und mittelbare Schäden.\n\nDas Rote Kreuz übernimmt keine Garantie für die Reihenfolge, Genauigkeit, Authentizität oder Vollständigkeit der API, der Daten-Feeds, der Ereigniswarnungen und\/oder der Prepare-, Respond- und Recover-Nachrichten und haftet in keiner Weise gegenüber Ihnen oder Ihren Endnutzern oder Dritten, insbesondere nicht für Verzögerungen, Ungenauigkeiten, Fehler oder Auslassungen in Bezug auf die API, die Datenfeeds, die Ereigniswarnungen und\/oder die Prepare-, Respond- und Recover-Nachrichten, die im Rahmen dieser Vereinbarung bereitgestellt werden.", + "disclaimer": "Die API und die Daten-Feeds werden NUR ZU INFORMATIONS- UND BILDUNGSZWECKEN UND auf einer Basis \"wie vorliegend\" und \"wie verfügbar\" zur Verfügung gestellt. Das Rote Kreuz trifft keinerlei ausdrückliche oder implizite Zusicherungen oder Garantien. Das Rote Kreuz lehnt alle ausdrücklichen oder impliziten Garantien ab, einschließlich, aber nicht beschränkt auf implizite Garantien der Marktgängigkeit und Eignung für einen bestimmten Zweck. Das Rote Kreuz und seine Mitarbeiter, leitenden Angestellten, Geschäftsführer und Vertreter sowie Lizenzgeber haften nicht für Schäden jeglicher Art, die aus der Nutzung der API, der DatenFeeds, der Ereigniswarnungen und/oder der Prepare-, Respond- und Recover-Nachrichten entstehen, einschließlich, aber nicht beschränkt auf direkte, indirekte, zufällige, strafbare und mittelbare Schäden.\n\nDas Rote Kreuz übernimmt keine Garantie für die Reihenfolge, Genauigkeit, Authentizität oder Vollständigkeit der API, der Daten-Feeds, der Ereigniswarnungen und/oder der Prepare-, Respond- und Recover-Nachrichten und haftet in keiner Weise gegenüber Ihnen oder Ihren Endnutzern oder Dritten, insbesondere nicht für Verzögerungen, Ungenauigkeiten, Fehler oder Auslassungen in Bezug auf die API, die Datenfeeds, die Ereigniswarnungen und/oder die Prepare-, Respond- und Recover-Nachrichten, die im Rahmen dieser Vereinbarung bereitgestellt werden.", "entire_agreement": { "body": "Die API-Bedingungen stellen die vollständige und ausschließliche Vereinbarung zwischen dem Roten Kreuz und Ihnen in Bezug auf den Vertragsgegenstand dar und ersetzen alle früheren mündlichen oder schriftlichen Absprachen, Mitteilungen oder Vereinbarungen, die nicht ausdrücklich hierin enthalten sind. Das Rote Kreuz behält sich das Recht vor, diese Vereinbarung jederzeit zu ändern oder zu widerrufen.", "heading": "Gesamte Vereinbarung:" @@ -869,7 +870,7 @@ "heading": "API ENDBENUTZER-LIZENZVERTRAG", "intro": "ZUSTIMMEN: DURCH DIE NUTZUNG DES DIENSTES ODER DAS ANKREUZEN DES VORGESEHENEN KÄSTCHENS STIMMT DER BENUTZER ZU, AN DIESE VEREINBARUNG GEBUNDEN ZU SEIN.\n\nDie API ist ein Tool, das es Ihnen (\"Sie\") ermöglicht, die vom Roten Kreuz zur Verfügung gestellten Daten-Feeds abzurufen und zu nutzen, einschließlich eines Feeds mit globalen Wetter- und Katastrophenwarnungen und -beobachtungen (\"Ereigniswarnungen\") und eines Feeds mit umsetzbaren und kontextualisierten Nachrichten zur Vorbereitung auf lokale Gefahren nach Gefahrentyp und Dringlichkeit (\"Prepare-, Respond- und Recover-Nachrichten\", und zusammen mit den Ereigniswarnungen die \"Daten-Feeds\"). Prepare-, Respond- und Recover-Meldungen dienen dazu, Ereigniswarnungen oder andere Warn- und Beobachtungsmeldungen im Zusammenhang mit Wetter- und Katastrophenereignissen in Ihrer eigenen Anwendung zu begleiten. Ihre Nutzung der Daten-Feeds wird durch die API-Bedingungen geregelt.", "license_limitations": { - "body": "Sie sind nur berechtigt, die Daten-Feeds in Verbindung mit Ihrer eigenen Anwendung zu nutzen, vorbehaltlich der API-Bedingungen und unter der Voraussetzung, dass Sie die Kompatibilität mit der von Zeit zu Zeit aktualisierten API gewährleisten. Ihnen wird ein nicht-exklusives, beschränktes und widerrufliches Recht eingeräumt, Ereigniswarnungen und relevante kontextualisierte Prepare-, Respond- und Recover-Meldungen in Verbindung mit der Dringlichkeitseinstellung einzelner Ereigniswarnungen aus den Daten-Feeds gemäß den API-Bedingungen herunterzuladen, zu verwenden, zu vervielfältigen und an Endnutzer Ihrer eigenen Anwendung („Endnutzer“) zu verteilen. Sie dürfen die API nur nutzen, um die nicht-kommerzielle Nutzung der Daten-Feeds in Übereinstimmung mit den API-Bedingungen zu ermöglichen. Sie sind keinesfalls berechtigt, die API zu nutzen, um eine kommerzielle Nutzung der Daten-Feeds, Ereigniswarnungen und\/oder Prepare-, Respond- und Recover-Meldungen zu ermöglichen, einschließlich, aber nicht beschränkt auf den Weiterverkauf, die Erhebung von Gebühren für den Zugriff auf die Daten-Feeds, die Weiterverbreitung der Daten-Feeds oder die Erstellung von abgeleiteten Werken auf der Grundlage der Daten-Feeds. Das Rote Kreuz und seine Lizenzgeber besitzen alle Titel, Eigentumsrechte, Rechte und Interessen an der API, den Prepare-, Respond- und Recover-Meldungen, den Ereigniswarnungen, den Daten-Feeds und den Quellenverweisen (wie unten definiert). Alle nicht ausdrücklich gewährten Rechte sind vorbehalten.", + "body": "Sie sind nur berechtigt, die Daten-Feeds in Verbindung mit Ihrer eigenen Anwendung zu nutzen, vorbehaltlich der API-Bedingungen und unter der Voraussetzung, dass Sie die Kompatibilität mit der von Zeit zu Zeit aktualisierten API gewährleisten. Ihnen wird ein nicht-exklusives, beschränktes und widerrufliches Recht eingeräumt, Ereigniswarnungen und relevante kontextualisierte Prepare-, Respond- und Recover-Meldungen in Verbindung mit der Dringlichkeitseinstellung einzelner Ereigniswarnungen aus den Daten-Feeds gemäß den API-Bedingungen herunterzuladen, zu verwenden, zu vervielfältigen und an Endnutzer Ihrer eigenen Anwendung („Endnutzer“) zu verteilen. Sie dürfen die API nur nutzen, um die nicht-kommerzielle Nutzung der Daten-Feeds in Übereinstimmung mit den API-Bedingungen zu ermöglichen. Sie sind keinesfalls berechtigt, die API zu nutzen, um eine kommerzielle Nutzung der Daten-Feeds, Ereigniswarnungen und/oder Prepare-, Respond- und Recover-Meldungen zu ermöglichen, einschließlich, aber nicht beschränkt auf den Weiterverkauf, die Erhebung von Gebühren für den Zugriff auf die Daten-Feeds, die Weiterverbreitung der Daten-Feeds oder die Erstellung von abgeleiteten Werken auf der Grundlage der Daten-Feeds. Das Rote Kreuz und seine Lizenzgeber besitzen alle Titel, Eigentumsrechte, Rechte und Interessen an der API, den Prepare-, Respond- und Recover-Meldungen, den Ereigniswarnungen, den Daten-Feeds und den Quellenverweisen (wie unten definiert). Alle nicht ausdrücklich gewährten Rechte sind vorbehalten.", "heading": "Lizenz und Beschränkungen:" }, "overview": { @@ -888,17 +889,17 @@ "two": "Die Umgehung oder Modifizierung von Schlüsseln oder Sicherheitsmechanismen, die vom Roten Kreuz oder der API verwendet werden, einschließlich und ohne Einschränkung jeglicher Authentifizierungstechnologien.", "three": "Die Anforderung, Sammlung, Aufforderung oder anderweitige Erlangung des Zugangs zu Anmeldenamen, Passwörtern oder anderen Authentifizierungsdaten für das Rote Kreuz, die Ihnen nicht für Ihr eigenes Konto zur Verfügung gestellt wurden.", "four": "Die Zugehörigkeit, das Sponsoring oder die Befürwortung durch das Rote Kreuz oder eine andere nationale Gesellschaft oder Organisation des Roten Kreuzes oder des Roten Halbmonds anzugeben oder zu implizieren.", - "five": "Die Angabe oder Andeutung, dass Sie Eigentümer oder Ersteller der API, der Daten-Feeds, der Ereigniswarnungen und\/oder der Prepare-, Respond- und Recover-Meldungen sind.", + "five": "Die Angabe oder Andeutung, dass Sie Eigentümer oder Ersteller der API, der Daten-Feeds, der Ereigniswarnungen und/oder der Prepare-, Respond- und Recover-Meldungen sind.", "six": "Die Übertragung von Viren, Würmern, Trojanern oder anderen zerstörerischen Elementen." } }, - "reserve_rights": "Das Rote Kreuz behält sich das Recht vor, die API und Daten-Feeds jederzeit ohne vorherige Ankündigung ganz oder teilweise, entweder vorübergehend oder dauerhaft, zu ändern und\/oder nicht mehr zur Verfügung zu stellen. Um Missverständnisse zu vermeiden: Nichts hierin verpflichtet das Rote Kreuz dazu, Ihnen die API oder Daten-Feeds zur Verfügung zu stellen, und Sie stimmen zu und erkennen an, dass jeglicher Zugriff im alleinigen und absoluten Ermessen des Roten Kreuzes liegt.", + "reserve_rights": "Das Rote Kreuz behält sich das Recht vor, die API und Daten-Feeds jederzeit ohne vorherige Ankündigung ganz oder teilweise, entweder vorübergehend oder dauerhaft, zu ändern und/oder nicht mehr zur Verfügung zu stellen. Um Missverständnisse zu vermeiden: Nichts hierin verpflichtet das Rote Kreuz dazu, Ihnen die API oder Daten-Feeds zur Verfügung zu stellen, und Sie stimmen zu und erkennen an, dass jeglicher Zugriff im alleinigen und absoluten Ermessen des Roten Kreuzes liegt.", "severability": { "body": "Die Ungültigkeit einzelner Bestimmungen dieser Nutzungsbedingung hat keine Auswirkungen auf die Gültigkeit der übrigen Bestimmungen.", "heading": "Salvatorische Klausel und Verzichtserklärung:" }, "suspension": { - "body": "Das Rote Kreuz behält sich das Recht vor, Ihren Zugang zu sperren oder zu beenden, wenn das Rote Kreuz nach eigenem Ermessen feststellt, dass Sie die API oder den Daten-Feed wie in den API-Bedingungen beschrieben unberechtigt nutzen oder dass Sie die API oder den Daten-Feed für Aktivitäten nutzen, die die Sicherheit einer Person oder der Netzwerke des Roten Kreuzes bedrohen\/kompromittieren.", + "body": "Das Rote Kreuz behält sich das Recht vor, Ihren Zugang zu sperren oder zu beenden, wenn das Rote Kreuz nach eigenem Ermessen feststellt, dass Sie die API oder den Daten-Feed wie in den API-Bedingungen beschrieben unberechtigt nutzen oder dass Sie die API oder den Daten-Feed für Aktivitäten nutzen, die die Sicherheit einer Person oder der Netzwerke des Roten Kreuzes bedrohen/kompromittieren.", "heading": "Aufhebung oder Beendigung:" } }, diff --git a/resources/lang/en.json b/resources/lang/en.json index a16aaaa..dcdc386 100644 --- a/resources/lang/en.json +++ b/resources/lang/en.json @@ -607,7 +607,8 @@ "desc_tool": "Give a brief description about the hazard and messages. This should be 1-3 sentences long", "title_tool": "For example: Safety messages for Floods", "safety_tool": "This is a priority action that a person should take to stay safe. The message should be action-oriented, concise, and under 50 characters.", - "supporting_tool": "This provides more detail to support the priority key action. The message should be action-oriented and concise." + "supporting_tool": "This provides more detail to support the priority key action. The message should be action-oriented and concise.", + "mitigate_risk": "Mitigate Risk" }, "message_editor": { "title": "Attribution Editor", @@ -1071,4 +1072,4 @@ "draft": "Draft", "bulkUploadDraft": "Message File Upload Draft" } -} \ No newline at end of file +} diff --git a/resources/lang/es.json b/resources/lang/es.json index 8adc7b3..3763bc0 100644 --- a/resources/lang/es.json +++ b/resources/lang/es.json @@ -594,7 +594,8 @@ "desc_tool": "Proporciona una breve descripción sobre el peligro y los mensajes. Debe tener de 1 a 3 frases.", "title_tool": "Por ejemplo: Mensajes de seguridad para Inundaciones", "safety_tool": "Esta es una acción prioritaria que una persona debe tomar para mantenerse segura. El mensaje debe estar orientado a la acción, ser conciso y tener menos de 50 caracteres.", - "supporting_tool": "Esto proporciona más detalles para apoyar la acción clave prioritaria. El mensaje debe estar orientado a la acción y ser conciso." + "supporting_tool": "Esto proporciona más detalles para apoyar la acción clave prioritaria. El mensaje debe estar orientado a la acción y ser conciso.", + "mitigate_risk": "Mitigar Riesgo" }, "message_editor": { "title": "Editor de Atribución", diff --git a/resources/lang/fr.json b/resources/lang/fr.json index 41bb9dd..d0f9d86 100644 --- a/resources/lang/fr.json +++ b/resources/lang/fr.json @@ -594,7 +594,8 @@ "desc_tool": "Donnez une brève description du danger et des messages. Cela devrait faire 1 à 3 phrases.", "title_tool": "Par exemple : Messages de sécurité pour les Inondations", "safety_tool": "Ceci est une action prioritaire qu'une personne devrait entreprendre pour rester en sécurité. Le message doit être orienté vers l'action, concis et faire moins de 50 caractères.", - "supporting_tool": "Ceci fournit plus de détails pour soutenir l'action clé prioritaire. Le message doit être orienté vers l'action et concis." + "supporting_tool": "Ceci fournit plus de détails pour soutenir l'action clé prioritaire. Le message doit être orienté vers l'action et concis.", + "mitigate_risk": "Atténuer le Risque" }, "message_editor": { "title": "Éditeur d'Attribution", diff --git a/resources/lang/ht.json b/resources/lang/ht.json index 8af2708..2ebe89e 100644 --- a/resources/lang/ht.json +++ b/resources/lang/ht.json @@ -30,7 +30,7 @@ "email_confirmed": "Mèsi pou konfime adrès imel ou. Silvouplè konekte.", "confirmation_failed": "Adrès imel ou a pa ka konfime, tanpri kontakte administratè ou a pou eseye ankò.", "home_redirect": "Ale sou paj akèy la", - "status": "Eta\/Kondisyon", + "status": "Eta/Kondisyon", "remember_me": "Sonje m", "old_password": "Modpas ou gen kounye a", "password": "Modpas", @@ -197,13 +197,15 @@ "steps": { "one": { "heading": "Etap 1 - Enskri", - "body": "Pou kòmanse itilize done ki soti nan API Baz Done Mesaj Sekirite a, premye {0} nan Portal Baz Done Mesaj Sekirite a.\n\nOu ka itilize kont Facebook ak Google ou, oswa yon adrès imel pou kreye yon kont.", "create_account_alt": "kreye yon kont", + "body": "Pou kòmanse itilize done ki soti nan API Baz Done Mesaj Sekirite a, premye {0} nan Portal Baz Done Mesaj Sekirite a.\n\nOu ka itilize kont Facebook ak Google ou, oswa yon adrès imel pou kreye yon kont.", + "create_account_alt": "kreye yon kont", "existing_account": "Si w gen yon kont deja, tanpri {0}.", "login_cta": "konekte", "sign_up_cta": "enskri" }, "two": { - "body": "Pou itilize API a, ou dwe kreye yon aplikasyon nan Portal Baz Done Mesaj Sekirite a. Di nou yon ti kras sou sa w ap bati a.", "create_app_alt": "kreye yon aplikasyon", + "body": "Pou itilize API a, ou dwe kreye yon aplikasyon nan Portal Baz Done Mesaj Sekirite a. Di nou yon ti kras sou sa w ap bati a.", + "create_app_alt": "kreye yon aplikasyon", "heading": "Etap 2 - Kreye yon aplikasyon" }, "three": { @@ -214,7 +216,8 @@ }, "four": { "api_docs_cta": "Dokiman API", - "body": "API Baz Done Mesaj Sekirite a itilize HTTP(S) epi li bay pwen final RESTful pou jwenn done pibliye yo.\n\nChak demann dwe otantifye lè l sèvi avèk kle API ki te kreye nan etap anvan an.", "example_title": "Egzanp demann", + "body": "API Baz Done Mesaj Sekirite a itilize HTTP(S) epi li bay pwen final RESTful pou jwenn done pibliye yo.\n\nChak demann dwe otantifye lè l sèvi avèk kle API ki te kreye nan etap anvan an.", + "example_title": "Egzanp demann", "heading": "Etap 4 - Fè yon demann", "moreInfo": "Pou plis enfòmasyon sou tout pwen final API yo, gade {0}." } @@ -438,9 +441,9 @@ "immediate": "Imedyat", "warning": "Avètisman", "anticipated": "Antisipe", - "assess_and_plan":"Evalye epi Planifye", - "mitigate_risks":"Diminye Risk", - "prepare_to_respond":"Prepare pou Reponn", + "assess_and_plan": "Evalye epi Planifye", + "mitigate_risks": "Diminye Risk", + "prepare_to_respond": "Prepare pou Reponn", "recover": "Rekipere" }, "content": { @@ -511,7 +514,8 @@ "content_description_description": "Deskripsyon Mesaj Sekirite sa yo", "content_label": "Tanpri antre enfòmasyon danje yo", "content_url": "URL", - "content_url_description": "URL pou plis enfòmasyon sou Mesaj Sekirite sa yo. Tanpri enkli pwotokòl la, sa vle di http:// oswa https://", "created": "kreye", + "content_url_description": "URL pou plis enfòmasyon sou Mesaj Sekirite sa yo. Tanpri enkli pwotokòl la, sa vle di http:// oswa https://", + "created": "kreye", "pieces_edited": " Moso edite", "content_placeholder": "Tanpri antre yon mesaj", "mitigation": "Alèjman", @@ -522,7 +526,7 @@ "seasonalForecast_extra": "Yon previzyon sezonye se yon deklarasyon sou prediksyon yon evènman danjere. Aksyon ki poze yo fèt pou evalye potansyèl risk yo epitou planifye aktivite yo pou diminye oswa pwoteje kay la.", "watch": "Gade", "watch_help": "Prepare pou reponn", - "watch_extra": "Yon alèt bay lè gen risk pou yo yon evènman ki gen danje ladan ogmante siyifikativman, men ensidan li yo, kote, ak \/ oswa distribisyon yo toujou ensèten. Li fèt nan entansyon pou bay ase tan pou aksyon pwoteksyon ak preparasyon reponn.", + "watch_extra": "Yon alèt bay lè gen risk pou yo yon evènman ki gen danje ladan ogmante siyifikativman, men ensidan li yo, kote, ak / oswa distribisyon yo toujou ensèten. Li fèt nan entansyon pou bay ase tan pou aksyon pwoteksyon ak preparasyon reponn.", "warning": "Avètisman", "warning_help": "Prepare pou reponn", "warning_extra": "Yon avètisman bay lè yon evènman danjere k ap rive, tou pre, oswa gen trè gwo pwobablite pou l rive. Sa vle di kondisyon yo poze yon menas pou lavi oswa pwopriyete. Moun ki sou chemen danjere sa a bezwen poze aksyon yo k ap pwoteje.", @@ -554,7 +558,8 @@ "content_edit_title": "Edite Kontni", "content_add_hazard_title": "Ajoute Danje", "key_message_label": "Tit Mesaj Kle", - "supporting_message_label": "Mesaj Sipò" + "supporting_message_label": "Mesaj Sipò", + "mitigate_risk": "Diminye Risk" }, "message_editor": { "title": "Editè Atribisyon", @@ -614,7 +619,7 @@ "bad_request_error_codes": { "30001": "Tit kolòn ki pa mache ak modèl la", "30002": "Non atribisyon, mesaj oswa url ki manke", - "30003": "Atribisyon url ki pa valab - tanpri asire pwotokòl la prezan, eg. https:\/\/", + "30003": "Atribisyon url ki pa valab - tanpri asire pwotokòl la prezan, eg. https://", "40001": "Kòd peyi ki pa valid yo bay", "40002": "Sosyete chwazi ki pa mache sosyete pou achiv chwazi", "40003": "Done nan achiv chwazi ki te ekspòte e malfòme ak enpòtasyon pa kapab konplè" @@ -685,7 +690,7 @@ }, "landing": { "strapline": "Sèvis Baz Done Mesaj Sekirite", - "strapline_part_2": "Kwa Wouj Global\/ Mesaj Kle yo pou sekirite Kwa Wouj", + "strapline_part_2": "Kwa Wouj Global/ Mesaj Kle yo pou sekirite Kwa Wouj", "head_1": "Sekirite IFRC", "head_2": "Baz Done Mesaj", "head_text_1": "Mesaj Sekirite ki baze sou Konsyantizasyon Piblik IFRC ak", @@ -740,7 +745,7 @@ "fake_alert_heading": "Avètisman fwa ekstrèm", "fake_alert_description": "Men, sa a egzije pou yon distenksyon senp epi fasil. Pou tan lib lè pouvwa nou an.", "fake_alert_time": "1 è PASE", - "fake_alert_time_exact": "05\/02\/18 a 5:15 CT", + "fake_alert_time_exact": "05/02/18 a 5:15 CT", "use_cases": { "heading": "Aprann plis", "first_heading": "kijan li fonksyone", @@ -781,7 +786,7 @@ }, "data_preview": { "heading": "Mesaj Sekirite", - "sub_heading": "Enskri epi gade mesaj aksyon kle ki soti nan Lakwa Wouj \/ Kwasan Wouj Sosyete Nasyonal atravè monn lan\n" + "sub_heading": "Enskri epi gade mesaj aksyon kle ki soti nan Lakwa Wouj / Kwasan Wouj Sosyete Nasyonal atravè monn lan\n" }, "footer": { "terms_conditions": "Tèm ak kondisyon yo\n", @@ -837,10 +842,10 @@ "industries": { "media": "Medya", "emergency": "Jesyon Ijans", - "non_profit": "Òganizasyon Non-gouvènmantal (ONG)\/Ki pa Peye", + "non_profit": "Òganizasyon Non-gouvènmantal (ONG)/Ki pa Peye", "humanitarian": "Òganizasyon Imanitè", - "red_cross": "Lakwa Wouj\/Kwasan Wouj", - "education": "Edikasyon\/Akademi", + "red_cross": "Lakwa Wouj/Kwasan Wouj", + "education": "Edikasyon/Akademi", "gov": "Ajans Gouvènman an", "other": "Lòt" }, @@ -855,9 +860,9 @@ "body": "Lwa yo nan Distri a nan Kolonbi pral gouvène tout dwa ak obligasyon anba Kontra sa-a, san yo pa bay efè nan nenpòt prensip nan konfli nan lwa yo.", "heading": "Lwa ki aplikab:" }, - "body": "Ou responsab pou kenbe sekrè ak sekirite kle enskripsyon Lakwa Wouj ba ou an. Ou responsab pou kenbe konpatibilite ak API a, jan yo mete ajou de tanzantan, pou kontinye resevwa Transmisyon Done yo. Lakwa Wouj ka lage vèsyon ki ajou nan API a ak Transmisyon Done yo nan sèl diskresyon li. Nouvo vèsyon yo ka pa konpatib ak aplikasyon anvan yo, epi ou dakò pou itilize vèsyon ki pi resamman mete ajou nan Transmisyon Done yo a toutan.\n\nOu dakò pa modifye, distribye, dekonpilasyon, demonte, oswa ranvèse enjenyè nenpòt pòsyon nan API a oswa nenpòt lojisyèl nan Lakwa Wouj.\n\nOu pa ka sèvi ak API la oswa Transmisyon Done yo nan yon fason ki depase volim demann rezonab oswa konstitye yo oswa itilizasyon abizif, jan yo detèmine pa Lakwa Wouj nan sèl diskresyon li.\n\nOu pa ka sèvi ak API a oswa Transmisyon Done yo nan yon fason ki ilegal, twonpè, neglijan, malveyan, lide lakòz domaj, oswa sa nwi Lakwa Wouj, founisè sèvis li yo, founisè kontni li yo, oswa nenpòt ki lòt moun, tankou detèmine pa Kwasan Wouj nan sèl diskresyon li.\n\nLakwa Wouj ka siveye itilizasyon API a ak Transmisyon Done yo. Ou pa ka itilize okenn mwayen teknik pou entèfere ak siveyans sa yo, epi Lakwa Wouj ka itilize mwayen teknik pou simonte nenpòt entèferans sa yo.\n\nItilizasyon prepasyon an, nan repons lan, ak rekiperasyon an pa dwe prezante sèlman kòm aktyèlman oswa mete ajou sou premye paramèt lan nan epòk lan, epi pral mete ajou preparasyon endividyèl la, reponn epi rekipere mesaj mizajou a nan transmisyon done yo ak \/ oswa alèt evènman korelate pa Lakwa Wouj la.\n\nPrepare ou, reponn epi rekipere mesaj yo ke ou itilize pa dwe asosye avek rejyon jeyografik la pou li ke yo bay li a. Itilizasyon preparasyon an, nan repons ak rekiperasyon an pa dwe prezante ke kòm aktyèlman oswa mizajou sou paramèt ijans nan epòk la, epi mete ajou preparasyon endividyèl la, reponn epi rekipere mesaj yo nan mizajou transmisyon done yo ak \/ oswa alèt evènman korelate Lakwa Wouj la. Ou pa dwe kontinye sèvi ak nenpòt Sous Referans.\n\nOu pa ka tradui transmisyon done yo, alet evènman yo ak \/ oswa prepare, reponn ak rekipere mesaj yo nan yon lòt lang, pote yon itilizasyon, modifikasyon ak revizyon, oswa modifikasyon siyifikasyon an nan transmisyon done yo, alèt evènman yo ak \/ oswa prepare, reponn ak rekipere mesaj yo.\n\nOu dwe asire ke Transmisyon Done yo rete nan posesyon ak\/oubyen sèl kontwòl ou.\n\nOu pa ka otorize alèt evènman yo epi prepare, reponn, epi rekipere mesaj livre a itilizate final yo pou entegre tout piblisite oswa parenaj.\n\nOu pa ka fè achiv nan oken pati Transmisyon Done yo.", + "body": "Ou responsab pou kenbe sekrè ak sekirite kle enskripsyon Lakwa Wouj ba ou an. Ou responsab pou kenbe konpatibilite ak API a, jan yo mete ajou de tanzantan, pou kontinye resevwa Transmisyon Done yo. Lakwa Wouj ka lage vèsyon ki ajou nan API a ak Transmisyon Done yo nan sèl diskresyon li. Nouvo vèsyon yo ka pa konpatib ak aplikasyon anvan yo, epi ou dakò pou itilize vèsyon ki pi resamman mete ajou nan Transmisyon Done yo a toutan.\n\nOu dakò pa modifye, distribye, dekonpilasyon, demonte, oswa ranvèse enjenyè nenpòt pòsyon nan API a oswa nenpòt lojisyèl nan Lakwa Wouj.\n\nOu pa ka sèvi ak API la oswa Transmisyon Done yo nan yon fason ki depase volim demann rezonab oswa konstitye yo oswa itilizasyon abizif, jan yo detèmine pa Lakwa Wouj nan sèl diskresyon li.\n\nOu pa ka sèvi ak API a oswa Transmisyon Done yo nan yon fason ki ilegal, twonpè, neglijan, malveyan, lide lakòz domaj, oswa sa nwi Lakwa Wouj, founisè sèvis li yo, founisè kontni li yo, oswa nenpòt ki lòt moun, tankou detèmine pa Kwasan Wouj nan sèl diskresyon li.\n\nLakwa Wouj ka siveye itilizasyon API a ak Transmisyon Done yo. Ou pa ka itilize okenn mwayen teknik pou entèfere ak siveyans sa yo, epi Lakwa Wouj ka itilize mwayen teknik pou simonte nenpòt entèferans sa yo.\n\nItilizasyon prepasyon an, nan repons lan, ak rekiperasyon an pa dwe prezante sèlman kòm aktyèlman oswa mete ajou sou premye paramèt lan nan epòk lan, epi pral mete ajou preparasyon endividyèl la, reponn epi rekipere mesaj mizajou a nan transmisyon done yo ak / oswa alèt evènman korelate pa Lakwa Wouj la.\n\nPrepare ou, reponn epi rekipere mesaj yo ke ou itilize pa dwe asosye avek rejyon jeyografik la pou li ke yo bay li a. Itilizasyon preparasyon an, nan repons ak rekiperasyon an pa dwe prezante ke kòm aktyèlman oswa mizajou sou paramèt ijans nan epòk la, epi mete ajou preparasyon endividyèl la, reponn epi rekipere mesaj yo nan mizajou transmisyon done yo ak / oswa alèt evènman korelate Lakwa Wouj la. Ou pa dwe kontinye sèvi ak nenpòt Sous Referans.\n\nOu pa ka tradui transmisyon done yo, alet evènman yo ak / oswa prepare, reponn ak rekipere mesaj yo nan yon lòt lang, pote yon itilizasyon, modifikasyon ak revizyon, oswa modifikasyon siyifikasyon an nan transmisyon done yo, alèt evènman yo ak / oswa prepare, reponn ak rekipere mesaj yo.\n\nOu dwe asire ke Transmisyon Done yo rete nan posesyon ak/oubyen sèl kontwòl ou.\n\nOu pa ka otorize alèt evènman yo epi prepare, reponn, epi rekipere mesaj livre a itilizate final yo pou entegre tout piblisite oswa parenaj.\n\nOu pa ka fè achiv nan oken pati Transmisyon Done yo.", "contact": "Tanpri kontakte Lakwa Rouj nan [nimewo telefòn] avèk nenpòt kesyon ou genyen konsènan API a.", - "disclaimer": "API ak Transmisyon Done yo founi inikman pou enfòmasyon ak edikasyon, epi sou yon baz de \" tankou \" epi \"disponib tou\". Lakwa Wouj pa fè okenn reprezantasyon oswa garanti nenpòt kalite, ekspresyon oswa enplisit. Lakwa Wouj refize tout garanti eksprime ni enplisit, tankou garanti enplisit nan komès ak kapasite pou yon rezon patikilye. Lakwa Wouj ak anplwaye li yo, ofisye yo, gouvènè yo ak ajan yo ak lisansye yo p ap responsab pou oken domaj ki rive nan itilizasyon API, Transmisyon Done, Alèt Evènman, ak \/ oubyen mesaj Prepare, Reponn, ak Rekipere, tankou domaj endirèk, ensidan, ak domaj konsekan.\n\nLakwa Wouj pa garanti sekans, presizyon, otantisite oubyen konpletid nan API a, Transmisyon Done yo, Avètisman Evènman ak \/ oubyen mesaj Prepare, Reponn, epi Rekipere epi yo pa dwe responsab nan okenn fason pou ou menm oubyen itilizatè ou oubyen nenpòt twazyèm pati, tankou pou nenpòt ki reta, erè oswa omisyon, ki gen rapò ak API a, Transmisyon Done yo, Evènman Alèt ak \/ oubyen mesaj Prepare, reponn, epi rekipere ki bay.", + "disclaimer": "API ak Transmisyon Done yo founi inikman pou enfòmasyon ak edikasyon, epi sou yon baz de \" tankou \" epi \"disponib tou\". Lakwa Wouj pa fè okenn reprezantasyon oswa garanti nenpòt kalite, ekspresyon oswa enplisit. Lakwa Wouj refize tout garanti eksprime ni enplisit, tankou garanti enplisit nan komès ak kapasite pou yon rezon patikilye. Lakwa Wouj ak anplwaye li yo, ofisye yo, gouvènè yo ak ajan yo ak lisansye yo p ap responsab pou oken domaj ki rive nan itilizasyon API, Transmisyon Done, Alèt Evènman, ak / oubyen mesaj Prepare, Reponn, ak Rekipere, tankou domaj endirèk, ensidan, ak domaj konsekan.\n\nLakwa Wouj pa garanti sekans, presizyon, otantisite oubyen konpletid nan API a, Transmisyon Done yo, Avètisman Evènman ak / oubyen mesaj Prepare, Reponn, epi Rekipere epi yo pa dwe responsab nan okenn fason pou ou menm oubyen itilizatè ou oubyen nenpòt twazyèm pati, tankou pou nenpòt ki reta, erè oswa omisyon, ki gen rapò ak API a, Transmisyon Done yo, Evènman Alèt ak / oubyen mesaj Prepare, reponn, epi rekipere ki bay.", "entire_agreement": { "body": "Regleman API yo konstitye akò konplè ak eksklizif ant Lakwa Wouj ak ou menm ki gen rapò ak sijè sa a epi ranplase tout konpreyansyon alavans oral oubyen ekri, kominikasyon, oubyen akò ki pa espesyalman enkòpore nan dokiman sa a. Lakwa Wouj rezève dwa pou li modifye oubyen anile akò sa a nenpòt lè.", "heading": "Akò Konplè a:" @@ -865,11 +870,12 @@ "heading": "AKÒ LISANS ITILIZATÈ FINAL API", "intro": "AKÒ: PA ITILIZE SÈVIS LA OUBYEN TCHEKE BWAT YO BAY LA, ITILIZATÈ DAKÒ AK AKÒ SA a.\n\nAPI a se yon zouti ki pèmèt ou (\"Ou\") rekipere epi sèvi ak done ki disponib pa Lakwa Wouj tankou yon rezo nan move tan mondyal ak avètisman evènman dezas epi gade avi (\"Alèt Evènman\") ak yon transmisyon mesaj kontèksyalize aksyonab sou kòman yo prepare danje lokal yo pa kalite danje ak ijans (\"Mesaj Prepare, Reponn, ak Rekipere\", ak kolektivman ak Alèt yo Evènman, \"Transmisyon Done yo\"). Prepare, Reponn, Rejwenn mesaj la pou akonpaye Alèt evènman oswa lòt avètisman epi gade avi ki asosye ak metewo ak katastwòf nan aplikasyon w lan. Se kondisyon API yo ki reglemante itlizasyon w ap fè ak Done yo.", "license_limitations": { - "body": "Ou ka itilize Transmisyon Done yo sèlman ak aplikasyon w lan ki reglemante pa kondisyon API yo, e te bay pou kenbe konpatibilte ak API yo, jan mizajou yo fèt detanzantan. Yo ba w dwa (e se pa ou sèl ki genyen l, li limite e w ka pèdi) pou w telechaje, itilize, repwodui epi distribiye bay itilizatè final yo pwòp aplikasyon w (“End Users”) Alèt evènman e prepare, reponn, ak rejwenn mesaj an kolaborasyon ak paramèt ijans alèt evènman endividyèl ki soti nan Transmisyon Done yo ki anba tèm API yo. Ou ka sèlman itilize API pou fasilite itilizasyon ki pa komèsyal Transmisyon Done yo annakò ak Tèm API yo. Nan okenn ka ou pa ka itilize API a pou fasilte itilizasyon komèsyal Transmisyon Done yo, Evènman alèt yo ak\/oswa Prepare,repon, ak Rejwenn mesaj, sa gen ladan l, san okenn limit, revann yo, fè peye pou gen aksè ak yo, fè peye pou redistribiye yo, oswa fè peye pou kreye pwodui derive ki soti nan yo. Kwa Wouj ak moun ki bay lisans li yo kenbe tout tit, pwopriyete, dwa ak enterè nan API a, Prepare, reponn, ak Rejwenn mesaj, Transmisyon Done yo, Evènman alèt yo ak sous referans yo (jan yo defini sa anba a) nan dokiman sa a. Tout dwa pa eksprèseman akòde yo rezève.", + "body": "Ou ka itilize Transmisyon Done yo sèlman ak aplikasyon w lan ki reglemante pa kondisyon API yo, e te bay pou kenbe konpatibilte ak API yo, jan mizajou yo fèt detanzantan. Yo ba w dwa (e se pa ou sèl ki genyen l, li limite e w ka pèdi) pou w telechaje, itilize, repwodui epi distribiye bay itilizatè final yo pwòp aplikasyon w (“End Users”) Alèt evènman e prepare, reponn, ak rejwenn mesaj an kolaborasyon ak paramèt ijans alèt evènman endividyèl ki soti nan Transmisyon Done yo ki anba tèm API yo. Ou ka sèlman itilize API pou fasilite itilizasyon ki pa komèsyal Transmisyon Done yo annakò ak Tèm API yo. Nan okenn ka ou pa ka itilize API a pou fasilte itilizasyon komèsyal Transmisyon Done yo, Evènman alèt yo ak/oswa Prepare,repon, ak Rejwenn mesaj, sa gen ladan l, san okenn limit, revann yo, fè peye pou gen aksè ak yo, fè peye pou redistribiye yo, oswa fè peye pou kreye pwodui derive ki soti nan yo. Kwa Wouj ak moun ki bay lisans li yo kenbe tout tit, pwopriyete, dwa ak enterè nan API a, Prepare, reponn, ak Rejwenn mesaj, Transmisyon Done yo, Evènman alèt yo ak sous referans yo (jan yo defini sa anba a) nan dokiman sa a. Tout dwa pa eksprèseman akòde yo rezève.", "heading": "Lisans ak Limit:" }, "overview": { - "body": "Entèfas Pwogram Aplikasyon Sèvis Baz Done Mesaj Sekirite Sant Preparasyon Global pou Katastwòf la (“API”) disponib pou ou pa Lakwa Wouj Nasyonal Ameriken an (“Lakwa Wouj”). API a mande yon kle enskripsyon. Pandan pwosesis enskripsyon an, ou dwe dakò ak tèm ak kondisyon sa yo, ansanm ak tèm ak kondisyon nan Akò Tèm Sèvis Sit Wèb Lakwa Wouj ki disponib nan {0} (ansanm, “Tèm API yo”). Tèm API yo pral gouvène itilizasyon API ou a ak materyèl elektwonik telechaje ki disponib atravè API a. {1}", "cta": "Klike la a pou ou enkri." + "body": "Entèfas Pwogram Aplikasyon Sèvis Baz Done Mesaj Sekirite Sant Preparasyon Global pou Katastwòf la (“API”) disponib pou ou pa Lakwa Wouj Nasyonal Ameriken an (“Lakwa Wouj”). API a mande yon kle enskripsyon. Pandan pwosesis enskripsyon an, ou dwe dakò ak tèm ak kondisyon sa yo, ansanm ak tèm ak kondisyon nan Akò Tèm Sèvis Sit Wèb Lakwa Wouj ki disponib nan {0} (ansanm, “Tèm API yo”). Tèm API yo pral gouvène itilizasyon API ou a ak materyèl elektwonik telechaje ki disponib atravè API a. {1}", + "cta": "Klike la a pou ou enkri." }, "privacy_policy": { "body": "Ou konprann, ou rekonèt, e ou dakò ak operasyon kèk pwogram, sèvis, zouti, opsyon acha, oswa enfòmasyon nan API a egzije pou ou soumisyon, itilizasyon piblikasyon divès enfòmasyon a karaktè pèsonèl. Pa konsekan, si ou vle gen aksè epi itilize API a, ou rekonèt e ou dakò itilizasyon API a vle di ou aksepte koleksyon enfòmasyon a karaktè pèsonèl ak itilizasyon pratik ki nan politik konfidansyalite ki pibliye yo: {0}", @@ -883,17 +889,17 @@ "two": "Kontoune oswa modifye nenpòt kle oswa sekirite mekanism travay pa Lakwa Wouj oswa API a, ki gen ladan san limitasyon teknoloji otantifikasyon yo.", "three": "Pou mande, kolekte, solisite oswa jwenn aksè pou konekte non, modpas oswa lòt idantifyan pou Kwa Wouj ki pa sa yo te ba ou yo pou pwòp kont ou.", "four": "Pou deklare oswa fè konnen yon fason endirèk yon afilyasyon, parenaj oswa apui Sosyete Lakwa wouj oswa Kwasan Wouj bay.", - "five": "Pou deklare oswa fè konnen yon fason endirèk ou gen oswa ou te kreye yon API, Transmisyon Done yo, Alèt evènman ak\/oswa Prepare, Reponn oswa rejwenn mesaj yo.", + "five": "Pou deklare oswa fè konnen yon fason endirèk ou gen oswa ou te kreye yon API, Transmisyon Done yo, Alèt evènman ak/oswa Prepare, Reponn oswa rejwenn mesaj yo.", "six": "Transmèt nenpòt viris, viris ki rele Trojan horses la, oswa nenpòt lòt bagay ki ka fè dega enfòmatik." } }, - "reserve_rights": "Kwa Wouj gen dwa pou l modifye ak\/oswa ba bay API ak Transmisyon Done yo annantye oswa an pati, tanporèman oswa definitivman, nenpòt kilè san avètisman alavans. Pou evite dout, anyen nan dokiman sa a pa oblije Kwa Wouj mete API ak Transmisyon Done li yo disponib pou ou, e ou dakò e ou rekonèt nenpòt aksè avèk yo, se tout responsablite Kwa Wouj pou l deside sa.", + "reserve_rights": "Kwa Wouj gen dwa pou l modifye ak/oswa ba bay API ak Transmisyon Done yo annantye oswa an pati, tanporèman oswa definitivman, nenpòt kilè san avètisman alavans. Pou evite dout, anyen nan dokiman sa a pa oblije Kwa Wouj mete API ak Transmisyon Done li yo disponib pou ou, e ou dakò e ou rekonèt nenpòt aksè avèk yo, se tout responsablite Kwa Wouj pou l deside sa.", "severability": { "body": "Nenpòt tèm oswa dispozisyon nan Tèm API yo p ap afekte validite nenpòt lòt dispozisyon.", "heading": "Diviziblite ak renonsyasyon:" }, "suspension": { - "body": "Kwa Wouj gen dwa kanpe oswa mete fen nan aksè ou si Kwa Wouj deside sa, sa nan otorite l, si ou kòmanse itilize API oswa Transmisyon Done yo yon fason ki pa otorize jan sa dekri nan Tèm API yo oswa ou ap itilize API oswa Transmisyon Done yo nan nenpòt aktivite ki menase\/mete an danje sekirite nenpòt moun oswa rezo Kwa wouj yo.", + "body": "Kwa Wouj gen dwa kanpe oswa mete fen nan aksè ou si Kwa Wouj deside sa, sa nan otorite l, si ou kòmanse itilize API oswa Transmisyon Done yo yon fason ki pa otorize jan sa dekri nan Tèm API yo oswa ou ap itilize API oswa Transmisyon Done yo nan nenpòt aktivite ki menase/mete an danje sekirite nenpòt moun oswa rezo Kwa wouj yo.", "heading": "Sispansyon oswa Revokasyon:" } }, diff --git a/resources/lang/id.json b/resources/lang/id.json index 7335ad6..acc80b4 100644 --- a/resources/lang/id.json +++ b/resources/lang/id.json @@ -441,9 +441,9 @@ "immediate": "Immediate", "warning": "Warning", "anticipated": "Anticipated", - "assess_and_plan":"Assess and Plan", - "mitigate_risks":"Mitigate Risk", - "prepare_to_respond":"Prepare to Respond", + "assess_and_plan": "Assess and Plan", + "mitigate_risks": "Mitigate Risk", + "prepare_to_respond": "Prepare to Respond", "recover": "Recover" }, "content": { @@ -526,7 +526,7 @@ "seasonalForecast_extra": "Prakiraan iklim musiman merupakan sebuah pernyataan prediksi atas peristiwa berbahaya. Tindakan yang dilakukan adalah menilai potensi risiko dan merencanakan aktivitas untuk mengurangi risiko dan melindungi rumah tangga.", "watch": "Pengawasan", "watch_help": "Bersiap untuk menanggapi", - "watch_extra": "Pengawasan dilakukan ketika risiko suatu peristiwa berbahaya telah meningkat secara signifikan, tetapi kemunculannya, lokasi, dan\/atau waktunya masih belum pasti. Tujuannya yaitu menyediakan waktu yang cukup untuk tindakan perlindungan dan persiapan.", + "watch_extra": "Pengawasan dilakukan ketika risiko suatu peristiwa berbahaya telah meningkat secara signifikan, tetapi kemunculannya, lokasi, dan/atau waktunya masih belum pasti. Tujuannya yaitu menyediakan waktu yang cukup untuk tindakan perlindungan dan persiapan.", "warning": "Peringatan", "warning_help": "Bersiap untuk menanggapi", "warning_extra": "Peringatan dikeluarkan saat peristiwa berbahaya sedang terjadi, akan segera terjadi, atau memiliki kemungkinan yang sangat tinggi untuk terjadi. Ini berarti kondisi yang dapat mengancam nyawa atau harta benda. Orang-orang yang berada di jalur bahaya ini perlu mengambil tindakan perlindungan.", @@ -558,7 +558,8 @@ "content_edit_title": "Content Edit", "content_add_hazard_title": "Add Hazard", "key_message_label": "Key message title", - "supporting_message_label": "Supporting message" + "supporting_message_label": "Supporting message", + "mitigate_risk": "Mitigate Risk" }, "message_editor": { "title": "Editor Atribusi", @@ -618,7 +619,7 @@ "bad_request_error_codes": { "30001": "Judul kolom tidak cocok dengan templat", "30002": "Nama atribusi, pesan atau url hilang", - "30003": "Url atribusi tidak valid - pastikan protokolnya disertakan, yaitu https:\/\/", + "30003": "Url atribusi tidak valid - pastikan protokolnya disertakan, yaitu https://", "40001": "Kode negara yang disediakan tidak valid", "40002": "Perhimpunan yang dipilih tidak sesuai dengan berkas yang dipilih", "40003": "Tanggal ekspor berkas yang dipilih memiliki format yang salah dan impor tidak dapat diselesaikan" @@ -689,7 +690,7 @@ }, "landing": { "strapline": "Layanan Basis Data Pesan Keamanan", - "strapline_part_2": "Pesan Keamanan Utama Palang Merah \/ Bulan Sabit Merah Global", + "strapline_part_2": "Pesan Keamanan Utama Palang Merah / Bulan Sabit Merah Global", "head_1": "Keselamatan IFRC", "head_2": "Basis Data Pesan", "head_text_1": "Pesan keselamatan berdasarkan Kesadaran Publik IFRC dan", @@ -744,7 +745,7 @@ "fake_alert_heading": "Peringatan Cuaca Dingin Ekstrim", "fake_alert_description": "Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est.", "fake_alert_time": "1 JAM YANG LALU", - "fake_alert_time_exact": "05\/02\/18 jam 05:15 CT", + "fake_alert_time_exact": "05/02/18 jam 05:15 CT", "use_cases": { "heading": "Pelajari Lebih Lanjut", "first_heading": "Cara Kerja", @@ -785,7 +786,7 @@ }, "data_preview": { "heading": "Pesan Keselamatan", - "sub_heading": "Daftar dan lihat pesan tindakan utama dari Perhimpunan Nasional Palang Merah \/ Bulan Sabit Merah di seluruh dunia" + "sub_heading": "Daftar dan lihat pesan tindakan utama dari Perhimpunan Nasional Palang Merah / Bulan Sabit Merah di seluruh dunia" }, "footer": { "terms_conditions": "Syarat & Ketentuan", @@ -843,8 +844,8 @@ "emergency": "Manajemen Darurat", "non_profit": "Nirlaba", "humanitarian": "Organisasi Kemanusiaan", - "red_cross": "Palang Merah\/Bulan Sabit Merah", - "education": "Pendidikan\/Akademik", + "red_cross": "Palang Merah/Bulan Sabit Merah", + "education": "Pendidikan/Akademik", "gov": "Badan Pemerintahan", "other": "Lainnya" }, @@ -859,9 +860,9 @@ "body": "Undang-undang Distrik Kolombia akan mengatur semua hak dan kewajiban yang terdapat dalam Perjanjian ini, tanpa memengaruhi prinsip-prinsip konflik hukum.", "heading": "Hukum yang berlaku:" }, - "body": "Anda bertanggung jawab untuk menjaga kerahasiaan dan keamanan kode registrasi yang diberikan oleh Palang Merah kepada Anda. Anda bertanggung jawab untuk menjaga kompatibilitas dengan API, yang diperbarui dari waktu ke waktu, agar terus menerima Umpan Data. Palang Merah dapat merilis versi terbaru dari API dan Umpan Data atas kebijakannya sendiri. Versi baru mungkin tidak kompatibel dengan penerapan sebelumnya, dan Anda setuju untuk menggunakan versi terbaru dari Umpan Data setiap saat.\n\nAnda setuju untuk tidak mengubah, mendistribusikan, mendekompilasi, membongkar, atau merekayasa balik bagian mana pun dari API atau perangkat lunak Palang Merah.\n\nAnda tidak boleh menggunakan API atau Umpan Data dengan cara yang melebihi volume permintaan yang wajar atau penggunaan yang berlebihan atau disalahgunakan, sebagaimana yang telah ditentukan oleh Palang Merah atas kebijakannya sendiri.\n\nAnda tidak boleh menggunakan API atau Umpan Data dengan cara yang melanggar hukum, menyesatkan, melalaikan, yang bermaksud untuk menyebabkan kerugian, atau merugikan Palang Merah, penyedia layanannya, penyedia kontennya, atau pun pihak lain, sebagaimana ditentukan oleh Palang Merah atas kebijakannya sendiri.\n\nPalang Merah dapat memantau penggunaan API dan Umpan Data Anda. Anda tidak boleh menggunakan cara teknis apa pun untuk mengganggu pemantauan tersebut, dan Palang Merah dapat menggunakan cara teknis untuk mengatasi gangguan tersebut.\n\nPenggunaan Pesan Siap, Tanggap dan Pulihkan hanya akan ditampilkan sebagai pengaturan terkini atau terbaru ke pengaturan urgensi terkini dari Peringatan Peristiwa terkait, dan Anda harus memperbarui Pesan Siap, Tanggap dan Pulihkan Perseorangan setelah pemutakhiran Umpan Data dan\/atau terkait Peringatan Peristiwa oleh Palang Merah.\n\nPesan Siap, Tanggap dan Pulihkan perseorangan yang Anda gunakan sebaiknya hanya diasosiasikan dengan letak geografis di mana ia diterbitkan. Apabila Pesan Siap, Tanggap dan Pulihkan menyertakan referensi ke sebuah sumber seperti American Red Cross atau organisasi atau perhimpunan Palang Merah atau Bulan Sabit Merah nasional lainnya (tiap “Referensi Sumber”), Anda harus menyertakan Referensi Sumber yang diasosiasikan dengan tiap Pesan Siap, Tanggap dan Pulihkan dalam formulir yang disediakan di Umpan Data. Anda tidak boleh lagi menggunakan Referensi Sumber lainnya.\n\nAnda tidak boleh menerjemahkan Umpan Data, Peringatan Peristiwa dan\/atau Pesan Siap, Tanggap dan Pulihkan ke dalam bahasa lain, menggunakan, mengedit atau merevisi, apalagi mengubah arti Umpan Data, Peringatan Acara dan\/atau Pesan Siap, Tanggap dan Pulihkan.\n\nAnda harus memastikan Umpan Data, tetap dalam kepemilikan dan\/atau kendali Anda sendiri.\n\nAnda dapat tidak memberikan izin Peringatan Peristiwa dan Pesan Siap, Tanggap dan Pulihkan yang dikirim kepada Pengguna Langsung bersamaan dengan iklan atau sponsor apa pun.\n\nAnda tidak boleh mengarsipkan Umpan Data secara keseluruhan mau pun sebagian.", + "body": "Anda bertanggung jawab untuk menjaga kerahasiaan dan keamanan kode registrasi yang diberikan oleh Palang Merah kepada Anda. Anda bertanggung jawab untuk menjaga kompatibilitas dengan API, yang diperbarui dari waktu ke waktu, agar terus menerima Umpan Data. Palang Merah dapat merilis versi terbaru dari API dan Umpan Data atas kebijakannya sendiri. Versi baru mungkin tidak kompatibel dengan penerapan sebelumnya, dan Anda setuju untuk menggunakan versi terbaru dari Umpan Data setiap saat.\n\nAnda setuju untuk tidak mengubah, mendistribusikan, mendekompilasi, membongkar, atau merekayasa balik bagian mana pun dari API atau perangkat lunak Palang Merah.\n\nAnda tidak boleh menggunakan API atau Umpan Data dengan cara yang melebihi volume permintaan yang wajar atau penggunaan yang berlebihan atau disalahgunakan, sebagaimana yang telah ditentukan oleh Palang Merah atas kebijakannya sendiri.\n\nAnda tidak boleh menggunakan API atau Umpan Data dengan cara yang melanggar hukum, menyesatkan, melalaikan, yang bermaksud untuk menyebabkan kerugian, atau merugikan Palang Merah, penyedia layanannya, penyedia kontennya, atau pun pihak lain, sebagaimana ditentukan oleh Palang Merah atas kebijakannya sendiri.\n\nPalang Merah dapat memantau penggunaan API dan Umpan Data Anda. Anda tidak boleh menggunakan cara teknis apa pun untuk mengganggu pemantauan tersebut, dan Palang Merah dapat menggunakan cara teknis untuk mengatasi gangguan tersebut.\n\nPenggunaan Pesan Siap, Tanggap dan Pulihkan hanya akan ditampilkan sebagai pengaturan terkini atau terbaru ke pengaturan urgensi terkini dari Peringatan Peristiwa terkait, dan Anda harus memperbarui Pesan Siap, Tanggap dan Pulihkan Perseorangan setelah pemutakhiran Umpan Data dan/atau terkait Peringatan Peristiwa oleh Palang Merah.\n\nPesan Siap, Tanggap dan Pulihkan perseorangan yang Anda gunakan sebaiknya hanya diasosiasikan dengan letak geografis di mana ia diterbitkan. Apabila Pesan Siap, Tanggap dan Pulihkan menyertakan referensi ke sebuah sumber seperti American Red Cross atau organisasi atau perhimpunan Palang Merah atau Bulan Sabit Merah nasional lainnya (tiap “Referensi Sumber”), Anda harus menyertakan Referensi Sumber yang diasosiasikan dengan tiap Pesan Siap, Tanggap dan Pulihkan dalam formulir yang disediakan di Umpan Data. Anda tidak boleh lagi menggunakan Referensi Sumber lainnya.\n\nAnda tidak boleh menerjemahkan Umpan Data, Peringatan Peristiwa dan/atau Pesan Siap, Tanggap dan Pulihkan ke dalam bahasa lain, menggunakan, mengedit atau merevisi, apalagi mengubah arti Umpan Data, Peringatan Acara dan/atau Pesan Siap, Tanggap dan Pulihkan.\n\nAnda harus memastikan Umpan Data, tetap dalam kepemilikan dan/atau kendali Anda sendiri.\n\nAnda dapat tidak memberikan izin Peringatan Peristiwa dan Pesan Siap, Tanggap dan Pulihkan yang dikirim kepada Pengguna Langsung bersamaan dengan iklan atau sponsor apa pun.\n\nAnda tidak boleh mengarsipkan Umpan Data secara keseluruhan mau pun sebagian.", "contact": "Silakan hubungi Palang Merah di {0} untuk pertanyaan mengenai API.", - "disclaimer": "API dan Umpan Data disediakan HANYA UNTUK TUJUAN INFORMASI DAN EDUKASI, dan atas dasar 'sebagaimana adanya' dan 'sebagaimana tersedia'. Palang Merah tidak membuat pernyataan atau jaminan apa pun, tersurat mau pun tersirat. Palang Merah menyangkal semua jaminan, tersurat mau pun tersirat, termasuk namun tidak terbatas pada jaminan tersirat mengenai kelayakan untuk diperdagangkan dan kesesuaian untuk tujuan tertentu. Palang Merah dan para karyawan, pejabat, gubernur dan agen serta pemberi lisensinya tidak akan bertanggung jawab atas kerusakan dalam bentuk apa pun yang timbul dari penggunaan API, Umpan Data, Peringatan Peristiwa, dan\/atau Pesan Siap, Tanggap dan Pulihkan termasuk namun tidak terbatas pada kerusakan langsung, tidak langsung, insidental, punitif dan konsekuensial.\n\nPalang Merah tidak menjamin urutan, keakuratan, keaslian atau kelengkapan API, Umpan Data, Peringatan Peristiwa dan\/atau Pesan Siap, Tanggap dan Pulihkan serta tidak akan bertanggung jawab dengan cara apa pun kepada Anda atau pun Pengguna Langsung bahkan pihak ketiga mana pun, termasuk namun tidak terbatas pada, keterlambatan, ketidakakuratan, kesalahan atau kelalaian, sehubungan dengan API, Umpan Data, Peringatan Peristiwa dan\/atau Pesan Siap, Tanggap dan Pulihkan yang disediakan di bawah ini.", + "disclaimer": "API dan Umpan Data disediakan HANYA UNTUK TUJUAN INFORMASI DAN EDUKASI, dan atas dasar 'sebagaimana adanya' dan 'sebagaimana tersedia'. Palang Merah tidak membuat pernyataan atau jaminan apa pun, tersurat mau pun tersirat. Palang Merah menyangkal semua jaminan, tersurat mau pun tersirat, termasuk namun tidak terbatas pada jaminan tersirat mengenai kelayakan untuk diperdagangkan dan kesesuaian untuk tujuan tertentu. Palang Merah dan para karyawan, pejabat, gubernur dan agen serta pemberi lisensinya tidak akan bertanggung jawab atas kerusakan dalam bentuk apa pun yang timbul dari penggunaan API, Umpan Data, Peringatan Peristiwa, dan/atau Pesan Siap, Tanggap dan Pulihkan termasuk namun tidak terbatas pada kerusakan langsung, tidak langsung, insidental, punitif dan konsekuensial.\n\nPalang Merah tidak menjamin urutan, keakuratan, keaslian atau kelengkapan API, Umpan Data, Peringatan Peristiwa dan/atau Pesan Siap, Tanggap dan Pulihkan serta tidak akan bertanggung jawab dengan cara apa pun kepada Anda atau pun Pengguna Langsung bahkan pihak ketiga mana pun, termasuk namun tidak terbatas pada, keterlambatan, ketidakakuratan, kesalahan atau kelalaian, sehubungan dengan API, Umpan Data, Peringatan Peristiwa dan/atau Pesan Siap, Tanggap dan Pulihkan yang disediakan di bawah ini.", "entire_agreement": { "body": "Syarat API merupakan perjanjian lengkap dan eksklusif antara Palang Merah dan Anda sehubungan dengan materi pokok dalam perjanjian ini dan menggantikan semua pemahaman, komunikasi, atau perjanjian lisan mau pun tertulis sebelumnya yang tidak secara khusus dimasukkan dalam perjanjian ini. Palang Merah berhak untuk memodifikasi atau menghentikan perjanjian ini setiap saat.", "heading": "Keseluruhan Perjanjian:" @@ -869,7 +870,7 @@ "heading": "PERJANJIAN LISENSI PENGGUNA LANGSUNG API", "intro": "SETUJU: DENGAN MENGGUNAKAN LAYANAN INI ATAU MENCENTANG KOTAK YANG DISEDIAKAN, PENGGUNA SETUJU UNTUK TERIKAT DALAM PERJANJIAN INI.\n\nAPI merupakan alat yang memungkinkan Anda (“Anda”) untuk mengambil dan menggunakan umpan data yang disediakan oleh Palang Merah termasuk umpan peringatan cuaca dan bencana global dan notifikasi pengawasan (“Peringatan Peristiwa”) serta umpan pesan yang dapat ditindaklanjuti dan kontekstual dengan cara menghadapi bahaya lokal tergantung jenis bahaya dan urgensinya (“Pesan Siap, Tanggap dan Pulihkan”, dan secara kolektif dengan Peringatan Peristiwa, “ Umpan Data”). Pesan Siap, Tanggap dan Pulihkan dimaksudkan untuk menyertakan Peringatan Peristiwa atau peringatan dan notifikasi pengawasan lainnya yang berkaitan dengan peristiwa cuaca dan bencana dalam aplikasi Anda sendiri. Penggunaan Umpan Data diatur oleh Syarat API.", "license_limitations": { - "body": "Anda dapat menggunakan Umpan Data hanya terkait dengan aplikasi Anda sendiri yang tunduk pada Syarat API, dan Anda wajib menjaga kompatibilitas dengan API, yang diperbarui dari waktu ke waktu. Anda diberikan hak non-eksklusif, terbatas dan dapat dibatalkan untuk mengunduh, menggunakan, mereproduksi dan mendistribusikan ke pengguna langsung aplikasi Anda sendiri (“Pengguna Langsung”) Peringatan Peristiwa serta Pesan Siap, Tanggap dan Pulihkan yang relevan dan kontekstual dengan pengaturan urgensi pada masing-masing Peringatan Peristiwa dari Umpan Data, tunduk pada Syarat API. Anda hanya dapat menggunakan API untuk memfasilitasi penggunaan non-komersial dari Umpan Data sesuai dengan Syarat API. Anda tidak diperkenankan dalam hal apa pun menggunakan API untuk memfasilitasi penggunaan komersial dari Umpan Data, Peringatan Peristiwa dan\/atau Pesan Siap, Tanggap dan Pulihkan, termasuk namun tidak terbatas pada, menjual ulang, meminta imbalan untuk mengaksesnya, meminta imbalan untuk meredistribusi, atau meminta imbalan untuk membuat karya turunan berdasarkan karya mereka. Palang Merah dan pemberi lisensinya mempertahankan semua hak milik, kepemilikan, hak dan kepentingan dalam dan untuk API, Pesan Siap, Tanggap dan Pulihkan, Peringatan Peristiwa, Umpan Data dan Referensi Sumber (sebagaimana yang didefinisikan berikut) di dalamnya. Semua hak yang tidak diberikan secara tersurat dilindungi.", + "body": "Anda dapat menggunakan Umpan Data hanya terkait dengan aplikasi Anda sendiri yang tunduk pada Syarat API, dan Anda wajib menjaga kompatibilitas dengan API, yang diperbarui dari waktu ke waktu. Anda diberikan hak non-eksklusif, terbatas dan dapat dibatalkan untuk mengunduh, menggunakan, mereproduksi dan mendistribusikan ke pengguna langsung aplikasi Anda sendiri (“Pengguna Langsung”) Peringatan Peristiwa serta Pesan Siap, Tanggap dan Pulihkan yang relevan dan kontekstual dengan pengaturan urgensi pada masing-masing Peringatan Peristiwa dari Umpan Data, tunduk pada Syarat API. Anda hanya dapat menggunakan API untuk memfasilitasi penggunaan non-komersial dari Umpan Data sesuai dengan Syarat API. Anda tidak diperkenankan dalam hal apa pun menggunakan API untuk memfasilitasi penggunaan komersial dari Umpan Data, Peringatan Peristiwa dan/atau Pesan Siap, Tanggap dan Pulihkan, termasuk namun tidak terbatas pada, menjual ulang, meminta imbalan untuk mengaksesnya, meminta imbalan untuk meredistribusi, atau meminta imbalan untuk membuat karya turunan berdasarkan karya mereka. Palang Merah dan pemberi lisensinya mempertahankan semua hak milik, kepemilikan, hak dan kepentingan dalam dan untuk API, Pesan Siap, Tanggap dan Pulihkan, Peringatan Peristiwa, Umpan Data dan Referensi Sumber (sebagaimana yang didefinisikan berikut) di dalamnya. Semua hak yang tidak diberikan secara tersurat dilindungi.", "heading": "Perizinan dan Pembatasan:" }, "overview": { @@ -888,17 +889,17 @@ "two": "Menghindari atau memodifikasi kode atau mekanisme keamanan yang digunakan oleh Palang Merah atau API, termasuk namun tidak terbatas pada teknologi autentikasi apa pun.", "three": "Meminta, mengumpulkan, memohon atau mendapatkan akses akun, kata sandi atau pun autentikasi rahasia Palang Merah lainnya selain yang diberikan kepada Anda untuk akun pribadi Anda.", "four": "Menyatakan atau menyiratkan afiliasi, sponsor atau dukungan oleh Palang Merah atau organisasi atau perhimpunan nasional Palang Merah atau Bulan Sabit Merah lainnya.", - "five": "Menyatakan atau menyiratkan bahwa Anda yang memiliki dan membuat API, Umpan Data, Peringatan Peristiwa dan\/atau Pesan Siap, Tanggap dan Pulihkan.", + "five": "Menyatakan atau menyiratkan bahwa Anda yang memiliki dan membuat API, Umpan Data, Peringatan Peristiwa dan/atau Pesan Siap, Tanggap dan Pulihkan.", "six": "Menularkan virus, worm, Trojan horse, atau item apa pun yang bersifat destruktif." } }, - "reserve_rights": "Palang Merah berhak untuk mengubah dan\/atau tidak lagi menyediakan API dan Umpan Data secara keseluruhan atau sebagian, baik untuk sementara atau permanen, kapan pun tanpa pemberitahuan sebelumnya. Untuk menghilangkan keraguan, Palang Merah tidak diwajibkan untuk menyediakan API atau Umpan Data untuk Anda, dan Anda setuju serta mengetahui bahwa tiap akses dalam kebijakan tunggal dan mutlak Palang Merah.", + "reserve_rights": "Palang Merah berhak untuk mengubah dan/atau tidak lagi menyediakan API dan Umpan Data secara keseluruhan atau sebagian, baik untuk sementara atau permanen, kapan pun tanpa pemberitahuan sebelumnya. Untuk menghilangkan keraguan, Palang Merah tidak diwajibkan untuk menyediakan API atau Umpan Data untuk Anda, dan Anda setuju serta mengetahui bahwa tiap akses dalam kebijakan tunggal dan mutlak Palang Merah.", "severability": { "body": "Ketidakabsahan atas tiap syarat atau ketentuan dari Syarat API tidak akan memengaruhi keabsahan ketentuan lainnya.", "heading": "Keterpisahan dan Pengabaian:" }, "suspension": { - "body": "Palang Merah berhak untuk menangguhkan atau menghentikan akses Anda jika Palang Merah menetapkan, dengan kebijakannya sendiri, bahwa Anda terlibat dalam penggunaan yang tidak sah dari API atau Umpan Data sebagaimana diuraikan dalam Syarat API atau Anda menggunakan API mau pun Umpan Data dalam tiap aktivitas yang mengancam\/membahayakan keselamatan dan\/atau keamanan seseorang atau jaringan Palang Merah.", + "body": "Palang Merah berhak untuk menangguhkan atau menghentikan akses Anda jika Palang Merah menetapkan, dengan kebijakannya sendiri, bahwa Anda terlibat dalam penggunaan yang tidak sah dari API atau Umpan Data sebagaimana diuraikan dalam Syarat API atau Anda menggunakan API mau pun Umpan Data dalam tiap aktivitas yang mengancam/membahayakan keselamatan dan/atau keamanan seseorang atau jaringan Palang Merah.", "heading": "Penangguhan atau Penghentian:" } }, diff --git a/resources/lang/it.json b/resources/lang/it.json index a93b6f8..9720c5a 100644 --- a/resources/lang/it.json +++ b/resources/lang/it.json @@ -441,9 +441,9 @@ "immediate": "Immediato", "warning": "Avviso", "anticipated": "Previsto", - "assess_and_plan":"Valuta e Pianifica", - "mitigate_risks":"Mitiga il Rischio", - "prepare_to_respond":"Preparati a Rispondere", + "assess_and_plan": "Valuta e Pianifica", + "mitigate_risks": "Mitiga il Rischio", + "prepare_to_respond": "Preparati a Rispondere", "recover": "Recupera" }, "content": { @@ -526,7 +526,7 @@ "seasonalForecast_extra": "Una previsione stagionale è la previsione di un evento pericoloso. Le azioni intraprese servono a valutare i potenziali rischi e pianificare le attività per ridurre i rischi e proteggere la famiglia.", "watch": "Periodo di osservazione", "watch_help": "Preparati a rispondere", - "watch_extra": "Un periodo di osservazione inizia quando il rischio di un evento pericoloso è aumentato in modo significativo, ma il suo avvenimento, l'ubicazione e \/ o la tempistica sono ancora incerti. Si prevede di fornire tempo sufficiente per azioni protettive e la preparazione a rispondere.", + "watch_extra": "Un periodo di osservazione inizia quando il rischio di un evento pericoloso è aumentato in modo significativo, ma il suo avvenimento, l'ubicazione e / o la tempistica sono ancora incerti. Si prevede di fornire tempo sufficiente per azioni protettive e la preparazione a rispondere.", "warning": "Avviso", "warning_help": "Preparati a rispondere", "warning_extra": "Viene emesso un avviso quando un evento pericoloso è in corso, è imminente o la probabilità che si verifichi è elevata. Indica che le condizioni dell'evento rappresentano una minaccia per la vita o la proprietà. Le persone che si trovino nel raggio d'azione di questo pericolo necessitano di azioni protettive.", @@ -558,7 +558,8 @@ "content_edit_title": "Modifica Contenuto", "content_add_hazard_title": "Aggiungi Pericolo", "key_message_label": "Titolo del messaggio chiave", - "supporting_message_label": "Messaggio di supporto" + "supporting_message_label": "Messaggio di supporto", + "mitigate_risk": "Mitiga il Rischio" }, "message_editor": { "title": "Attribuzione dell'editore", @@ -618,7 +619,7 @@ "bad_request_error_codes": { "30001": "I titoli delle colonne non corrispondono al modello", "30002": "Unità, messaggi o URL assenti", - "30003": "URL unità non valido - assicurati che sia presente il protocollo, es. https:\/\/", + "30003": "URL unità non valido - assicurati che sia presente il protocollo, es. https://", "40001": "Codice paese non valido", "40002": "La società selezionata non corrisponde alla società per il file selezionato", "40003": "La data in cui è stato esportato il file selezionato non è valida e l'importazione non può essere completata" @@ -744,7 +745,7 @@ "fake_alert_heading": "Avviso di freddo estremo", "fake_alert_description": "Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est.", "fake_alert_time": "1H FA", - "fake_alert_time_exact": "05\/02\/18 alle 05:15 CT", + "fake_alert_time_exact": "05/02/18 alle 05:15 CT", "use_cases": { "heading": "Scopri di più", "first_heading": "Come funziona", @@ -841,10 +842,10 @@ "industries": { "media": "Contenuto multimediale", "emergency": "Gestione delle Emergenze", - "non_profit": "Non-profit\/Organizzazione Non Governativa", + "non_profit": "Non-profit/Organizzazione Non Governativa", "humanitarian": "Organizzazione umanitaria", - "red_cross": "Croce Rossa\/Mezzaluna Rossa", - "education": "Istruzione \/ Università", + "red_cross": "Croce Rossa/Mezzaluna Rossa", + "education": "Istruzione / Università", "gov": "Agenzia governativa", "other": "Altro" }, @@ -859,9 +860,9 @@ "body": "Le leggi del Distretto della Columbia regolano tutti i diritti e gli obblighi del presente accordo, senza dare effetto a nessun principio di conflitto legislativo.", "heading": "Legge vigente:" }, - "body": "L'utente è l'unico responsabile del mantenimento della riservatezza e della sicurezza della chiave di accesso fornita dalla Croce Rossa. L'utente è responsabile del mantenimento della compatibilità con l'API, aggiornandolo di volta in volta, al fine di continuare a ricevere i Feed di Dati. Croce Rossa può rilasciare versioni aggiornate dell'API e dei Feed di Dati a sua esclusiva discrezione. Le nuove versioni potrebbero non essere compatibili con precedenti implementazioni e l'utente accetta di usare la versione più aggiornata dei Feed dei Dati ogni volta.\n\nL'utente accetta di non copiare, distribuire, vendere, modificare, decompilare, decodificare, disassemblare o creare opere derivate da qualsiasi Software.\n\nL'utente non può utilizzare l'API o il Feed di Dati in maniera tale da superare un volume ragionevole di richieste o da costituire un uso eccessivo o abusivo, come determinato da Croce Rossa a sua esclusiva discrezione.\n\nL'utente non può utilizzare l'API o i Feed di Dati in modo illegale, fuorviante, negligente, malevolo, con l'intenzione di causare danni o che danneggi Croce Rossa, i suoi fornitori di servizi, i suoi fornitori di contenuti o qualsiasi altra persona, come stabilito da Croce Rossa a sua esclusiva discrezione.\n\nCroce Rossa potrebbe controllare l'uso da parte dell'utente dell'Api e dei Feed di Dati. L'utente non può utilizzare alcun mezzo tecnico per interferire con tale monitoraggio e Croce Rossa può utilizzare mezzi tecnici per superare tali interferenze.\n\nL'uso dei messaggi Preparazione, Risposta e Recupero sarà presentato solo come attuale o aggiornato all'impostazione di urgenza attuale dell'Avviso di evento correlato e l'utente dovrà aggiornare i singoli messaggi di preparazione, risposta e recupero in seguito a qualsiasi aggiornamento dei Feed di Dati e\/o degli avvisi di evento correlati da parte di Croce Rossa.\n\n I messaggi individuali Preparazione, Risposta e Recupero sono associati solo alla regione geografica per la quale sono stati emessi. Se un Messaggio Preparazione, Risposta e Recupero include un riferimento a una fonte come la Croce Rossa Americana o un'altra società o organizzazione nazionale della Croce Rossa o della Mezzaluna Rossa (ognuno un \"Riferimento alla Fonte\"), l'utente dovrà includere il Riferimento alla Fonte associato a ciascun Messaggio Preparazione, Risposta e Recupero nella forma fornita nei Feed di Dati. L'utente non farà più alcun uso di nessun Riferimento alla Fonte.\n\nL'utente non può tradurre i Feed di Dati, gli Avvisi di eventi e\/o i Messaggi Preparazione, Risposta e Recupero in qualsiasi altra lingua, fare qualsiasi uso, modifica o revisione, o alterare il significato dei Feed di Dati degli Avvisi di eventi e\/o dei Messaggi Preparazione, Risposta e Recupero.\n\nL'utente deve assicurarsi che i Feed di Dati rimangano esclusivamente in proprio possesso e sotto il proprio controllo.\n\nL'utente non può permettere che gli Avvisi di Eventi e i Messaggi Preparazione, Risposta e Recupero inviati all'Utente Finale contengano qualche pubblicità o sponsorizzazione.\n\nL'utente non può archiviare né interamente né parzialmente i Feed di Dati.", + "body": "L'utente è l'unico responsabile del mantenimento della riservatezza e della sicurezza della chiave di accesso fornita dalla Croce Rossa. L'utente è responsabile del mantenimento della compatibilità con l'API, aggiornandolo di volta in volta, al fine di continuare a ricevere i Feed di Dati. Croce Rossa può rilasciare versioni aggiornate dell'API e dei Feed di Dati a sua esclusiva discrezione. Le nuove versioni potrebbero non essere compatibili con precedenti implementazioni e l'utente accetta di usare la versione più aggiornata dei Feed dei Dati ogni volta.\n\nL'utente accetta di non copiare, distribuire, vendere, modificare, decompilare, decodificare, disassemblare o creare opere derivate da qualsiasi Software.\n\nL'utente non può utilizzare l'API o il Feed di Dati in maniera tale da superare un volume ragionevole di richieste o da costituire un uso eccessivo o abusivo, come determinato da Croce Rossa a sua esclusiva discrezione.\n\nL'utente non può utilizzare l'API o i Feed di Dati in modo illegale, fuorviante, negligente, malevolo, con l'intenzione di causare danni o che danneggi Croce Rossa, i suoi fornitori di servizi, i suoi fornitori di contenuti o qualsiasi altra persona, come stabilito da Croce Rossa a sua esclusiva discrezione.\n\nCroce Rossa potrebbe controllare l'uso da parte dell'utente dell'Api e dei Feed di Dati. L'utente non può utilizzare alcun mezzo tecnico per interferire con tale monitoraggio e Croce Rossa può utilizzare mezzi tecnici per superare tali interferenze.\n\nL'uso dei messaggi Preparazione, Risposta e Recupero sarà presentato solo come attuale o aggiornato all'impostazione di urgenza attuale dell'Avviso di evento correlato e l'utente dovrà aggiornare i singoli messaggi di preparazione, risposta e recupero in seguito a qualsiasi aggiornamento dei Feed di Dati e/o degli avvisi di evento correlati da parte di Croce Rossa.\n\n I messaggi individuali Preparazione, Risposta e Recupero sono associati solo alla regione geografica per la quale sono stati emessi. Se un Messaggio Preparazione, Risposta e Recupero include un riferimento a una fonte come la Croce Rossa Americana o un'altra società o organizzazione nazionale della Croce Rossa o della Mezzaluna Rossa (ognuno un \"Riferimento alla Fonte\"), l'utente dovrà includere il Riferimento alla Fonte associato a ciascun Messaggio Preparazione, Risposta e Recupero nella forma fornita nei Feed di Dati. L'utente non farà più alcun uso di nessun Riferimento alla Fonte.\n\nL'utente non può tradurre i Feed di Dati, gli Avvisi di eventi e/o i Messaggi Preparazione, Risposta e Recupero in qualsiasi altra lingua, fare qualsiasi uso, modifica o revisione, o alterare il significato dei Feed di Dati degli Avvisi di eventi e/o dei Messaggi Preparazione, Risposta e Recupero.\n\nL'utente deve assicurarsi che i Feed di Dati rimangano esclusivamente in proprio possesso e sotto il proprio controllo.\n\nL'utente non può permettere che gli Avvisi di Eventi e i Messaggi Preparazione, Risposta e Recupero inviati all'Utente Finale contengano qualche pubblicità o sponsorizzazione.\n\nL'utente non può archiviare né interamente né parzialmente i Feed di Dati.", "contact": "Per favore, contattare Croce Rossa al {0} per qualsiasi domanda riguardo all'API.", - "disclaimer": "L'API e i Feed di Dati sono forniti SOLO PER SCOPI INFORMATIVI ED EDUCATIVI, E su una base \"come è\" e \"come disponibile\". Croce Rossa non rilascia dichiarazioni o garanzie di alcun tipo, esplicite o implicite. Croce Rossa declina ogni altra garanzia, esplicita o implicita, tra cui, a titolo esemplificativo, garanzie implicite di commerciabilità e idoneità per uno scopo particolare. Croce Rossa e i suoi dipendenti, funzionari, governatori, agenti e licenziatari non saranno responsabili per danni di qualsiasi tipo derivanti dall'uso dell'API, dei Feed di Dati, degli Avvisi di Eventi e\/o dei messaggi di Preparazione, Risposta e Recupero, compresi, ma non solo, i danni diretti, indiretti, incidentali, punitivi e consequenziali.\n\nCroce Rossa non garantisce la sequenza, l'accuratezza, l'autenticità o la completezza dell'API, dei Feed di Dati, degli Avvisi degli Eventi e\/o dei messaggi di Preparazione, Risposta e Recupero e non sarà ritenuta responsabile in alcun modo nei confronti dell'utente o dei suoi Utenti Finali o di terzi, inclusi, senza limitazione, eventuali ritardi, imprecisioni, errori o omissioni, relativamente alle API, ai Feed di Dati, agli Avvisi di Eventi e\/o ai messaggi di Preparazione, Risposta e Recupero forniti nel presente documento.", + "disclaimer": "L'API e i Feed di Dati sono forniti SOLO PER SCOPI INFORMATIVI ED EDUCATIVI, E su una base \"come è\" e \"come disponibile\". Croce Rossa non rilascia dichiarazioni o garanzie di alcun tipo, esplicite o implicite. Croce Rossa declina ogni altra garanzia, esplicita o implicita, tra cui, a titolo esemplificativo, garanzie implicite di commerciabilità e idoneità per uno scopo particolare. Croce Rossa e i suoi dipendenti, funzionari, governatori, agenti e licenziatari non saranno responsabili per danni di qualsiasi tipo derivanti dall'uso dell'API, dei Feed di Dati, degli Avvisi di Eventi e/o dei messaggi di Preparazione, Risposta e Recupero, compresi, ma non solo, i danni diretti, indiretti, incidentali, punitivi e consequenziali.\n\nCroce Rossa non garantisce la sequenza, l'accuratezza, l'autenticità o la completezza dell'API, dei Feed di Dati, degli Avvisi degli Eventi e/o dei messaggi di Preparazione, Risposta e Recupero e non sarà ritenuta responsabile in alcun modo nei confronti dell'utente o dei suoi Utenti Finali o di terzi, inclusi, senza limitazione, eventuali ritardi, imprecisioni, errori o omissioni, relativamente alle API, ai Feed di Dati, agli Avvisi di Eventi e/o ai messaggi di Preparazione, Risposta e Recupero forniti nel presente documento.", "entire_agreement": { "body": "I Termini dell'API costituiscono l'accordo completo ed esclusivo tra Croce Rossa e l'utente in relazione all'oggetto del presente documento e sostituiscono tutte le precedenti intese, comunicazioni o accordi orali o scritti non specificamente incorporati nel presente documento. Croce Rossa si riserva il diritto di modificare o revocare tale accordo in qualsiasi momento.", "heading": "Intero accordo:" @@ -869,7 +870,7 @@ "heading": "ACCORDO DI LICENZA PER UTENTE FINALE DELL'API", "intro": "ACCORDO: UTILIZZANDO IL SERVIZIO O SELEZIONANDO LA CASELLA FORNITA, L'UTENTE ACCETTA DI ESSERE VINCOLATO A QUESTO ACCORDO.\n\nL'API è uno strumento che ti permette (\"Tu\") di recuperare e utilizzare i feed di dati messi a disposizione da Croce Rossa, tra cui un feed di avvisi di eventi meteorologici e catastrofici globali (\"Avvisi di Eventi\") e un feed di messaggi attuabili e contestualizzati su come prepararsi ai rischi locali per tipo di pericolo e urgenza (\"Messaggi di Preparazione, Risposta e Recupero\" e collettivamente con gli Avvisi di Eventi, i \"Feed di Dati\"). I messaggi di Preparazione, Risposta e Recupero sono destinati ad accompagnare gli Avvisi di Eventi o altri avvisi di allerta e vigilanza associati a eventi meteorologici e disastri nella tua applicazione. L'uso dei feed di dati da parte dell'utente è regolato dai Termini API.", "license_limitations": { - "body": "L'utente può utilizzare i Feed di Dati solo in associazione con la sua applicazione soggetta ai Termini API, e a condizione che mantenga la compatibilità con l'API, come aggiornato di volta in volta. All'utente viene concesso un diritto non esclusivo, limitato e revocabile di scaricare, utilizzare, riprodurre e distribuire agli utenti finali della propria applicazione (\"End Users\") gli avvisi di eventi e i relativi messaggi contestualizzati di Preparazione, Risposta e Recupero in associazione all'impostazione di urgenza dei singoli avvisi di eventi dai Feed di Dati, in base ai Termini API. L'utente può utilizzare l'API solo per facilitare gli usi non commerciali dei Feed di Dati in conformità con i Termini API. L'utente non può in nessun caso utilizzare l'API per facilitare gli usi commerciali dei Feed di Dati, degli Avvisi di eventi e\/o dei Messaggi di Preparazione, Risposta e Recupero, compresi, senza limitazione, la rivendita, l'addebito per accedervi, l'addebito per ridistribuirli o l'addebito per creare opere derivate basate su di essi. La Croce Rossa e i suoi concessori di licenza mantengono tutti i titoli, la proprietà, i diritti e gli interessi in e verso l'API, i messaggi di Preparazione, Risposta e Recupero, gli avvisi di eventi, i Feed di Dati e i riferimenti alla fonte (come definiti di seguito) in essi contenuti. Tutti i diritti non espressamente concessi sono riservati.", + "body": "L'utente può utilizzare i Feed di Dati solo in associazione con la sua applicazione soggetta ai Termini API, e a condizione che mantenga la compatibilità con l'API, come aggiornato di volta in volta. All'utente viene concesso un diritto non esclusivo, limitato e revocabile di scaricare, utilizzare, riprodurre e distribuire agli utenti finali della propria applicazione (\"End Users\") gli avvisi di eventi e i relativi messaggi contestualizzati di Preparazione, Risposta e Recupero in associazione all'impostazione di urgenza dei singoli avvisi di eventi dai Feed di Dati, in base ai Termini API. L'utente può utilizzare l'API solo per facilitare gli usi non commerciali dei Feed di Dati in conformità con i Termini API. L'utente non può in nessun caso utilizzare l'API per facilitare gli usi commerciali dei Feed di Dati, degli Avvisi di eventi e/o dei Messaggi di Preparazione, Risposta e Recupero, compresi, senza limitazione, la rivendita, l'addebito per accedervi, l'addebito per ridistribuirli o l'addebito per creare opere derivate basate su di essi. La Croce Rossa e i suoi concessori di licenza mantengono tutti i titoli, la proprietà, i diritti e gli interessi in e verso l'API, i messaggi di Preparazione, Risposta e Recupero, gli avvisi di eventi, i Feed di Dati e i riferimenti alla fonte (come definiti di seguito) in essi contenuti. Tutti i diritti non espressamente concessi sono riservati.", "heading": "Licenza e Limitazioni:" }, "overview": { @@ -888,17 +889,17 @@ "two": "Eludere o modificare qualsiasi chiave o meccanismo di sicurezza impiegato dalla Croce Rossa o dall'API, compresa, senza limitazione, qualsiasi tecnologia di autenticazione.", "three": "Richiedere, raccogliere, sollecitare o ottenere in altro modo l'accesso a utenti, password o altre credenziali di autenticazione per accedere alla Croce Rossa diverse da quelle fornite all'utente per il proprio account.", "four": "Affermare o implicare l'affiliazione, il patrocinio o l'approvazione da parte della Croce Rossa o di qualsiasi altra società o organizzazione nazionale della Croce Rossa o della Mezzaluna Rossa.", - "five": "Affermare o sottintendere che l'utente possiede o ha creato l'API, i Feed di Dati, gli avvisi di eventi e\/o i messaggi di preparazione, risposta e recupero.", + "five": "Affermare o sottintendere che l'utente possiede o ha creato l'API, i Feed di Dati, gli avvisi di eventi e/o i messaggi di preparazione, risposta e recupero.", "six": "Trasmettere qualsiasi virus, worms, cavalli di Troia, o qualsiasi elemento progettato per danneggiare." } }, - "reserve_rights": "La Croce Rossa si riserva il diritto di modificare e\/o non fornire più l'API e i feed di dati in tutto o in parte, temporaneamente o permanentemente, in qualsiasi momento e senza preavviso. A scanso di equivoci, nulla nel presente documento obbliga la Croce Rossa a rendere disponibili all'utente le sue API o i suoi feed di dati e l'utente accetta e riconosce che qualsiasi accesso è a sola e assoluta discrezione della Croce Rossa.", + "reserve_rights": "La Croce Rossa si riserva il diritto di modificare e/o non fornire più l'API e i feed di dati in tutto o in parte, temporaneamente o permanentemente, in qualsiasi momento e senza preavviso. A scanso di equivoci, nulla nel presente documento obbliga la Croce Rossa a rendere disponibili all'utente le sue API o i suoi feed di dati e l'utente accetta e riconosce che qualsiasi accesso è a sola e assoluta discrezione della Croce Rossa.", "severability": { "body": "L'invalidità di una qualsiasi disposizione dei Termini Api non influirà sulla validità di qualsiasi altra disposizione.", "heading": "Divisibilità e Rinuncia:" }, "suspension": { - "body": "La Croce Rossa si riserva il diritto di sospendere o terminare l'accesso dell'utente se stabilisce, a sua esclusiva discrezione, che l'utente è impegnato in un uso non autorizzato dell'API o del Feed di Dati come indicato nei Termini API o che l'utente sta usando l'API o il Feed di Dati in attività che minacciano\/compromettono la sicurezza di qualsiasi persona o della rete della Croce Rossa.", + "body": "La Croce Rossa si riserva il diritto di sospendere o terminare l'accesso dell'utente se stabilisce, a sua esclusiva discrezione, che l'utente è impegnato in un uso non autorizzato dell'API o del Feed di Dati come indicato nei Termini API o che l'utente sta usando l'API o il Feed di Dati in attività che minacciano/compromettono la sicurezza di qualsiasi persona o della rete della Croce Rossa.", "heading": "Sospensione o Risoluzione:" } }, diff --git a/resources/lang/ja.json b/resources/lang/ja.json index 58d5b1d..ae5a8e6 100644 --- a/resources/lang/ja.json +++ b/resources/lang/ja.json @@ -441,9 +441,9 @@ "immediate": "即時", "warning": "警告", "anticipated": "予測", - "assess_and_plan":"評価と計画", - "mitigate_risks":"リスク軽減", - "prepare_to_respond":"対応準備", + "assess_and_plan": "評価と計画", + "mitigate_risks": "リスク軽減", + "prepare_to_respond": "対応準備", "recover": "復旧" }, "content": { @@ -558,7 +558,8 @@ "content_edit_title": "コンテンツ編集", "content_add_hazard_title": "危険を追加", "key_message_label": "主要メッセージのタイトル", - "supporting_message_label": "サポートメッセージ" + "supporting_message_label": "サポートメッセージ", + "mitigate_risk": "リスク軽減" }, "message_editor": { "title": "アトリビューション・エディター", @@ -618,7 +619,7 @@ "bad_request_error_codes": { "30001": "列見出しがテンプレートと一致しません", "30002": "組織名、メッセージ、またはURLがありません", - "30003": "組織名のURLが無効です。https:\/\/などのプロトコルが存在することを確認してください", + "30003": "組織名のURLが無効です。https://などのプロトコルが存在することを確認してください", "40001": "不正な国コードが入力されました", "40002": "選択した組織は、選択したファイルの組織と一致しません", "40003": "選択したファイルがエクスポートされた日付は不正に作成され、インポートが完了していません" diff --git a/resources/lang/my.json b/resources/lang/my.json index 74a40c7..17542be 100644 --- a/resources/lang/my.json +++ b/resources/lang/my.json @@ -197,13 +197,15 @@ "steps": { "one": { "heading": "အဆင့် ၁ - စာရင်းသွင်းပါ", - "body": "လုံခြုံရေးသတင်းစကား ဒေတာဘေ့စ် API မှ ဒေတာကို အသုံးပြုခြင်းစတင်ရန်၊ ဦးစွာ လုံခြုံရေးသတင်းစကား ဒေတာဘေ့စ် ပေါ်တယ်သို့ {0} ဝင်ရောက်ပါ။\n\nသင်သည် သင်၏ Facebook နှင့် Google အကောင့်များ သို့မဟုတ် အီးမေးလ်လိပ်စာကို အသုံးပြု၍ အကောင့်တစ်ခု ဖန်တီးနိုင်သည်။", "create_account_alt": "အကောင့်တစ်ခုဖန်တီးခြင်း", + "body": "လုံခြုံရေးသတင်းစကား ဒေတာဘေ့စ် API မှ ဒေတာကို အသုံးပြုခြင်းစတင်ရန်၊ ဦးစွာ လုံခြုံရေးသတင်းစကား ဒေတာဘေ့စ် ပေါ်တယ်သို့ {0} ဝင်ရောက်ပါ။\n\nသင်သည် သင်၏ Facebook နှင့် Google အကောင့်များ သို့မဟုတ် အီးမေးလ်လိပ်စာကို အသုံးပြု၍ အကောင့်တစ်ခု ဖန်တီးနိုင်သည်။", + "create_account_alt": "အကောင့်တစ်ခုဖန်တီးခြင်း", "existing_account": "သင့်တွင်အကောင့်တစ်ခုရှိပြီးဖြစ်ပါကက ကျေးဇူးပြု၍ {0}။", "login_cta": "လော့ဂ်အင်ဝင်ရန်", "sign_up_cta": "စာရင်းသွင်းရန်" }, "two": { - "body": "API ကို အသုံးပြုရန်၊ သင်သည် လုံခြုံရေးသတင်းစကား ဒေတာဘေ့စ် ပေါ်တယ်တွင် အပလီကေးရှင်းတစ်ခု ဖန်တီးရပါမည်။ သင်ဘာတည်ဆောက်နေသည်ကို အနည်းငယ်ပြောပြပါ။", "create_app_alt": "အက်ပ် ဖန်တီးပါ", + "body": "API ကို အသုံးပြုရန်၊ သင်သည် လုံခြုံရေးသတင်းစကား ဒေတာဘေ့စ် ပေါ်တယ်တွင် အပလီကေးရှင်းတစ်ခု ဖန်တီးရပါမည်။ သင်ဘာတည်ဆောက်နေသည်ကို အနည်းငယ်ပြောပြပါ။", + "create_app_alt": "အက်ပ် ဖန်တီးပါ", "heading": "အဆင့် ၂ - အက်ပ်တစ်ခုဖန်တီးပါ" }, "three": { @@ -214,7 +216,8 @@ }, "four": { "api_docs_cta": "API စာရွက်စာတမ်း", - "body": "API ကို အသုံးပြုရန်၊ သင်သည် လုံခြုံရေးသတင်းစကား ဒေတာဘေ့စ် ပေါ်တယ်တွင် အပလီကေးရှင်းတစ်ခု ဖန်တီးရပါမည်။ သင်ဘာတည်ဆောက်နေသည်ကို အနည်းငယ်ပြောပြပါ။", "example_title": "တောင်းခံလွှာနမူနာ", + "body": "API ကို အသုံးပြုရန်၊ သင်သည် လုံခြုံရေးသတင်းစကား ဒေတာဘေ့စ် ပေါ်တယ်တွင် အပလီကေးရှင်းတစ်ခု ဖန်တီးရပါမည်။ သင်ဘာတည်ဆောက်နေသည်ကို အနည်းငယ်ပြောပြပါ။", + "example_title": "တောင်းခံလွှာနမူနာ", "heading": "အဆင့် ၄ - တောင်းဆိုမှုတစ်ခု ပြုပါ", "moreInfo": "API အဆုံးသတ်အမှတ်များအားလုံးနှင့် ပတ်သက်သည့်အချက်အလက်များ ပိုမိုသိရှိလိုပါက {0} ကိုကြည့်ပါ။" } @@ -438,9 +441,9 @@ "immediate": "ချက်ချင်း", "warning": "သတိပေးချက်", "anticipated": "မျှော်မှန်းထားသည်", - "assess_and_plan":"အကဲဖြတ်ပြီး စီစဉ်ပါ", - "mitigate_risks":"အန္တရာယ်ကို လျှော့ချပါ", - "prepare_to_respond":"တုံ့ပြန်ရန် ပြင်ဆင်ပါ", + "assess_and_plan": "အကဲဖြတ်ပြီး စီစဉ်ပါ", + "mitigate_risks": "အန်ឌရုကို လျှော့ချပါ", + "prepare_to_respond": "တုံ့ပြန်ရန် ပြင်ဆင်ပါ", "recover": "ပြန်လည်နာလန်ထူပါ" }, "content": { @@ -523,7 +526,7 @@ "seasonalForecast_extra": "ရာသီအလိုက်ခန့်မှန်းချက်တစ်ခုဆိုသည်မှာ အန္တရာယ်ရှိသောဖြစ်စဉ်တစ်ခုကို ကြိုတင်ခန့်မှန်းသည့် ဖော်ပြချက်တစ်ခုဖြစ်ပါသည်။ လုပ်ဆောင်သည့်အရာများမှာ အိမ်ထောင်စုကို ကာကွယ်ရန်နှင့် ဘေးအန္တရာယ်လျှော့ချရန် ဖြစ်နိုင်ချေရှိသော ဘေးအန္တရာယ်များကို အကဲဖြတ်ခြင်းနှင့် လုပ်ဆောင်ချက်များကို ကြိုတင်စီမံခြင်းဖြစ်သည်။", "watch": "စောင့်ကြည့်ပါ", "watch_help": "တုံ့ပြန်ရန် ကြိုတင်ပြင်ဆင်ပါ", - "watch_extra": "အန္တရာယ်ရှိသောအဖြစ်အပျက်တစ်ခု၏အန္တရာယ် သိသိသာသာ မြှင့်တက်လာသောအခါ စောင့်ကြည့်မှုပြုရန် ကြေညာချက်ထုတ်သော်လည်း ၎င်း၏ဖြစ်ပျက်မှု၊ တည်နေရာ နှင့်\/သို့မဟုတ် အချိန်ကိုက်မှုများသည် မသေချာသေးပါ။ ဤသည်က ကြိုတင်ကာကွယ်သည့် လုပ်ဆောင်ချက်များနှင့် တုံ့ပြန်ရန်ပြင်ဆင်မှုများအတွက် လုံလောက်သောအချိန်ပေးရန် ရည်ရွယ်သည်။", + "watch_extra": "အန္တရာယ်ရှိသောအဖြစ်အပျက်တစ်ခု၏အန္တရာယ် သိသိသာသာ မြှင့်တက်လာသောအခါ စောင့်ကြည့်မှုပြုရန် ကြေညာချက်ထုတ်သော်လည်း ၎င်း၏ဖြစ်ပျက်မှု၊ တည်နေရာ နှင့်/သို့မဟုတ် အချိန်ကိုက်မှုများသည် မသေချာသေးပါ။ ဤသည်က ကြိုတင်ကာကွယ်သည့် လုပ်ဆောင်ချက်များနှင့် တုံ့ပြန်ရန်ပြင်ဆင်မှုများအတွက် လုံလောက်သောအချိန်ပေးရန် ရည်ရွယ်သည်။", "warning": "သတိပေးချက်", "warning_help": "တုံ့ပြန်ရန် ကြိုတင်ပြင်ဆင်ပါ", "warning_extra": "ဘေးအန္တရာယ်ရှိသောဖြစ်စဉ်တစ်ခု ဖြစ်ပေါ်နေစဉ်၊ ဖြစ်အံ့ဆဲဆဲ သို့မဟုတ် ဖြစ်ပေါ်နိုင်ချေ အလွန်မြင့်မားသည့်အခါ သတိပေးချက်ကို ထုတ်ပြန်သည်။ ဆိုလိုသည်မှာ အသက် သို့မဟုတ် ပိုင်ဆိုင်မှုကို ခြိမ်းခြောက်သည့် အခြေအနေများ ဖြစ်ပေါ်စေခြင်းဖြစ်သည်။ ဤဘေးအန္တရာယ် လမ်းကြောင်းရှိလူများသည် ကြိုတင်ကာကွယ်သည့် လုပ်ဆောင်ချက်များ လုပ်ဆောင်ရန် လိုအပ်သည်။", @@ -535,7 +538,7 @@ "recover_extra": "ဤအရာများသည် ဘေးအန္တရာယ်ရှိသော ဖြစ်စဉ်တစ်ခု ဖြစ်ပြီးနောက် ဘေးအန္တရာယ်လျှော့ချရန် ကြိုတင်ကာကွယ်သည့် လုပ်ဆောင်ချက်များဖြစ်သည်။", "anticipated": "မျှော်မှန်းထားသည်", "assess_and_plan": "အကဲဖြတ်ပြီး စီစဉ်ပါ", - "mitigate_risks": "အန္တရာယ်ကို လျှော့ချပါ", + "mitigate_risks": "အန်ឌရုကို လျှော့ချပါ", "prepare_to_respond": "တုံ့ပြန်ရန် ပြင်ဆင်ပါ", "updated": "မွမ်းမံထားပြီး", "download_icon": "ဒေါင်းလုပ်အိုင်ကွန်", @@ -555,7 +558,8 @@ "content_edit_title": "အကြောင်းအရာ တည်းဖြတ်ခြင်း", "content_add_hazard_title": "အန္တရာယ် ထည့်ပါ", "key_message_label": "အဓိက သတင်းစကား ခေါင်းစဉ်", - "supporting_message_label": "အထောက်အပံ့ သတင်းစကား" + "supporting_message_label": "အထောက်အပံ့ သတင်းစကား", + "mitigate_risk": "အန်ឌရုကို လျှော့ချပါ" }, "message_editor": { "title": "ဂုဏ်ပြုခြင်း တည်းဖြတ်သူ", @@ -615,7 +619,7 @@ "bad_request_error_codes": { "30001": "ကော်လံ ခေါင်းစဉ်ကြီးများသည် ပုံစံနှင့်မကိုက်ညီပါ", "30002": "မူလလက်ရာရှင်အမည်၊ မက်ဆေ့ခ်ျ သို့မဟုတ် url များ ပျောက်နေသည်", - "30003": "မူလလက်ရာရှင် url မမှန်ပါ - ကျေးဇူးပြု၍ လုပ်ထုံး ဥပမာ - https:\/\/ ရှိကြောင်း သေချာပါစေ", + "30003": "မူလလက်ရာရှင် url မမှန်ပါ - ကျေးဇူးပြု၍ လုပ်ထုံး ဥပမာ - https:// ရှိကြောင်း သေချာပါစေ", "40001": "ပေးထားသော နိုင်ငံကုဒ် မမှန်ပါ", "40002": "ရွေးချယ်ထားသောလူ့အဖွဲ့အစည်းသည် ရွေးချယ်ထားသောဖိုင်အတွက် လူ့အဖွဲ့အစည်းနှင့် မကိုက်ညီပါ", "40003": "ရွေးချယ်ထားသောဖိုင် တင်ပို့ခဲ့သည့်ရက်စွဲသည် မပြည့်စုံသဖြင့် တင်သွင်းမှု မပြီးမြောက်ပါ" @@ -686,7 +690,7 @@ }, "landing": { "strapline": "လုံခြုံရေးသတင်းစကား ဒေတာဘေ့စ် ဝန်ဆောင်မှု", - "strapline_part_2": "ကမ္ဘာလုံးဆိုင်ရာ ကြက်ခြေနီ\/ လခြမ်းနီ ၏အဓိက ဘေးအန္တရာယ်ကင်းရှင်းရေး သတင်းစကားများ", + "strapline_part_2": "ကမ္ဘာလုံးဆိုင်ရာ ကြက်ခြေနီ/ လခြမ်းနီ ၏အဓိက ဘေးအန္တရာယ်ကင်းရှင်းရေး သတင်းစကားများ", "head_1": "IFRC လုံခြုံရေး", "head_2": "သတင်းစကား ဒေတာဘေ့စ်", "head_text_1": "IFRC ပြည်သူ့အသိပညာပေးမှုနှင့် အခြေခံထားသော လုံခြုံရေးသတင်းစကားများ", @@ -741,7 +745,7 @@ "fake_alert_heading": "အအေးဓာတ်လွန်ကဲနိုင်ကြောင်း သတိပေးချက်", "fake_alert_description": "Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est.", "fake_alert_time": "၁ နာရီအကြာက", - "fake_alert_time_exact": "၀၅\/၀၂\/၁၈ ရက်နေ့ ၀၅:၁၅ CT အချိန်တွင်", + "fake_alert_time_exact": "၀၅/၀၂/၁၈ ရက်နေ့ ၀၅:၁၅ CT အချိန်တွင်", "use_cases": { "heading": "ပိုမိုသိရှိရန်", "first_heading": "အလုပ်လုပ်ပုံ", @@ -782,7 +786,7 @@ }, "data_preview": { "heading": "လုံခြုံရေး သတင်းစကားများ", - "sub_heading": "ကမ္ဘာတစ်ဝှမ်းရှိ ကြက်ခြေနီ \/ လခြမ်းနီ အမျိုးသားလူ့အဖွဲ့အစည်းများထံမှ သော့ချက်စာတမ်းများကို ဆိုင်းအပ် လုပ်၍ ကြည့်ပါ" + "sub_heading": "ကမ္ဘာတစ်ဝှမ်းရှိ ကြက်ခြေနီ / လခြမ်းနီ အမျိုးသားလူ့အဖွဲ့အစည်းများထံမှ သော့ချက်စာတမ်းများကို ဆိုင်းအပ် လုပ်၍ ကြည့်ပါ" }, "footer": { "terms_conditions": "စည်းမျဉ်းများနှင့် အခြေအနေများ", @@ -840,8 +844,8 @@ "emergency": "အရေးပေါ် စီမံခန့်ခွဲမှု", "non_profit": "အကျိုးအမြတ်အတွက်မဟုတ်သော NGO များ", "humanitarian": "လူသားချင်းစာနာမှုအဖွဲ့အစည်း", - "red_cross": "ကြက်ခြေနီ \/လခြမ်းနီ", - "education": "ပညာရေး \/ပညာရပ်", + "red_cross": "ကြက်ခြေနီ /လခြမ်းနီ", + "education": "ပညာရေး /ပညာရပ်", "gov": "အစိုးရအေဂျင်စီ", "other": "အခြား" }, @@ -856,7 +860,7 @@ "body": "ဤပဋိညာဉ်ပါ အခွင့်အရေးများနှင့် တာဝန်ဝတ္တရားများအား ဥပဒေချင်း ပဋိပက္ခဖြစ်မှု တစ်စုံတစ်ရာ မရှိစေရဘဲ ကိုလံဘီယာခရိုင်၏ ဥပဒေများမှ အုပ်ချုပ်ထားသည်။", "heading": "သက်ဆိုင်သောဥပဒေ -" }, - "body": "ကြက်ခြေနီမှ သင့်အား ပေးအပ်သည့် မှတ်ပုံတင်သော့၏ လျှို့ဝှက်ချက်နှင့် လုံခြုံမှုကို ထိန်းသိမ်းရန် သင့်တွင်တာဝန်ရှိသည်။ API သည် အချိန်နှင့်အမျှ ပြင်ဆင်ပြောင်းလဲနေပါသဖြင့် Data Feeds ကို ဆက်လက်ရရှိရန်အတွက် သင့်အနေဖြင့် ယင်းနှင့်လိုက်ဖက်အောင် ထိန်းသိမ်းရန် တာ၀န်ရှိသည်။ ကြက်ခြေနီသည် API နှင့် Data Feeds ၏ နောက်ဆုံးပေါ်မူကွဲများကို ၎င်း၏ ကိုယ်ပိုင်ဆုံးဖြတ်ချက်ဖြင့် ထုတ်ပြန်နိုင်သည်။ မူကွဲအသစ်များသည် ယခင်အကောင်အထည်ဖော်မှုများနှင့် မကိုက်ညီနိုင်ပါ။ သင်နောက်ဆုံးပေါ် မွမ်းမံထားသောအချက်အလက်ထည့်သွင်းမှု မူကွဲဗားရှင်းကို အချိန်တိုင်းအသုံးပြုရန် သင်သဘောတူသည်။\n\nAPI ၏ မည်သည့်အစိတ်အပိုင်းကိုမဆို (သို့မဟုတ်) ကြက်ခြေနီ၏ မည်သည့်ဆော့ဝဲလ်ကိုမဆို ပြုပြင်ခြင်း၊ ဖြန့်ဝေခြင်း၊ ဖြိုခွဲခြင်း၊ ဖြိုဖျက်ခြင်း၊ ပြောင်းပြန်ပြောင်းလဲအသုံးပြုခြင်း မပြုလုပ်ရန် သင်သဘောတူသည်။\n\nကြက်ခြေနီ တစ်ခုတည်း၏ ကိုယ်ပိုင်ဆုံးဖြတ်ခွင့်ဖြင့် ဆုံးဖြတ်ထားသည့်အတိုင်း သင့်လျော်သော တောင်းဆိုမှုပမာဏထက် ကျော်လွန်၍ သို့မဟုတ် အလွန်အကျွံ သို့မဟုတ် အလွဲသုံးစားမှုအသုံးပြုခြင်းဖြင့် အသုံးပြုသည့် API သို့မဟုတ် Data Feeds ကို သင်အသုံးမပြုနိုင်ပါ။\n\nသင်သည် API သို့မဟုတ် Data Feeds ကို တရားမဝင်သော၊ လွဲမှားယူဆစေနိုင်သော၊ ပေါ့ဆသော၊ အဆိုးသဘောဆောင်သာ၊ ထိခိုက်စေလိုသော ရည်ရွယ်ချက်ပါဝင်သည့် အပြုအမူများ သို့မဟုတ် ကြက်ခြေနီ၊ ယင်းအား ဝန်ဆောင်မှုပေးသူများ၊ ယင်းအား ပါဝင်အကြောင်းအရာပေးသူများ သို့မဟုတ် အခြားသော မည်သူ့ကိုဖြစ်စေ ထိခိုက်စေလိုသော အပြုအမူများဟု ကြက်ခြေနီတစ်ခုတည်းမှ အဆုံးအဖြတ်ပေးထားသော အပြုအမူများဖြင့် အသုံးမပြုရ။\n\nကြက်ခြေနီသည် သင်၏ API နှင့် Data Feeds အသုံးပြုမှုကိုစောင့်ကြည့်နိုင်သည်။ သင်သည် ထိုကဲ့သို့သော စောင့်ကြည့်စစ်ဆေးမှုကို ဝင်ရောက်စွက်ဖက်ရန်အတွက် မည်သည့် နည်းပညာဆိုင်ရာနည်းလမ်းကိုမှ အသုံးမပြုနိုင်ဘဲ ကြက်ခြေနီသည် ထိုကဲ့သို့သော ဝင်ရောက်စွက်ဖက်မှုများကို ကျော်လွှားရန် နည်းပညာဆိုင်ရာနည်းလမ်းများကို အသုံးပြုမည်ဖြစ်သည်။\n\nပြင်ဆင်ခြင်း၊ တုန့်ပြန်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်းဆိုင်ရာ မက်ဆေ့ခ်ျများအား အသုံးပြုခြင်းကို လက်ရှိ (သို့မဟုတ်) နောက်ဆုံးပေါ် ဆက်စပ်မှုအဖြစ်အပျက်အချက်ပေးမှု၏ လက်ရှိအရေးပေါ်အခြေအနေအဖြစ်သာ တင်ပြရမည်။ အချက်အလက်များပေးပို့ခြင်း နှင့်\/သို့မဟုတ် ဆက်နွယ်သော အဖြစ်အပျက်ဆိုင်ရာ သတိပေးချက်များကို ကြက်ခြေနီမှ ပြင်ဆင်မှုများပြုလုပ်ပြီးပါက သင်သည် ပြင်ဆင်ခြင်း၊ တုန့်ပြန်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်းဆိုင်ရာ မက်ဆေ့ခ်ျတစ်ခုချင်းစီအား ပုံစံအသစ်ဖြင့် ပြန်လည်ပြင်ဆင်ရမည်။\n\nသင်အသုံးပြုသော ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ရယူခြင်း မက်ဆေ့တစ်ခုချင်းစီသည် ၎င်းထုတ်ပေးသည့် ပထဝီဒေသနှင့်သာ သက်ဆိုင်ရမည်။ အကယ်၍ ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်းဆိုင်ရာမက်ဆေ့ခ်ျများတွင် အမေရိကန်ကြက်ခြေနီ သို့မဟုတ် အခြားကြက်ခြေနီ သို့မဟုတ် လခြမ်းနီအမျိုးသားလူ့အဖွဲ့အစည်း သို့မဟုတ် အဖွဲ့အစည်း (\"ရင်းမြစ်ကိုးကားချက်\" တစ်ခုချင်းစီ) ကဲ့သို့သော အရင်းအမြစ်တစ်ခုကို ရည်ညွှန်းပါက၊ သင်သည် ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်း နှင့် ပြန်လည်ထူထောင်ခြင်းဆိုင်ရာမက်ဆေ့ချ်များအတွက် ကိုးကားချက်များကို Data Feeds တွင်း ပေးအပ်ထားသောဖောင်ပုံစံအတွင်း ဖြည့်သွင်းရမည်။ သင်သည် မည်သည့် ရင်းမြစ်ရည်ညွှန်းချက်ကိုမှ ထပ်မံ၍ အသုံးမပြုရ။\n\nသင်သည် သတင်းအချက်အလက်များကို ထည့်သွင်းခြင်း (Data Feeds)၊ ဖြစ်ရပ်များသတိပေးခြင်းများ နှင့်\/သို့မဟုတ် ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ရယူခြင်းမက်ဆေ့များကို အခြားဘာသာစကားများသို့ ဘာသာပြန်ဆိုခြင်း၊ မည်သည့်နည်းနှင့်မဆို အသုံးချခြင်း၊ ပြုပြင်ခြင်း၊ ပြန်လည်ပြင်ဆင်ခြင်း မပြုလုပ်ရပါ။ သတင်းအချက်အလက်များကို ထည့်သွင်းခြင်း၊ ဖြစ်ရပ်များသတိပေးခြင်းများ နှင့်\/သို့မဟုတ် ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ရယူခြင်းမက်ဆေ့များ၏ အဓိပ္ပာယ်ကို ပြောင်းလဲခြင်း (များ) မပြုလုပ်ရပါ။\n\nData Feeds သည် သင့်တစ်ဦးတည်း၏ ပိုင်ဆိုင်မှု နှင့်\/သို့မဟုတ် ထိန်းချုပ်မှုအောက်တွင် ရှိကြောင်း သေချာအောင် ပြုလုပ်ရမည်။\n\nသင်သည် နောက်ဆုံးပေါ်အသုံးပြုသူများထံသို့ ပေးပို့သော အဖြစ်အပျက်သတိပေးချက်များ၊ ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ရယူခြင်းမက်ဆေ့များထဲတွင် မည်သည့်ကြော်ငြာများနှင့် စပွန်ဆာမဆို ထည့်သွင်းခွင့်မပြုစေရ။\n\nသင်သည် Data Feeds တစ်ခုလုံးကိုဖြစ်စေ၊ တစ်စိတ်တစ်ပိုင်းအနေဖြင့်ဖြစ်စေ မည်သည့် သိမ်းဆည်းမှုကိုမှ မလုပ်ရပါ။", + "body": "ကြက်ခြေနီမှ သင့်အား ပေးအပ်သည့် မှတ်ပုံတင်သော့၏ လျှို့ဝှက်ချက်နှင့် လုံခြုံမှုကို ထိန်းသိမ်းရန် သင့်တွင်တာဝန်ရှိသည်။ API သည် အချိန်နှင့်အမျှ ပြင်ဆင်ပြောင်းလဲနေပါသဖြင့် Data Feeds ကို ဆက်လက်ရရှိရန်အတွက် သင့်အနေဖြင့် ယင်းနှင့်လိုက်ဖက်အောင် ထိန်းသိမ်းရန် တာ၀န်ရှိသည်။ ကြက်ခြေနီသည် API နှင့် Data Feeds ၏ နောက်ဆုံးပေါ်မူကွဲများကို ၎င်း၏ ကိုယ်ပိုင်ဆုံးဖြတ်ချက်ဖြင့် ထုတ်ပြန်နိုင်သည်။ မူကွဲအသစ်များသည် ယခင်အကောင်အထည်ဖော်မှုများနှင့် မကိုက်ညီနိုင်ပါ။ သင်နောက်ဆုံးပေါ် မွမ်းမံထားသောအချက်အလက်ထည့်သွင်းမှု မူကွဲဗားရှင်းကို အချိန်တိုင်းအသုံးပြုရန် သင်သဘောတူသည်။\n\nAPI ၏ မည်သည့်အစိတ်အပိုင်းကိုမဆို (သို့မဟုတ်) ကြက်ခြေနီ၏ မည်သည့်ဆော့ဝဲလ်ကိုမဆို ပြုပြင်ခြင်း၊ ဖြန့်ဝေခြင်း၊ ဖြိုခွဲခြင်း၊ ဖြိုဖျက်ခြင်း၊ ပြောင်းပြန်ပြောင်းလဲအသုံးပြုခြင်း မပြုလုပ်ရန် သင်သဘောတူသည်။\n\nကြက်ခြေနီ တစ်ခုတည်း၏ ကိုယ်ပိုင်ဆုံးဖြတ်ခွင့်ဖြင့် ဆုံးဖြတ်ထားသည့်အတိုင်း သင့်လျော်သော တောင်းဆိုမှုပမာဏထက် ကျော်လွန်၍ သို့မဟုတ် အလွန်အကျွံ သို့မဟုတ် အလွဲသုံးစားမှုအသုံးပြုခြင်းဖြင့် အသုံးပြုသည့် API သို့မဟုတ် Data Feeds ကို သင်အသုံးမပြုနိုင်ပါ။\n\nသင်သည် API သို့မဟုတ် Data Feeds ကို တရားမဝင်သော၊ လွဲမှားယူဆစေနိုင်သော၊ ပေါ့ဆသော၊ အဆိုးသဘောဆောင်သာ၊ ထိခိုက်စေလိုသော ရည်ရွယ်ချက်ပါဝင်သည့် အပြုအမူများ သို့မဟုတ် ကြက်ခြေနီ၊ ယင်းအား ဝန်ဆောင်မှုပေးသူများ၊ ယင်းအား ပါဝင်အကြောင်းအရာပေးသူများ သို့မဟုတ် အခြားသော မည်သူ့ကိုဖြစ်စေ ထိခိုက်စေလိုသော အပြုအမူများဟု ကြက်ခြေနီတစ်ခုတည်းမှ အဆုံးအဖြတ်ပေးထားသော အပြုအမူများဖြင့် အသုံးမပြုရ။\n\nကြက်ခြေနီသည် သင်၏ API နှင့် Data Feeds အသုံးပြုမှုကိုစောင့်ကြည့်နိုင်သည်။ သင်သည် ထိုကဲ့သို့သော စောင့်ကြည့်စစ်ဆေးမှုကို ဝင်ရောက်စွက်ဖက်ရန်အတွက် မည်သည့် နည်းပညာဆိုင်ရာနည်းလမ်းကိုမှ အသုံးမပြုနိုင်ဘဲ ကြက်ခြေနီသည် ထိုကဲ့သို့သော ဝင်ရောက်စွက်ဖက်မှုများကို ကျော်လွှားရန် နည်းပညာဆိုင်ရာနည်းလမ်းများကို အသုံးပြုမည်ဖြစ်သည်။\n\nပြင်ဆင်ခြင်း၊ တုန့်ပြန်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်းဆိုင်ရာ မက်ဆေ့ခ်ျများအား အသုံးပြုခြင်းကို လက်ရှိ (သို့မဟုတ်) နောက်ဆုံးပေါ် ဆက်စပ်မှုအဖြစ်အပျက်အချက်ပေးမှု၏ လက်ရှိအရေးပေါ်အခြေအနေအဖြစ်သာ တင်ပြရမည်။ အချက်အလက်များပေးပို့ခြင်း နှင့်/သို့မဟုတ် ဆက်နွယ်သော အဖြစ်အပျက်ဆိုင်ရာ သတိပေးချက်များကို ကြက်ခြေနီမှ ပြင်ဆင်မှုများပြုလုပ်ပြီးပါက သင်သည် ပြင်ဆင်ခြင်း၊ တုန့်ပြန်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်းဆိုင်ရာ မက်ဆေ့ခ်ျတစ်ခုချင်းစီအား ပုံစံအသစ်ဖြင့် ပြန်လည်ပြင်ဆင်ရမည်။\n\nသင်အသုံးပြုသော ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ရယူခြင်း မက်ဆေ့တစ်ခုချင်းစီသည် ၎င်းထုတ်ပေးသည့် ပထဝီဒေသနှင့်သာ သက်ဆိုင်ရမည်။ အကယ်၍ ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်းဆိုင်ရာမက်ဆေ့ခ်ျများတွင် အမေရိကန်ကြက်ခြေနီ သို့မဟုတ် အခြားကြက်ခြေနီ သို့မဟုတ် လခြမ်းနီအမျိုးသားလူ့အဖွဲ့အစည်း သို့မဟုတ် အဖွဲ့အစည်း (\"ရင်းမြစ်ကိုးကားချက်\" တစ်ခုချင်းစီ) ကဲ့သို့သော အရင်းအမြစ်တစ်ခုကို ရည်ညွှန်းပါက၊ သင်သည် ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်း နှင့် ပြန်လည်ထူထောင်ခြင်းဆိုင်ရာမက်ဆေ့ချ်များအတွက် ကိုးကားချက်များကို Data Feeds တွင်း ပေးအပ်ထားသောဖောင်ပုံစံအတွင်း ဖြည့်သွင်းရမည်။ သင်သည် မည်သည့် ရင်းမြစ်ရည်ညွှန်းချက်ကိုမှ ထပ်မံ၍ အသုံးမပြုရ။\n\nသင်သည် သတင်းအချက်အလက်များကို ထည့်သွင်းခြင်း (Data Feeds)၊ ဖြစ်ရပ်များသတိပေးခြင်းများ နှင့်/သို့မဟုတ် ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ရယူခြင်းမက်ဆေ့များကို အခြားဘာသာစကားများသို့ ဘာသာပြန်ဆိုခြင်း၊ မည်သည့်နည်းနှင့်မဆို အသုံးချခြင်း၊ ပြုပြင်ခြင်း၊ ပြန်လည်ပြင်ဆင်ခြင်း မပြုလုပ်ရပါ။ သတင်းအချက်အလက်များကို ထည့်သွင်းခြင်း၊ ဖြစ်ရပ်များသတိပေးခြင်းများ နှင့်/သို့မဟုတ် ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ရယူခြင်းမက်ဆေ့များ၏ အဓိပ္ပာယ်ကို ပြောင်းလဲခြင်း (များ) မပြုလုပ်ရပါ။\n\nData Feeds သည် သင့်တစ်ဦးတည်း၏ ပိုင်ဆိုင်မှု နှင့်/သို့မဟုတ် ထိန်းချုပ်မှုအောက်တွင် ရှိကြောင်း သေချာအောင် ပြုလုပ်ရမည်။\n\nသင်သည် နောက်ဆုံးပေါ်အသုံးပြုသူများထံသို့ ပေးပို့သော အဖြစ်အပျက်သတိပေးချက်များ၊ ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ရယူခြင်းမက်ဆေ့များထဲတွင် မည်သည့်ကြော်ငြာများနှင့် စပွန်ဆာမဆို ထည့်သွင်းခွင့်မပြုစေရ။\n\nသင်သည် Data Feeds တစ်ခုလုံးကိုဖြစ်စေ၊ တစ်စိတ်တစ်ပိုင်းအနေဖြင့်ဖြစ်စေ မည်သည့် သိမ်းဆည်းမှုကိုမှ မလုပ်ရပါ။", "contact": "API နှင့်ပတ်သက်သော မည်သည့်မေးခွန်းများကိုမဆို {0} တွင်ကြက်ခြေနီကို ဆက်သွယ်မေးမြန်းပါ။", "disclaimer": "API နှင့် Data Feeds ကို သတင်းအချက်အလက်ပေးရန်နှင့် ပညာပေးရန် ရည်ရွယ်ချက်များအတွက်သာ ပေးစွမ်းထားပြီး \"ရှိသည့်အတိုင်း\" နှင့် \"ရရှိနိုင်သည့်အတိုင်း\" သာ ပေးထားသည်။ ကြက်ခြေနီသည် မည်သို့သော ကိုယ်စားပြုမှု (သို့) အာမခံမှုများကိုမှ ပြုလုပ်ခြင်း၊ ဖော်ပြခြင်း သို့မဟုတ် ရည်ရွယ်ခြင်းမရှိပါ။ ကြက်ခြေနီအနေဖြင့် ကုန်သွယ်နိုင်မှုနှင့် သီးသန့်ရည်ရွယ်ချက်ပါဝင်သော ကြံ့ခိုင်မှုဆိုင်ရာ ရည်ညွှန်းအာမခံချက်များပါဝင်ပြီး ယင်းတို့သာဟု သတ်မှတ်မထားသည့် တိကျစွာဖော်ပြထားသော (သို့မဟုတ်) အဓိပ္ပာယ်သက်ရောက်သော အာမခံများအားလုံးကို ငြင်းဆိုထားသည်။ API အသုံးပြုခြင်း၊ ဒေတာထည့်သွင်းခြင်း (Data Feeds)၊ ဖြစ်ရပ်သတိပေးခြင်းများ၊ ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်း နှင့် ပြန်လည်ထူထောင်ခြင်းမက်ဆေ့ခ်ျများအပါအဝင်နှင့် အခြားသောဝန်ဆောင်မှုများအား အသုံးပြုခြင်းကြောင့် တိုက်ရိုက်၊ သွယ်ဝိုက်၍၊ မတော်တဆ၊ ဒဏ်ပေးခြင်းအဖြစ်၊ အကျိုးဆက်အနေဖြင့် ဖြစ်လာသော ပျက်စီးဆုံးရှုံးမှုများသည် ကြက်ခြေနီနှင့် ၎င်း၏ ဝန်ထမ်းများ၊ အရာရှိများ၊ အုပ်ချုပ်ရေးမှူးများနှင့် အေးဂျင့်များ နှင့် လိုင်စင်ရသူများထံတွင် တာဝန်မရှိပါ။\n\nကြက်ခြေနီသည် API၊ အချက်အလက်ပေးပို့မှု (Data Feeds)၊ ဖြစ်ရပ်သတိပေးမှု၊ ကြိုတင်ပြင်ဆင်ခြင်း၊ ပြန်လည်ထူထောင်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်းမက်ဆေ့ချ်များ၏ အစီအစဉ်များ၊ တိကျမှန်ကန်မှု၊ စစ်မှန်မှု သို့မဟုတ် ပြည့်စုံမှုကို အာမမခံသလို သင် (သို့) အခြားသော နောက်ပိတ်အသုံးပြုသူများ (သို့) အခြားသူများအတွက် ဤနေရာတွင် ပေးပို့ထားသော API၊ အချက်အလက်ပေးပို့မှု၊ ဖြစ်ရပ်သတိပေးမှု၊ ကြိုတင်ပြင်ဆင်ခြင်း၊ ပြန်လည်ထူထောင်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်းမက်ဆေ့များ၏ နောက်ကျမှု၊ မတိကျမှု၊ အမှားများ (သို့) လိုအပ်ချက်များအပါအဝင် အခြားသောကိစ္စများအား တာဝန်ယူမည်မဟုတ်ပါ။", "entire_agreement": { @@ -866,7 +870,7 @@ "heading": "အသုံးပြုသူလိုင်စင်သဘောတူညီချက်ကို API အဆုံးသတ်ထားသည်", "intro": "သဘောတူသည် - ဤဝန်ဆောင်မှုကို အသုံးပြုခြင်း (သို့မဟုတ်) ဤလေးထောင့်ကွက်အား အမှန်ခြစ်ခြင်းအားဖြင့် အသုံးပြုသူသည် ဤသဘောတူညီမှုဖြင့် တွဲနှောင်ခြင်းကို လက်ခံသည်။\n\nAPI သည် သင်ကြက်ခြေနီမှရရှိသော အချက်အလက်ထည့်သွင်းမှုများကို ပြန်လည်ရယူရန်နှင့် အသုံးပြုရန် ကမ္ဘာလုံးဆိုင်ရာ ရာသီဥတုနှင့်သဘာဝဘေးအန္တရာယ်ဆိုင်ရာ ဖြစ်ရပ်သတိပေးချက်များနှင့် စောင့်ကြည့်သတိပေးချက်များ (\"ဖြစ်ရပ်သတိပေးချက်များ) နှင့် ဒေသန္တရဘေးအန္တရာယ်များအတွက် ပြင်ဆင်နိုင်ရန် အန္တရာယ်အမျိုးအစားနှင့် အလျင်လိုမှုတို့အား ပေးထားပြီး (\"သတင်းများကိုပြင်ဆင်ခြင်း၊ တုန့်ပြန်ခြင်း နှင့် ပြန်လည်ထူထောင်ခြင်း” ဖြစ်ရပ်သတိပေးချက်များ (Event Alerts) နှင့်အတူ၊ “ဒေတာထည့်သွင်းခြင်းများ (Data Feeds\") လုပ်ဆောင်နိုင်ပြီး ကျိုးကြောင်းညီညွတ်မှုရှိသော မက်ဆေ့များကို ခွင့်ပြုသည့် ကိရိယာတစ်ခုဖြစ်သည်။ ကြိုတင်ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်းဆိုင်ရာ မက်ဆေ့ခ်ျများကို ဖြစ်စဉ်သတိပေးချက်များ သို့မဟုတ် အခြားသတိပေးချက်များနှင့်အတူ တွဲဖက်ထည့်သွင်းရန် နှင့် သင်၏ကိုယ်ပိုင် အက်ပလီကေးရှင်းရှိ ရာသီဥတု နှင့် သဘာဝဘေးအန္တရာယ်များ နှင့်ဆက်စပ်သော သတိပေးချက်များကို စောင့်ကြည့်ရန် ရည်ရွယ်သည်။ သင်၏အချက်အလက်ထည့်သွင်းမှုကို အသုံးပြုခြင်းကို API သတ်မှတ်ချက်များဖြင့် စီမံသည်။", "license_limitations": { - "body": "သင်သည် ဒေတာထည့်သွင်းမှု (Data Feeds) များကို API သတ်မှတ်ချက်များနှင့်အညီ သင့်ကိုယ်ပိုင် အက်ပလီကေးရှင်းနှင့် ဆက်စပ်၍သာ သုံးနိုင်ပြီး၊ အခါအားလျော်စွာ မွမ်းမံသည့်အတိုင်း API နှင့်သဟဇာတဖြစ်စေရန် ထိန်းသိမ်းပံ့ပိုးရမည်။ API သတ်မှတ်ချက်များအရ သင့်ကိုယ်ပိုင်အက်ပလီကေးရှင်း အသုံးပြုသူများ (\"အသုံးပြုသူများ\") အတွက် အဖြစ်အပျက် သတိပေးချက်များနှင့် အချက်အလက်ထည့်သွင်းမှုများမှ သီးခြားအဖြစ်အပျက် သတိပေးချက်များ၏ အရေးပေါ်ဆက်တင်နှင့်ဆက်စပ်သည့် သက်ဆိုင်ရာ အခြေအနေအလိုက် ကြိုတင်ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်းဆိုင်ရာ မက်ဆေ့ချ်များ ဒေါင်းလုဒ်လုပ်ရန်၊ အသုံးပြုရန်၊ ပြန်လည်ထုတ်လုပ်ရန်နှင့် ဖြန့်ဝေရန်အတွက် သီးသန့်မဟုတ်သော၊ ကန့်သတ်ထားပြီး ပြန်လည်ရုပ်သိမ်းနိုင်သော အခွင့်အရေးကို သင့်အားပေးအပ်သည်။ API သတ်မှတ်ချက်များနှင့်အညီ ထည့်သွင်းထားသော Data Feeds များကို စီးပွားဖြစ်မဟုတ်သော အသုံးပြုခြင်းများ ဖြစ်မြောက်စေရန်အတွက်သာ API ကို သင် အသုံးပြုနိုင်သည်။ ၎င်းတို့ကို ပြန်လည်ရောင်းချခြင်း၊ ၎င်းတို့ကို သုံးစွဲရန်အတွက် အခကြေးငွေယူခြင်း၊ ၎င်းတို့ကို ပြန်လည်ဖြန့်ဝေရန်အတွက် အခကြေးငွေယူခြင်း သို့မဟုတ် ၎င်းတို့အပေါ် အခြေခံပြီး ဆင့်ပွားကူယူဖန်တီးခြင်းအပါအဝင်ဖြစ်ပြီး ၎င်းတို့ချည်းသာဟု ကန့်သတ်မထားသည့် Data Feeds များ၊ အဖြစ်အပျက် သတိပေးချက်များ နှင့်\/သို့မဟုတ် ကြိုတင်ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်း မက်ဆေ့ချ်များကို စီးပွားဖြစ် အသုံးပြုခြင်းများ ဖြစ်မြောက်စေရန်အတွက် API ကို သုံးစွဲသည့် မည်သည့်ဖြစ်စဉ်တွင်မျှ မပါဝင်ရပါ။ အောက်တွင် သတ်မှတ်ထားသည့်အတိုင်း API တွင်ရှိသော၊ API အတွက်ဖြစ်သော အားလုံးသော ရပိုင်ခွင့်၊ ပိုင်ဆိုင်မှု၊ အခွင့်အရေးများနှင့် အကျိုးအမြတ်များ၊ ကြိုတင်ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်းမက်ဆေ့ချ်များ၊ အဖြစ်အပျက် သတိပေးချက်များ၊ အချက်အလက် ထည့်သွင်းမှု (Data Feeds) များ၊ ရင်းမြစ်ကိုးကားချက်များနှင့် ဆက်စပ်သမျှကို ကြက်ခြေနီနှင့် ၎င်းအားလိုင်စင်ချပေးသူများက ထိန်းသိမ်းရမည်။ ရှင်းရှင်းလင်းလင်း ပေးအပ်ထားခြင်းမရှိသော မူပိုင်ခွင့်များအားလုံးကို ရယူပြီးဖြစ်သည်။", + "body": "သင်သည် ဒေတာထည့်သွင်းမှု (Data Feeds) များကို API သတ်မှတ်ချက်များနှင့်အညီ သင့်ကိုယ်ပိုင် အက်ပလီကေးရှင်းနှင့် ဆက်စပ်၍သာ သုံးနိုင်ပြီး၊ အခါအားလျော်စွာ မွမ်းမံသည့်အတိုင်း API နှင့်သဟဇာတဖြစ်စေရန် ထိန်းသိမ်းပံ့ပိုးရမည်။ API သတ်မှတ်ချက်များအရ သင့်ကိုယ်ပိုင်အက်ပလီကေးရှင်း အသုံးပြုသူများ (\"အသုံးပြုသူများ\") အတွက် အဖြစ်အပျက် သတိပေးချက်များနှင့် အချက်အလက်ထည့်သွင်းမှုများမှ သီးခြားအဖြစ်အပျက် သတိပေးချက်များ၏ အရေးပေါ်ဆက်တင်နှင့်ဆက်စပ်သည့် သက်ဆိုင်ရာ အခြေအနေအလိုက် ကြိုတင်ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်းဆိုင်ရာ မက်ဆေ့ချ်များ ဒေါင်းလုဒ်လုပ်ရန်၊ အသုံးပြုရန်၊ ပြန်လည်ထုတ်လုပ်ရန်နှင့် ဖြန့်ဝေရန်အတွက် သီးသန့်မဟုတ်သော၊ ကန့်သတ်ထားပြီး ပြန်လည်ရုပ်သိမ်းနိုင်သော အခွင့်အရေးကို သင့်အားပေးအပ်သည်။ API သတ်မှတ်ချက်များနှင့်အညီ ထည့်သွင်းထားသော Data Feeds များကို စီးပွားဖြစ်မဟုတ်သော အသုံးပြုခြင်းများ ဖြစ်မြောက်စေရန်အတွက်သာ API ကို သင် အသုံးပြုနိုင်သည်။ ၎င်းတို့ကို ပြန်လည်ရောင်းချခြင်း၊ ၎င်းတို့ကို သုံးစွဲရန်အတွက် အခကြေးငွေယူခြင်း၊ ၎င်းတို့ကို ပြန်လည်ဖြန့်ဝေရန်အတွက် အခကြေးငွေယူခြင်း သို့မဟုတ် ၎င်းတို့အပေါ် အခြေခံပြီး ဆင့်ပွားကူယူဖန်တီးခြင်းအပါအဝင်ဖြစ်ပြီး ၎င်းတို့ချည်းသာဟု ကန့်သတ်မထားသည့် Data Feeds များ၊ အဖြစ်အပျက် သတိပေးချက်များ နှင့်/သို့မဟုတ် ကြိုတင်ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်း မက်ဆေ့ချ်များကို စီးပွားဖြစ် အသုံးပြုခြင်းများ ဖြစ်မြောက်စေရန်အတွက် API ကို သုံးစွဲသည့် မည်သည့်ဖြစ်စဉ်တွင်မျှ မပါဝင်ရပါ။ အောက်တွင် သတ်မှတ်ထားသည့်အတိုင်း API တွင်ရှိသော၊ API အတွက်ဖြစ်သော အားလုံးသော ရပိုင်ခွင့်၊ ပိုင်ဆိုင်မှု၊ အခွင့်အရေးများနှင့် အကျိုးအမြတ်များ၊ ကြိုတင်ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်းမက်ဆေ့ချ်များ၊ အဖြစ်အပျက် သတိပေးချက်များ၊ အချက်အလက် ထည့်သွင်းမှု (Data Feeds) များ၊ ရင်းမြစ်ကိုးကားချက်များနှင့် ဆက်စပ်သမျှကို ကြက်ခြေနီနှင့် ၎င်းအားလိုင်စင်ချပေးသူများက ထိန်းသိမ်းရမည်။ ရှင်းရှင်းလင်းလင်း ပေးအပ်ထားခြင်းမရှိသော မူပိုင်ခွင့်များအားလုံးကို ရယူပြီးဖြစ်သည်။", "heading": "လိုင်စင်နှင့် ကန့်သတ်ချက်များ -" }, "overview": { @@ -885,17 +889,17 @@ "two": "စစ်မှန်ကြောင်းအတည်ပြုသည့် နည်းပညာများ အပါအဝင် ကြက်ခြေနီ သို့မဟုတ် API က အသုံးပြုသည့် ကီးများ သို့မဟုတ် လုံခြုံရေးယန္တရားများကို ကျော်လွှားရန် သို့မဟုတ် ပြုပြင်မွမ်းမံရန်။", "three": "သင့်ကိုယ်ပိုင်အကောင့်အတွက် ပေးအပ်ထားသည့်အရာမှအပ ကြက်ခြေနီအတွက် စာရင်းသွင်း (sign-in) အမည်များ၊ စကားဝှက်များ သို့မဟုတ် အခြား စစ်မှန်ကြောင်းအတည်ပြု အထောက်အထားများကို တောင်းခံရန်၊ စုဆောင်းရန်၊ တောင်းဆိုရန် သို့မဟုတ် တနည်းအားဖြင့် ဝင်ရောက်သုံးစွဲခွင့် ရရှိရန်။", "four": "ကြက်ခြေနီ သို့မဟုတ် အခြား ကြက်ခြေနီ သို့မဟုတ် လခြမ်းနီ နိုင်ငံလုံးဆိုင်ရာ အသိုင်းအဝိုင်း သို့မဟုတ် အဖွဲ့အစည်းများ၏ ဆက်နွှယ်မှု၊ ကမကထပြုမှု၊ ထောက်ခံမှုကို ဖော်ပြရန် သို့မဟုတ် ညွှန်းဆိုရန်။", - "five": "API၊ အချက်အလက်ထည့်သွင်းမှု (Data Feeds) များ၊ အဖြစ်အပျက် သတိပေးချက်များ နှင့်\/သို့မဟုတ် ကြိုတင်ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်းဆိုင်ရာ မက်ဆေ့ချ်များကို သင်ပိုင်ဆိုင်သည် သို့မဟုတ် ဖန်တီးသည်ဟု ဖော်ပြရန် သို့မဟုတ် ညွှန်းဆိုရန်။", + "five": "API၊ အချက်အလက်ထည့်သွင်းမှု (Data Feeds) များ၊ အဖြစ်အပျက် သတိပေးချက်များ နှင့်/သို့မဟုတ် ကြိုတင်ပြင်ဆင်ခြင်း၊ တုံ့ပြန်ခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်းဆိုင်ရာ မက်ဆေ့ချ်များကို သင်ပိုင်ဆိုင်သည် သို့မဟုတ် ဖန်တီးသည်ဟု ဖော်ပြရန် သို့မဟုတ် ညွှန်းဆိုရန်။", "six": "ဗိုင်းရပ်စ်များ (viruses)၊ ပိုးကူးစက် ချို့ယွင်းချက်များ (worms defects)၊ ထရိုဂျန်မြင်းများ (Trojan horses) သို့မဟုတ် အဖျက်သဘာဝရှိသည့် မည်သည့် ပစ္စည်းများမဆိုကို ထုတ်လွှတ်ရန်။" } }, - "reserve_rights": "API နှင့် အချက်အလက်ထည့်သွင်းမှုများကို တစ်ခုလုံး သို့မဟုတ် တစ်စိတ်တစ်ပိုင်းကို ယာယီသော်လည်းကောင်း အမြဲတမ်းသော်လည်းကောင်း မည်သည့်အချိန်တွင်မဆို ကြိုတင်အသိပေးခြင်းမရှိဘဲ ပြောင်းလဲရန် နှင့်\/သို့မဟုတ် ဆက်လက်ပံ့ပိုးခြင်း မပြုတော့ရန် ကြက်ခြေနီတွင် လုပ်ပိုင်ခွင့်ရှိသည်။ သံသယမဖြစ်စေရန်အလို့ငှာ API သို့မဟုတ် အချက်အလက်ထည့်သွင်းမှုများကို သင် ရရှိနိုင်စေရန် ကြက်ခြေနီကို ဤနေရာတွင် မည်သည်ကမျှ တာဝန်ပေးအပ် မထားပါ၊ ထို့အပြင် ယင်းအား ရယူမှုသည် ကြက်ခြေနီ၏ တစ်ဦးတည်းနှင့် လုံးလုံးလျားလျား ဆုံးဖြတ်ချက်အတွင်းဖြစ်ကြောင်း သင်သဘောတူ အသိအမှတ်ပြုပါသည်။", + "reserve_rights": "API နှင့် အချက်အလက်ထည့်သွင်းမှုများကို တစ်ခုလုံး သို့မဟုတ် တစ်စိတ်တစ်ပိုင်းကို ယာယီသော်လည်းကောင်း အမြဲတမ်းသော်လည်းကောင်း မည်သည့်အချိန်တွင်မဆို ကြိုတင်အသိပေးခြင်းမရှိဘဲ ပြောင်းလဲရန် နှင့်/သို့မဟုတ် ဆက်လက်ပံ့ပိုးခြင်း မပြုတော့ရန် ကြက်ခြေနီတွင် လုပ်ပိုင်ခွင့်ရှိသည်။ သံသယမဖြစ်စေရန်အလို့ငှာ API သို့မဟုတ် အချက်အလက်ထည့်သွင်းမှုများကို သင် ရရှိနိုင်စေရန် ကြက်ခြေနီကို ဤနေရာတွင် မည်သည်ကမျှ တာဝန်ပေးအပ် မထားပါ၊ ထို့အပြင် ယင်းအား ရယူမှုသည် ကြက်ခြေနီ၏ တစ်ဦးတည်းနှင့် လုံးလုံးလျားလျား ဆုံးဖြတ်ချက်အတွင်းဖြစ်ကြောင်း သင်သဘောတူ အသိအမှတ်ပြုပါသည်။", "severability": { "body": "API သတ်မှတ်ချက်များ၏ မည်သည့်အချက် သို့မဟုတ် ပြဋ္ဌာန်းချက်မဆို၏ တရားမဝင်မှုသည် အခြားမည်သည့် ပြဋ္ဌာန်းချက်မဆို၏ တရားဝင်မှုကိုမျှ ထိခိုက်လိမ့်မည် မဟုတ်ပါ။", "heading": "ခွဲခြမ်းစိတ်ဖြာနိုင်ခြင်းနှင့် ပယ်ချခြင်း -" }, "suspension": { - "body": "API စည်းကမ်းချက်များတွင် ဖော်ပြထားသည့်အတိုင်း သင်သည် API သို့မဟုတ် အချက်အလက်ထည့်သွင်းမှုကို တရားမဝင်သုံးစွဲရာတွင် ပါဝင်ပတ်သက်နေသည် သို့မဟုတ် သင်သည် မည်သည့်ပုဂ္ဂိုလ် သို့မဟုတ် ကြက်ခြေနီကွန်ရက်မဆို၏ ဘေးကင်းရေး နှင့်\/သို့မဟုတ် လုံခြုံရေးကို ခြိမ်းခြောက်သည့်\/ အပေးအယူလုပ်သည့် လုပ်ဆောင်ချက်များတွင် API သို့မဟုတ် အချက်အလက်ထည့်သွင်းမှုကို အသုံးပြုနေသည်ဟုကြက်ခြေနီက ၎င်း၏တစ်ဦးတည်း ဆုံးဖြတ်ခွင့်ဖြင့် ဆုံးဖြတ်ပါက ကြက်ခြေနီတွင် သင့် ဝင်ရောက်သုံးစွဲမှုကို ဆိုင်းငံ့ခွင့် သို့မဟုတ် ရပ်စဲခွင့်ရှိသည်။", + "body": "API စည်းကမ်းချက်များတွင် ဖော်ပြထားသည့်အတိုင်း သင်သည် API သို့မဟုတ် အချက်အလက်ထည့်သွင်းမှုကို တရားမဝင်သုံးစွဲရာတွင် ပါဝင်ပတ်သက်နေသည် သို့မဟုတ် သင်သည် မည်သည့်ပုဂ္ဂိုလ် သို့မဟုတ် ကြက်ခြေနီကွန်ရက်မဆို၏ ဘေးကင်းရေး နှင့်/သို့မဟုတ် လုံခြုံရေးကို ခြိမ်းခြောက်သည့်/ အပေးအယူလုပ်သည့် လုပ်ဆောင်ချက်များတွင် API သို့မဟုတ် အချက်အလက်ထည့်သွင်းမှုကို အသုံးပြုနေသည်ဟုကြက်ခြေနီက ၎င်း၏တစ်ဦးတည်း ဆုံးဖြတ်ခွင့်ဖြင့် ဆုံးဖြတ်ပါက ကြက်ခြေနီတွင် သင့် ဝင်ရောက်သုံးစွဲမှုကို ဆိုင်းငံ့ခွင့် သို့မဟုတ် ရပ်စဲခွင့်ရှိသည်။", "heading": "ဆိုင်းငံ့ခြင်း သို့မဟုတ် ရပ်စဲခြင်း -" } }, diff --git a/resources/lang/ne.json b/resources/lang/ne.json index dff7f76..eeb991f 100644 --- a/resources/lang/ne.json +++ b/resources/lang/ne.json @@ -92,7 +92,7 @@ "response_codes": "जवाफ कोडहरु", "emergency_alert_feed": "आपतकालिन सतर्क फीड", "cap_alert_document": "CAP सतर्क कागजात", - "what_now": "WhatNow\/ह्वाटनाउ" + "what_now": "WhatNow/ह्वाटनाउ" }, "steps": { "one": { @@ -163,12 +163,12 @@ "body": "निम्न अन्त्य बिन्दुहरूले रेड क्रस सोसाइटीहरू द्वारा प्रकाशित संरचित डाटा प्रदान गर्दछ जुनले विभिन्न घटना प्रकारका बेला मद्दत गर्दछ |\n\nप्रत्येक प्रविष्टि प्रकोप व्यवस्थापन को छ चरणहरुको बारेमा जानकारी प्रदान गर्दछ", "endpoint": "अन्तिमबिन्दु:", "example_response": "उदाहरण प्रतिक्रिया:", - "heading": "WhatNow\/ह्वाटनाउ", + "heading": "WhatNow/ह्वाटनाउ", "note": "पुनश्च:", "noteDetails": "{0} सबै प्रतिक्रियाहरु {1} ठुलो अभिभावक चिजको भित्र हुन्छन", "query_params": "कुएरी पारामितेर्स", "response_properties": "प्रतिक्रिया गुणहरू", - "structure": "Whatnow\/ह्वाटनाउ वस्तुहरुको संरचना", + "structure": "Whatnow/ह्वाटनाउ वस्तुहरुको संरचना", "stucture_attribution": "{0} वस्तुको संरचना", "stucture_attribute_translation": "एट्रिब्युसन {0} वस्तुको संरचना", "stucture_translation": " {0} वस्तुको संरचना", @@ -197,13 +197,15 @@ "steps": { "one": { "heading": "पहिलो चरण - साइन अप", - "body": "सुरक्षा सन्देश डेटाबेस API बाट डाटा प्रयोग गर्न सुरु गर्न, सर्वप्रथम सुरक्षा सन्देश डेटाबेस पोर्टलमा {0} गर्नुहोस्।\n\nतपाईंले आफ्नो फेसबुक र गुगल खाताहरू, वा इमेल ठेगाना प्रयोग गरेर खाता बनाउन सक्नुहुन्छ।", "create_account_alt": "खाता खोल्नुहोस्", + "body": "सुरक्षा सन्देश डेटाबेस API बाट डाटा प्रयोग गर्न सुरु गर्न, सर्वप्रथम सुरक्षा सन्देश डेटाबेस पोर्टलमा {0} गर्नुहोस्।\n\nतपाईंले आफ्नो फेसबुक र गुगल खाताहरू, वा इमेल ठेगाना प्रयोग गरेर खाता बनाउन सक्नुहुन्छ।", + "create_account_alt": "खाता खोल्नुहोस्", "existing_account": "पहिले नै खाता छ भने कृपया {0}", "login_cta": "लग इन", "sign_up_cta": "साइन अप" }, "two": { - "body": "API प्रयोग गर्न, तपाईंले सुरक्षा सन्देश डेटाबेस पोर्टलमा एउटा अनुप्रयोग बनाउनुपर्छ। तपाईंले के बनाउँदै हुनुहुन्छ भन्ने बारेमा हामीलाई थोरै बताउनुहोस्।", "create_app_alt": "आप्प बनाउनुहोस्", + "body": "API प्रयोग गर्न, तपाईंले सुरक्षा सन्देश डेटाबेस पोर्टलमा एउटा अनुप्रयोग बनाउनुपर्छ। तपाईंले के बनाउँदै हुनुहुन्छ भन्ने बारेमा हामीलाई थोरै बताउनुहोस्।", + "create_app_alt": "आप्प बनाउनुहोस्", "heading": "दोस्रो चरण -आप्प बनाउनुहोस्" }, "three": { @@ -214,7 +216,8 @@ }, "four": { "api_docs_cta": "ए.पी.आई कागजात", - "body": "सुरक्षा सन्देश डेटाबेस API ले HTTP(S) प्रयोग गर्दछ र प्रकाशित डाटा प्राप्त गर्न RESTful अन्त्यबिन्दुहरू प्रदान गर्दछ।\n\nप्रत्येक अनुरोध अघिल्लो चरणमा बनाइएको API कुञ्जी प्रयोग गरेर प्रमाणित हुनुपर्छ।", "example_title": "अनुरोधको उदाहरण", + "body": "सुरक्षा सन्देश डेटाबेस API ले HTTP(S) प्रयोग गर्दछ र प्रकाशित डाटा प्राप्त गर्न RESTful अन्त्यबिन्दुहरू प्रदान गर्दछ।\n\nप्रत्येक अनुरोध अघिल्लो चरणमा बनाइएको API कुञ्जी प्रयोग गरेर प्रमाणित हुनुपर्छ।", + "example_title": "अनुरोधको उदाहरण", "heading": "चरण ४ - अनुरोध गर्नुहोस", "moreInfo": "सबै ए.पी.आई अन्त्य बिन्दुहरुको थप जानकारीका लागि {0} हेर्नु होस्" } @@ -438,9 +441,9 @@ "immediate": "तत्काल", "warning": "चेतावनी", "anticipated": "अपेक्षित", - "assess_and_plan":"मूल्याङ्कन र योजना", - "mitigate_risks":"जोखिम कम गर्नुहोस्", - "prepare_to_respond":"प्रतिक्रिया दिन तयार हुनुहोस्", + "assess_and_plan": "मूल्याङ्कन र योजना", + "mitigate_risks": "जोखिम कम गर्नुहोस्", + "prepare_to_respond": "प्रतिक्रिया दिन तयार हुनुहोस्", "recover": "पुनर्प्राप्त गर्नुहोस्" }, "content": { @@ -521,9 +524,9 @@ "seasonalForecast": "मौसमी पूर्वानुमान", "seasonalForecast_help": "जोखिम घटाउने छोटो अवधिका कार्यहरु", "seasonalForecast_extra": "मौसमी पूर्वानुमान भनेको जोखिमयुक्त घटनाको अनुमानको तथ्य हो । संभाव्य जोखिमहरुको लेखाजोखा र कार्य योजनाहरु जोखिम न्यूनिकरण गर्न र घरपरिवारलाई सुरक्षित राख्न अपनाईएका कार्यहरु हुन्", - "watch": "घडी\/पहरा", + "watch": "घडी/पहरा", "watch_help": "जवाफ दिन तयार हुनुहोस्", - "watch_extra": "जब खतरनाक घटनाको जोखिम अर्थपुर्ण रुपमा बढ्छ घडि\/पहरा जारी गरिन्छ तर यस्को पटक, स्थान र\/वा समय अझै अनिश्चित हुन्छ । सुरक्षाको लागि कार्यहरु गर्न र प्रतिकार्य गर्न तयारी गर्ने हेतुले पर्याप्त समय दिइएको हुन्छ", + "watch_extra": "जब खतरनाक घटनाको जोखिम अर्थपुर्ण रुपमा बढ्छ घडि/पहरा जारी गरिन्छ तर यस्को पटक, स्थान र/वा समय अझै अनिश्चित हुन्छ । सुरक्षाको लागि कार्यहरु गर्न र प्रतिकार्य गर्न तयारी गर्ने हेतुले पर्याप्त समय दिइएको हुन्छ", "warning": "चेतावनि", "warning_help": "जवाफ दिन तयार हुनुहोस्", "warning_extra": "जब खतरनाक घटना हुन लागिरहेको हुन्छ, हुनेवाला छ वा हुने धेरै संभावना हुन्छ तब चेतावनी जारी गरिएको हुन्छ यस्को मतलब त्यस्तो अवस्थाले कुनै पनि जीवन वा सम्पत्तिमा हानि पुर्याउने भएमा यो जोखिमको बाटोमा रहेका मानिसहरुले सुरक्षित कार्यहरु अपनाउनु आवश्यक हुन्छ", @@ -538,7 +541,7 @@ "mitigate_risks": "जोखिम कम गर्नुहोस्", "prepare_to_respond": "प्रतिक्रिया दिन तयार हुनुहोस्", "updated": "अध्यावधिक गरिएको", - "download_icon": "आईकन\/संकेत डाउनलोड गर्नुहोस", + "download_icon": "आईकन/संकेत डाउनलोड गर्नुहोस", "download_image": "ईमेजको रुपमा डाउनलोड गर्नुहोस", "download_image_error": "ईमेज डाउनलोड गर्दा खराबी, कृपया पक्का गर्नुहोस् कि परिवर्तित कुराहरु प्रकासित भई सकेका छन् र फेरि कोशिस गर्नुहोस", "download_instructions": " सेभ गर्न दाँया बटन थिच्नुहोस र छनौट गर्नुहोस 'Save image as....'", @@ -555,7 +558,8 @@ "content_edit_title": "सामग्री सम्पादन", "content_add_hazard_title": "खतरा थप्नुहोस्", "key_message_label": "मुख्य सन्देश शीर्षक", - "supporting_message_label": "समर्थन सन्देश" + "supporting_message_label": "समर्थन सन्देश", + "mitigate_risk": "जोखिम कम गर्नुहोस्" }, "message_editor": { "title": "एट्रिब्युशन सम्पादक", @@ -587,7 +591,7 @@ "updated": "अध्यावधिक गरिएको", "failed": "सफल भएन", "invalid": " अस्विकार्य", - "row": "लाईन\/हरफ" + "row": "लाईन/हरफ" }, "upload_csv": "कागजात CVS ढाँचामा अपलोड गर्नुहोस", "language_instructions": "यहाँ तपाईँले आयात गर्नुभएको कागजातको अनुवाद गरिएको भाषा चयन गर्नुहोस् ।", @@ -596,12 +600,13 @@ "submit": "बिषयवस्तु आयात गर्नुहोस", "reset": "अर्को अपलोड गर्नुहोस", "export_template_guide": "टेम्प्लेट निर्देशिका निर्यात गर्नुहोस", - "export_template_instructions": "यस g फाइल अपलोड टेम्प्लेट प्रभावकारी रूपमा कसरी प्रयोग गर्ने भन्ने बारे निर्देशनहरूको लागि, कृपया यो गाइड हेर्नुहोस्।", "refer": "लाई सन्दर्भ गर्नुहोस्", + "export_template_instructions": "यस g फाइल अपलोड टेम्प्लेट प्रभावकारी रूपमा कसरी प्रयोग गर्ने भन्ने बारे निर्देशनहरूको लागि, कृपया यो गाइड हेर्नुहोस्।", + "refer": "लाई सन्दर्भ गर्नुहोस्", "detail": "विस्तृत निर्देशनहरूको लागि", "warnings": { "title": "यदि कुनै विषयवस्तु को सबैभन्दा नँया संस्करण मा अधिलेखन गरिएको छ भने आयात अस्विकार गर्नुहोला", - "on": "हुन्छ\/हो", - "off": "हुदैन\/होईन" + "on": "हुन्छ/हो", + "off": "हुदैन/होईन" }, "overwriting": { "title": "अधिलेखन व्यबस्था (सेटिङ्ग)", @@ -614,8 +619,8 @@ "bad_request_error_codes": { "30001": "स्तम्भ शिर्षक टेम्प्लेट संग मेल खादैन", "30002": "विशेषताको नाम, सन्देश र URL हराईरहेका छन्", - "30003": "अस्विकार्य विशेषता url - कृपया मुलपत्र प्रस्तुत छ भन्ने सुनिश्चित गर्नुहोस, उदाहरण https:\/\/", - "40001": "अस्विकार्य कन्ट्रि कोड राखिएको छ \/कन्ट्रि कोड मिलेन", + "30003": "अस्विकार्य विशेषता url - कृपया मुलपत्र प्रस्तुत छ भन्ने सुनिश्चित गर्नुहोस, उदाहरण https://", + "40001": "अस्विकार्य कन्ट्रि कोड राखिएको छ /कन्ट्रि कोड मिलेन", "40002": "छनौट गरिएको सोसाइटीछनौट गरिएको फाईलको समाजसंग मेल खादैन", "40003": "छनौट गरेर निर्यात गरिएको फाईलको मिति बिग्रिएको छ र आयात पुरा हुन सकेन" } @@ -685,7 +690,7 @@ }, "landing": { "strapline": "सुरक्षा सन्देश डेटाबेस सेवा", - "strapline_part_2": "ग्लोबल रेड क्रस\/रेड क्रेसेन्टका मुख्य सुरक्षा सन्देशहरु", + "strapline_part_2": "ग्लोबल रेड क्रस/रेड क्रेसेन्टका मुख्य सुरक्षा सन्देशहरु", "head_1": "IFRC सुरक्षा", "head_2": "सन्देश डेटाबेस", "head_text_1": "IFRC सार्वजनिक जागरूकता र आधारित सुरक्षा सन्देशहरू", @@ -725,27 +730,27 @@ "impact": "प्रभाव", "sign_up_today": "आज साइन अप गर्नुहोस्", "developer": { - "strap_para_one": "हाम्रो स्थानीयकृत मुख्य कार्य सन्देशहरु द्वारा समुदायलाई जोखिम\/खतरामा तयार हुन, प्रतिकार गर्न र पुनःप्राप्ति गर्न मद्दत गर्दछ", + "strap_para_one": "हाम्रो स्थानीयकृत मुख्य कार्य सन्देशहरु द्वारा समुदायलाई जोखिम/खतरामा तयार हुन, प्रतिकार गर्न र पुनःप्राप्ति गर्न मद्दत गर्दछ", "strap_para_two": "तपाईंको अनुप्रयोगमा सुरक्षा सन्देशहरू एकीकृत गर्न हाम्रो सजिलो चार-चरण गाइड प्रयोग गर्नुहोस्। साइन अप गर्नुहोस् र सबै उपलब्ध सन्देशहरू हेर्नुहोस्।" }, "national_society": { "strap_para_one": "तपाईको आरसिआरसि (RCRC) राष्ट्रिय समाजका मुख्य सुरक्षा संदेशहरु विश्वब्यापी, राष्ट्रिय, र स्थानिय संचारको पहुँच तथा प्रशारको लागि प्रकाशित गर्नुहोस", "strap_para_two": "कसरी संदेशहरु सृजना गर्ने र संचार सझेदारहरु संग सम्बन्ध बढाउने भन्ने बारेमा अझै सिक्न चाहनु हुन्छ भने हामीलाई सम्पर्क गर्नुहोस्।" }, - "strap_para_one": "हाम्रो स्थानीयकृत मुख्य कार्य सन्देशहरु द्वारा समुदायलाई जोखिम\/खतरामा तयार हुन, प्रतिकार गर्न र पुनःप्राप्ति गर्न मद्दत गर्दछ", + "strap_para_one": "हाम्रो स्थानीयकृत मुख्य कार्य सन्देशहरु द्वारा समुदायलाई जोखिम/खतरामा तयार हुन, प्रतिकार गर्न र पुनःप्राप्ति गर्न मद्दत गर्दछ", "strap_para_two": "तपाईंको अनुप्रयोगमा सुरक्षा सन्देशहरू एकीकृत गर्न हाम्रो सजिलो चार-चरण गाइड प्रयोग गर्नुहोस्। साइन अप गर्नुहोस् र सबै उपलब्ध सन्देशहरू हेर्नुहोस्।", - "view_data": "विवरणहरू\/तथ्याङ्कहरु हेर्नुहोस्", + "view_data": "विवरणहरू/तथ्याङ्कहरु हेर्नुहोस्", "view_message_library": "सुरक्षा सन्देशहरू हेर्नुहोस्", "what_now": " ह्वाट्नाउ (WhatNow)?", "fake_alert_heading": "अत्यन्त चिसो चेतावनी", "fake_alert_description": "Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est.", "fake_alert_time": "एक घण्टा अगाडि", - "fake_alert_time_exact": "०५\/०२\/१८ मा ०५ः१५ CT", + "fake_alert_time_exact": "०५/०२/१८ मा ०५ः१५ CT", "use_cases": { "heading": "अझै सिक्नुस", "first_heading": "यसले कसरी काम गर्छ", "first_content": "per ho dolaro frakcistreko, kuo drumo eksterna reprezenti ro hav us singularo propozicio posta", - "second_heading": "प्रसंग\/ कथाहरु प्रयोग गर्नुहोस", + "second_heading": "प्रसंग/ कथाहरु प्रयोग गर्नुहोस", "second_content": "per ho dolaro frakcistreko, kuo drumo eksterna reprezenti ro hav us singularo propozicio posta", "third_heading": "कार्यान्वयन उपकरणहरु", "third_content": "per ho dolaro frakcistreko, kuo drumo eksterna reprezenti ro hav us singularo propozicio posta", @@ -837,10 +842,10 @@ "industries": { "media": "मिडिया", "emergency": "विपद् व्यवस्थापन", - "non_profit": "गैर-नाफामूलक \/ गैसस", + "non_profit": "गैर-नाफामूलक / गैसस", "humanitarian": "मानवतावादी संस्था", - "red_cross": "रेडक्रस\/रेड क्रिसेन्ट", - "education": "शिक्षा\/प्राज्ञ", + "red_cross": "रेडक्रस/रेड क्रिसेन्ट", + "education": "शिक्षा/प्राज्ञ", "gov": "सरकारी निकाय", "other": "अन्य" }, @@ -865,7 +870,7 @@ "heading": "अनुप्रोयग अन्तिम प्रयोगकर्ता अनुज्ञापत्र सम्झौता", "intro": "सहमतः यस सेवाको प्रयोग गरेर वा दिइएको कोष्ठकमा चिह्न लगाएर प्रयोगकर्ता यो सम्झौतासँग अनुब्धित हुने छन्।\n\nयो अनुप्रयोग एउटा औजार हो जसले तपाईं (\"तपाईँ\") लाई रेड क्रसले उपलब्ध गराएको वैश्विक मौसम तथा विपद् घटना चेतावनी र सूचना (\"घटना चेतावनी\") तथा जोखिमको प्रकार र आकस्मिकताका आधारमा स्थानिय जोखिमका लागि कार्यान्वयनयोग्य तथा सान्दर्भिक सन्देशको सङ्गालो (\"तयारी, प्रतिक्रिया र पुनःप्राप्ति सन्देश\") प्राप्ति गर्न दिन्छ। तयारी, प्रतिकृया, र पुनःप्राप्तिका सन्देशहरु तपाईको एप्लिकेशनमा घटनाका सुचना र अन्य मौसम तथा प्रकोपको खतराको संकेतसंगै आउनका लागि हो । तपाईले गर्ने डाटा फिडको प्रयोग एपीआई का सर्तहरु अनुसार हुन्छन् ।", "license_limitations": { - "body": "तपाईं डाटा फिडहरू प्रयोग गर्न सक्नुहुनेछ तपाईंको आफ्नै एप्लिकेसनको साथ एपीआई सर्तहरूको विषयको रूपमा, र तपाईंले समय-समयमा अपडेट गरिए अनुसार एपीआईसँग अनुकूलता कायम राख्नुहुनेछ। तपाईंलाई एपिआईका सर्तहरूमा रहेर प्रत्येक घटनाका सूचनाहरूको हतारो सेटिङ्गसँग सम्बन्धित घटनाका सूचनाहरू तथा परिस्थिति अनुसारको तयारी, प्रतिकृया, र पुनःप्राप्तिका सन्देशहरू डाउनलोड, प्रयोग, पुनःउत्पादन र तपाईंको आफ्नै एप्लिकेशनका प्रयोगकर्ताहरू (\"अन्तिम प्रयोगकर्ता\") मा वितरण गर्न, एकाधिकार नभएको, सिमित र फिर्ता लिन सकिने अधिकार दिइएको छ । एपिआईका सर्तहरू अनुसार डाटा फिडको गैर-व्यवसायिक प्रयोगकको सहजिकरण गर्नका लागि मात्र तपाईंले यो एपिआई प्रयोग गर्न सक्नुहुन्छ । कुनै पनि परिस्थतिमा डाटा फिड, घटनाको सूचना र\/वा तयारी, प्रतिकृया, तथा पुनःप्राप्तिका सन्देशहरूको, सिमितता बिना पुनःबिक्री गर्न, तथा प्रयोग गर्न, पुनः वितरण गर्न वा तिनीहरू जस्तै सामग्री बनाउनका लागि रकम असुली गर्न समेत, व्यवसायिक प्रयोगको सहजिकरण गर्न तपाईंले एपिआईको प्रयोग गर्न पाउनु हुन्न । एपिआई, तयारी, प्रतिकृया र पुनःप्राप्तिका सन्देश, घटनाको सूचना, डाटा फिडहरू तथा सन्दर्भ सामग्रीहरू (तल व्याख्या गरिएअनुसारको) माथिको सम्पूर्ण शीर्षक, स्वमित्व, अधिकार तथा चासो रेड क्रस तथा उनका अनुमतिदातामा निहित छ । स्पष्ट रूपमा प्रदान नगरिएका सबै अधिकारहरू सुरक्षित छन्।", + "body": "तपाईं डाटा फिडहरू प्रयोग गर्न सक्नुहुनेछ तपाईंको आफ्नै एप्लिकेसनको साथ एपीआई सर्तहरूको विषयको रूपमा, र तपाईंले समय-समयमा अपडेट गरिए अनुसार एपीआईसँग अनुकूलता कायम राख्नुहुनेछ। तपाईंलाई एपिआईका सर्तहरूमा रहेर प्रत्येक घटनाका सूचनाहरूको हतारो सेटिङ्गसँग सम्बन्धित घटनाका सूचनाहरू तथा परिस्थिति अनुसारको तयारी, प्रतिकृया, र पुनःप्राप्तिका सन्देशहरू डाउनलोड, प्रयोग, पुनःउत्पादन र तपाईंको आफ्नै एप्लिकेशनका प्रयोगकर्ताहरू (\"अन्तिम प्रयोगकर्ता\") मा वितरण गर्न, एकाधिकार नभएको, सिमित र फिर्ता लिन सकिने अधिकार दिइएको छ । एपिआईका सर्तहरू अनुसार डाटा फिडको गैर-व्यवसायिक प्रयोगकको सहजिकरण गर्नका लागि मात्र तपाईंले यो एपिआई प्रयोग गर्न सक्नुहुन्छ । कुनै पनि परिस्थतिमा डाटा फिड, घटनाको सूचना र/वा तयारी, प्रतिकृया, तथा पुनःप्राप्तिका सन्देशहरूको, सिमितता बिना पुनःबिक्री गर्न, तथा प्रयोग गर्न, पुनः वितरण गर्न वा तिनीहरू जस्तै सामग्री बनाउनका लागि रकम असुली गर्न समेत, व्यवसायिक प्रयोगको सहजिकरण गर्न तपाईंले एपिआईको प्रयोग गर्न पाउनु हुन्न । एपिआई, तयारी, प्रतिकृया र पुनःप्राप्तिका सन्देश, घटनाको सूचना, डाटा फिडहरू तथा सन्दर्भ सामग्रीहरू (तल व्याख्या गरिएअनुसारको) माथिको सम्पूर्ण शीर्षक, स्वमित्व, अधिकार तथा चासो रेड क्रस तथा उनका अनुमतिदातामा निहित छ । स्पष्ट रूपमा प्रदान नगरिएका सबै अधिकारहरू सुरक्षित छन्।", "heading": "इजाजतपत्र र सीमाहरू:" }, "overview": { @@ -884,17 +889,17 @@ "two": "रेड क्रस वा एपीआई द्वारा नियोजित कुनै कुञ्जीहरू वा सुरक्षा संयन्त्रहरूको सर्भेन्ट वा परिमार्जन गर्न, कुनै प्रमाणीकरण टेक्नोलोजी बिना सीमितता सहित।", "three": "अनुरोध गर्न, संकलन गर्न, अनुरोध गर्न वा अन्यथा रेड क्रसको लागि साइन-इन नाम, पासवर्ड वा अन्य प्रमाणीकरण प्रमाणिकरणहरूको पहुँच प्राप्त गर्न तपाईंको आफ्नो खाताको लागि तपाईंलाई प्रदान गरिएको भन्दा बाहेक।", "four": "रेडक्रस वा अन्य कुनै रेड क्रस वा रेड क्रिसेन्ट राष्ट्रिय सोसाइटीवा संगठनद्वारा राज्य वा सम्बद्धता, प्रायोजन वा समर्थन गर्न।", - "five": "बताउन वा संकेत दिनको लागि कि तपाईंले एपीआई, डाटा फिडहरू, घटना चेतावनीहरू र \/ वा तयारी, प्रतिक्रिया, र सन्देशहरू रिकभरीको स्वामित्व वा सृजना गर्नुभयो।", + "five": "बताउन वा संकेत दिनको लागि कि तपाईंले एपीआई, डाटा फिडहरू, घटना चेतावनीहरू र / वा तयारी, प्रतिक्रिया, र सन्देशहरू रिकभरीको स्वामित्व वा सृजना गर्नुभयो।", "six": "कुनै पनि भाइरस, हानिकारक सफ्टवेयर, ट्रोजन हर्स, वा विनाशकारी प्रकृति को कुनै सामग्री प्रसारण गर्न।" } }, - "reserve_rights": "रेड क्रसले परिवर्तनको अधिकार आरक्षित गर्दछ र \/ वा अब एपीआई र डाटा फिडहरू पूरै वा आंशिक रूपमा प्रदान गर्दछ, अस्थायी वा स्थायी रूपमा कुनै पनि समयमा पूर्वसूचना बिना। शंकाको रोकथामको लागि, यसमा केही पनि रेड क्रसलाई यसको एपीआई वा डाटा फिडहरू उपलब्ध गराउन बाध्य पार्दैन र तपाईं सहमत हुनुहुन्छ र स्वीकार गर्नुहुन्छ कि कुनै पनि पहुँच रेड क्रसको मात्रै र पूर्ण विवेकभित्र छ।", + "reserve_rights": "रेड क्रसले परिवर्तनको अधिकार आरक्षित गर्दछ र / वा अब एपीआई र डाटा फिडहरू पूरै वा आंशिक रूपमा प्रदान गर्दछ, अस्थायी वा स्थायी रूपमा कुनै पनि समयमा पूर्वसूचना बिना। शंकाको रोकथामको लागि, यसमा केही पनि रेड क्रसलाई यसको एपीआई वा डाटा फिडहरू उपलब्ध गराउन बाध्य पार्दैन र तपाईं सहमत हुनुहुन्छ र स्वीकार गर्नुहुन्छ कि कुनै पनि पहुँच रेड क्रसको मात्रै र पूर्ण विवेकभित्र छ।", "severability": { "body": "कुनै पनि सर्त वा एपीआई सर्तहरूको प्रावधानको अमान्यताले अन्य कुनै प्रावधानको वैधतालाई असर गर्दैन ।", "heading": "बाध्यकारिता र छुट:" }, "suspension": { - "body": "यदि यसले आफ्नो विवेक अनुसार तपाईं एपीआई सर्तमा उल्लेख गरिएको वा एपीआई वा डेटा फिड प्रयोग गरिरहनु भएको रूपमा एपीआई वा डाटा फिडको अनधिकृत प्रयोगमा,वा कुनै पनि त्यस्तो गतिविधिमा संलग्न हुनुहुन्छ जसले कुनै व्यक्ति वा रेड क्रस नेटवर्कको सुरक्षा र \/ वा सुरक्षालाई खतरामा \/ सम्झौता गर्दछ भन्ने ठान्छ भने रेड क्रसले तपाई‌को पहुँचलाई निलम्बन गर्ने वा समाप्त गर्ने अधिकार सुरक्षित राख्दछ ।", + "body": "यदि यसले आफ्नो विवेक अनुसार तपाईं एपीआई सर्तमा उल्लेख गरिएको वा एपीआई वा डेटा फिड प्रयोग गरिरहनु भएको रूपमा एपीआई वा डाटा फिडको अनधिकृत प्रयोगमा,वा कुनै पनि त्यस्तो गतिविधिमा संलग्न हुनुहुन्छ जसले कुनै व्यक्ति वा रेड क्रस नेटवर्कको सुरक्षा र / वा सुरक्षालाई खतरामा / सम्झौता गर्दछ भन्ने ठान्छ भने रेड क्रसले तपाई‌को पहुँचलाई निलम्बन गर्ने वा समाप्त गर्ने अधिकार सुरक्षित राख्दछ ।", "heading": "निलम्बन वा समाप्ति:" } }, diff --git a/resources/lang/pt.json b/resources/lang/pt.json index 792961c..49a1858 100644 --- a/resources/lang/pt.json +++ b/resources/lang/pt.json @@ -441,9 +441,9 @@ "immediate": "Imediata", "warning": "Aviso", "anticipated": "Antecipado", - "assess_and_plan":"Avaliar e Planejar", - "mitigate_risks":"Mitigar Risco", - "prepare_to_respond":"Preparar para responder", + "assess_and_plan": "Avaliar e Planejar", + "mitigate_risks": "Mitigar Risco", + "prepare_to_respond": "Preparar para responder", "recover": "Recuperar" }, "content": { @@ -526,7 +526,7 @@ "seasonalForecast_extra": "Uma previsão sazonal é uma declaração de previsão de um incidente desastroso. As ações são tomadas para avaliar potenciais riscos e planificar atividades para reduzir o risco e para proteger as habitações.", "watch": "Vigilância", "watch_help": "Preparar para responder", - "watch_extra": "É emitida a vigilância quando o risco de um incidente desastroso aumenta significativamente, mas a sua ocorrência, localização e\/ou momento ainda são incertos. É suposto dar tempo suficiente para ações de proteção e preparação para reagir.", + "watch_extra": "É emitida a vigilância quando o risco de um incidente desastroso aumenta significativamente, mas a sua ocorrência, localização e/ou momento ainda são incertos. É suposto dar tempo suficiente para ações de proteção e preparação para reagir.", "warning": "Aviso", "warning_help": "Preparar para responder", "warning_extra": "Um aviso é emitido quando um incidente desastroso está a ocorrer, está iminente ou tem uma grande probabilidade de ocorrer. Isso significa condições que são uma ameaça à vida ou propriedade. As pessoas na trajetória deste perigo precisam de tomar precauções.", @@ -558,7 +558,8 @@ "content_edit_title": "Edição de Conteúdo", "content_add_hazard_title": "Adicionar Desastre", "key_message_label": "Título da mensagem principal", - "supporting_message_label": "Mensagem de apoio" + "supporting_message_label": "Mensagem de apoio", + "mitigate_risk": "Mitigar Risco" }, "message_editor": { "title": "Editor de Atribuição", @@ -618,7 +619,7 @@ "bad_request_error_codes": { "30001": "Os cabeçalhos das colunas não correspondem ao modelo", "30002": "Falta o nome da atribuição, mensagem ou url", - "30003": "URL de atribuição inválido - por favor assegure-se de que o protocolo está presente, e.g. https: \/\/", + "30003": "URL de atribuição inválido - por favor assegure-se de que o protocolo está presente, e.g. https: //", "40001": "Código de país fornecido inválido", "40002": "A sociedade selecionada não corresponde à sociedade do ficheiro selecionado", "40003": "A data em que o ficheiro selecionado foi exportado foi deformada e a importação não pode ser concluída" @@ -689,7 +690,7 @@ }, "landing": { "strapline": "Serviço de base de dados de mensagens de segurança", - "strapline_part_2": "Mensagens Principais de Segurança da Cruz Vermelha Internacional \/ Crescente Vermelho", + "strapline_part_2": "Mensagens Principais de Segurança da Cruz Vermelha Internacional / Crescente Vermelho", "head_1": "Segurança da FICV", "head_2": "Base de dados de mensagens", "head_text_1": "Mensagens de segurança baseadas na sensibilização do público e na", @@ -841,10 +842,10 @@ "industries": { "media": "Meios de Comunicação", "emergency": "Gestão de Emergências", - "non_profit": "Sem fins lucrativos\/ONG", + "non_profit": "Sem fins lucrativos/ONG", "humanitarian": "Organização Humanitária", - "red_cross": "Cruz Vermelha\/Crescente Vermelho", - "education": "Educação\/Académica", + "red_cross": "Cruz Vermelha/Crescente Vermelho", + "education": "Educação/Académica", "gov": "Agência Governamental", "other": "Outros" }, @@ -859,9 +860,9 @@ "body": "As leis do Distrito de Colúmbia regerão todos os direitos e obrigações ao abrigo deste Acordo, sem dar efeito a quaisquer princípios de conflitos de leis.", "heading": "Lei Aplicável:" }, - "body": "O Utilizador é responsável por manter o segredo e a segurança da chave de registo que lhe foi fornecida pela Cruz Vermelha. É responsável por manter a compatibilidade com a API, tal como atualizado de tempos a tempos, a fim de continuar a receber os Data Feeds. A Cruz Vermelha pode lançar versões atualizadas da API e dos Data Feeds a seu exclusivo critério. As novas versões podem não ser compatíveis com implementações anteriores, e O Utilizador concorda em utilizar a versão atualizada mais recente dos Data Feeds em qualquer altura.\n\nO Utilizador concorda em não modificar, distribuir, descompilar, desmontar, ou fazer engenharia inversa de qualquer parte da API ou de qualquer software da Cruz Vermelha.\n\nO Utilizador não poderá utilizar a API ou Data Feeds de uma forma que exceda o volume razoável do pedido ou que constitua uma utilização excessiva ou abusiva, conforme determinado pela Cruz Vermelha ao seu exclusivo critério.\n\nO Utilizador não poderá utilizar a API ou Data Feeds de forma ilegal, enganosa, negligente, maliciosa, com intenção de causar danos, ou que prejudique a Cruz Vermelha, os seus fornecedores de serviços, os seus fornecedores de conteúdos, ou qualquer outra pessoa, conforme determinado pela Cruz Vermelha ao seu exclusivo critério.\n\nA Cruz Vermelha pode monitorizar a sua utilização da API e dos Data Feeds. O Utilizador não pode utilizar quaisquer meios técnicos para interferir com tal monitorização, e a Cruz Vermelha pode utilizar meios técnicos para ultrapassar qualquer interferência deste tipo.\n\nA utilização de Mensagens de Preparação, Resposta e Recuperação será apresentada apenas como atual ou atualizada à configuração de urgência então vigente do Alerta de Evento correlacionado, e o Utilizador deverá atualizar Mensagens individuais de Preparação, Resposta e Recuperação após qualquer atualização dos Data Feeds e\/ou Alertas de Evento correlacionados pela Cruz Vermelha.\n\nAs Mensagens de Preparação, Resposta e Recuperação Individuais que utiliza devem ser associadas apenas à região geográfica para a qual são emitidas. Se uma Mensagem de Preparação, Resposta e Recuperação incluir uma referência a uma fonte como a Cruz Vermelha Americana ou outra sociedade ou organização nacional da Cruz Vermelha ou do Crescente Vermelho (cada uma delas uma \"Referência de Fonte\"), o Utilizador deve incluir a Referência de Fonte associada a cada Mensagem de Preparação, Resposta e Recuperação no formulário fornecido nos Data Feeds. O Utilizador não deverá fazer mais uso de qualquer Referência de Fonte.\n\nO Utilizador não pode traduzir os Data Feeds, Alertas de Eventos e\/ou Mensagens de Preparação, Resposta e Recuperação para qualquer outra língua, fazer qualquer uso, edição ou revisão, ou alterar o significado dos Data Feeds, Alertas de Eventos e\/ou Mensagens de Preparação, Resposta e Recuperação.\n\nO Utilizador deve assegurar-se de que os Data Feeds permanecem na sua posse e\/ou controlo exclusivo.\n\nO Utilizador não pode permitir que Alertas de Eventos e Mensagens de Preparação, Resposta e Recuperação entregues a Utilizadores Finais incorporem qualquer publicidade ou patrocínio.\n\nO Utilizador não pode ficar com qualquer arquivo ou Data Feeds no todo ou em parte.", + "body": "O Utilizador é responsável por manter o segredo e a segurança da chave de registo que lhe foi fornecida pela Cruz Vermelha. É responsável por manter a compatibilidade com a API, tal como atualizado de tempos a tempos, a fim de continuar a receber os Data Feeds. A Cruz Vermelha pode lançar versões atualizadas da API e dos Data Feeds a seu exclusivo critério. As novas versões podem não ser compatíveis com implementações anteriores, e O Utilizador concorda em utilizar a versão atualizada mais recente dos Data Feeds em qualquer altura.\n\nO Utilizador concorda em não modificar, distribuir, descompilar, desmontar, ou fazer engenharia inversa de qualquer parte da API ou de qualquer software da Cruz Vermelha.\n\nO Utilizador não poderá utilizar a API ou Data Feeds de uma forma que exceda o volume razoável do pedido ou que constitua uma utilização excessiva ou abusiva, conforme determinado pela Cruz Vermelha ao seu exclusivo critério.\n\nO Utilizador não poderá utilizar a API ou Data Feeds de forma ilegal, enganosa, negligente, maliciosa, com intenção de causar danos, ou que prejudique a Cruz Vermelha, os seus fornecedores de serviços, os seus fornecedores de conteúdos, ou qualquer outra pessoa, conforme determinado pela Cruz Vermelha ao seu exclusivo critério.\n\nA Cruz Vermelha pode monitorizar a sua utilização da API e dos Data Feeds. O Utilizador não pode utilizar quaisquer meios técnicos para interferir com tal monitorização, e a Cruz Vermelha pode utilizar meios técnicos para ultrapassar qualquer interferência deste tipo.\n\nA utilização de Mensagens de Preparação, Resposta e Recuperação será apresentada apenas como atual ou atualizada à configuração de urgência então vigente do Alerta de Evento correlacionado, e o Utilizador deverá atualizar Mensagens individuais de Preparação, Resposta e Recuperação após qualquer atualização dos Data Feeds e/ou Alertas de Evento correlacionados pela Cruz Vermelha.\n\nAs Mensagens de Preparação, Resposta e Recuperação Individuais que utiliza devem ser associadas apenas à região geográfica para a qual são emitidas. Se uma Mensagem de Preparação, Resposta e Recuperação incluir uma referência a uma fonte como a Cruz Vermelha Americana ou outra sociedade ou organização nacional da Cruz Vermelha ou do Crescente Vermelho (cada uma delas uma \"Referência de Fonte\"), o Utilizador deve incluir a Referência de Fonte associada a cada Mensagem de Preparação, Resposta e Recuperação no formulário fornecido nos Data Feeds. O Utilizador não deverá fazer mais uso de qualquer Referência de Fonte.\n\nO Utilizador não pode traduzir os Data Feeds, Alertas de Eventos e/ou Mensagens de Preparação, Resposta e Recuperação para qualquer outra língua, fazer qualquer uso, edição ou revisão, ou alterar o significado dos Data Feeds, Alertas de Eventos e/ou Mensagens de Preparação, Resposta e Recuperação.\n\nO Utilizador deve assegurar-se de que os Data Feeds permanecem na sua posse e/ou controlo exclusivo.\n\nO Utilizador não pode permitir que Alertas de Eventos e Mensagens de Preparação, Resposta e Recuperação entregues a Utilizadores Finais incorporem qualquer publicidade ou patrocínio.\n\nO Utilizador não pode ficar com qualquer arquivo ou Data Feeds no todo ou em parte.", "contact": "Por favor contacte a Cruz Vermelha em {0} com quaisquer questões sobre a API.", - "disclaimer": "A API e os Data Feeds são fornecidos APENAS PARA FINS INFORMATIVOS E EDUCACIONAIS E numa base de \"no estado em que se encontram\" ou \"conforme disponíveis\". A Cruz Vermelha não faz representações ou garantias expressas ou implícitas de nenhum género. A Cruz Vermelha nega todas as garantias, expressas ou implícitas, incluindo mas não limitando-se a garantias de comercialização e de adequação para nenhum fim em particular. A Cruz Vermelha e os seus colaboradores, oficiais, governadores e agentes e licenciadores não serão responsáveis por nenhuma forma de dano resultante do uso da API, Data Feeds, Alertas de Eventos e\/ou Mensagens de Preparação, Resposta e Recuperação, incluindo mas não limitando-se a danos diretos, indiretos, incidentais, punitivos e consequentes.\n\nA Cruz Vermelha não garante a ordem, precisão, autenticidade ou a integralidade da API, Data Feeds, Alertas de Eventos e\/ou Mensagens de Preparação, Resposta e Recuperação e não será considerada responsável de nenhuma forma quanto ao Utilizador ou os seus Utilizadores Finais ou a terceiros, incluindo mas não limitando-se a quaisquer atrasos, imprecisões, erros ou omissões quanto à API, Data Feeds, Alertas de Eventos e\/ou Mensagens de Preparação, Resposta e Recuperação fornecidas a seguir.", + "disclaimer": "A API e os Data Feeds são fornecidos APENAS PARA FINS INFORMATIVOS E EDUCACIONAIS E numa base de \"no estado em que se encontram\" ou \"conforme disponíveis\". A Cruz Vermelha não faz representações ou garantias expressas ou implícitas de nenhum género. A Cruz Vermelha nega todas as garantias, expressas ou implícitas, incluindo mas não limitando-se a garantias de comercialização e de adequação para nenhum fim em particular. A Cruz Vermelha e os seus colaboradores, oficiais, governadores e agentes e licenciadores não serão responsáveis por nenhuma forma de dano resultante do uso da API, Data Feeds, Alertas de Eventos e/ou Mensagens de Preparação, Resposta e Recuperação, incluindo mas não limitando-se a danos diretos, indiretos, incidentais, punitivos e consequentes.\n\nA Cruz Vermelha não garante a ordem, precisão, autenticidade ou a integralidade da API, Data Feeds, Alertas de Eventos e/ou Mensagens de Preparação, Resposta e Recuperação e não será considerada responsável de nenhuma forma quanto ao Utilizador ou os seus Utilizadores Finais ou a terceiros, incluindo mas não limitando-se a quaisquer atrasos, imprecisões, erros ou omissões quanto à API, Data Feeds, Alertas de Eventos e/ou Mensagens de Preparação, Resposta e Recuperação fornecidas a seguir.", "entire_agreement": { "body": "Os Termos da API constituem o acordo completo e exclusivo entre a Cruz Vermelha e o Utilizador com respeito ao presente assunto e substitui todos os acordos orais ou escritos, comunicações ou contratos precedentes não incorporados aqui especificamente. A Cruz Vermelha reserva o direito de modificar ou revogar este acordo a qualquer momento.", "heading": "Contrato Integral:" @@ -869,7 +870,7 @@ "heading": "CONTRATO DE LICENCIAMENTO DE USUÁRIO FINAL DA API", "intro": "ACEITAR: ATRAVÉS DO USO DO SERVIÇO OU DA MARCAÇÃO DA CAIXA APRESENTADA, O USUÁRIO ESTÁ A CONCORDAR COM O QUE É ESTABELECIDO NESTE CONTRATO.\n\nA API é uma ferramenta que te permite (\"O Usuário\") recolher e usar data feeds disponibilizados pela Cruz Vermelha, incluindo um feed meteorológico de notificações de aviso e vigilância de eventos de desastre global (\"Alertas de Eventos\") e um feed de mensagens úteis e contextuais sobre como se preparar para desastres locais de acordo com o tipo e urgência do desastre (\"Mensagens de Preparação, Resposta e Recuperação\", juntamente aos Alertas de Eventos e os \"Data Feeds\"). As Mensagens de Preparação, Resposta e Recuperação têm como objetivo acompanhar os Alertas de Eventos e outras notificações de aviso e vigilância associadas a eventos de desastre na sua própria aplicação. O uso dos Data Feeds pelo Usuário é regulado pelos Termos da API.", "license_limitations": { - "body": "O Utilizador pode usar os Data Feeds apenas em associação com a sua aplicação sujeita aos Termos da API e desde que O Usuário mantenha a compatibilidade com a API, de acordo com as atualizações periódicas. É garantido ao Usuário um direito não-exclusivo, limitado e revogável para descarregar, usar, reproduzir e distribuir para usuários finais da sua própria aplicação (\"Usuários Finais\") Alertas de Eventos e Mensagens de Preparação, Resposta e Recuperação relevantes e contextuais em associação com a configuração de urgência de Alertas de Evento individuais dos Data Feeds, sujeito aos Termos da API. O Usuário pode apenas utilizar a API para usos não comerciais dos Data Feeds de acordo com os Termos da API. O Usuário não pode, a nenhum momento, utilizar a API para meios comerciais dos Data Feeds, Alertas de Eventos e\/ou Mensagens de Preparação, Resposta e Recuperação, incluindo mas não limitando-se a revenda, cobrar o seu acesso, cobrar para os redistribuir ou cobrar para criar trabalhos derivados com base neles. A Cruz Vermelha e os seus licenciadores preservam todos os títulos, propriedade, direitos e garantias e interesses da API, Mensagens de Preparação, Resposta e Recuperação, Alertas de Eventos, Data Feeds e Fontes de Referência (como definidas abaixo). Todos os direitos não concedidos expressamente estão reservados.", + "body": "O Utilizador pode usar os Data Feeds apenas em associação com a sua aplicação sujeita aos Termos da API e desde que O Usuário mantenha a compatibilidade com a API, de acordo com as atualizações periódicas. É garantido ao Usuário um direito não-exclusivo, limitado e revogável para descarregar, usar, reproduzir e distribuir para usuários finais da sua própria aplicação (\"Usuários Finais\") Alertas de Eventos e Mensagens de Preparação, Resposta e Recuperação relevantes e contextuais em associação com a configuração de urgência de Alertas de Evento individuais dos Data Feeds, sujeito aos Termos da API. O Usuário pode apenas utilizar a API para usos não comerciais dos Data Feeds de acordo com os Termos da API. O Usuário não pode, a nenhum momento, utilizar a API para meios comerciais dos Data Feeds, Alertas de Eventos e/ou Mensagens de Preparação, Resposta e Recuperação, incluindo mas não limitando-se a revenda, cobrar o seu acesso, cobrar para os redistribuir ou cobrar para criar trabalhos derivados com base neles. A Cruz Vermelha e os seus licenciadores preservam todos os títulos, propriedade, direitos e garantias e interesses da API, Mensagens de Preparação, Resposta e Recuperação, Alertas de Eventos, Data Feeds e Fontes de Referência (como definidas abaixo). Todos os direitos não concedidos expressamente estão reservados.", "heading": "Licença e Limitações:" }, "overview": { @@ -892,13 +893,13 @@ "six": "Transmitir quaisquer vírus, vermes, cavalos de Troia ou quaisquer itens de natureza destrutiva." } }, - "reserve_rights": "A Cruz Vermelha reserva o direito de alterar e\/ou parar de fornecer a API e os Data Feeds na sua totalidade ou em parte, provisoriamente ou permanentemente, a qualquer momento e sem aviso prévio. A fim de evitar incertezas, nada aqui presente obriga a Cruz Vermelha a tornar a API e Data Feeds disponíveis para O Usuário e O Usuário concorda e reconhece que qualquer acesso está ao critério exclusivo e absoluto da Cruz Vermelha.", + "reserve_rights": "A Cruz Vermelha reserva o direito de alterar e/ou parar de fornecer a API e os Data Feeds na sua totalidade ou em parte, provisoriamente ou permanentemente, a qualquer momento e sem aviso prévio. A fim de evitar incertezas, nada aqui presente obriga a Cruz Vermelha a tornar a API e Data Feeds disponíveis para O Usuário e O Usuário concorda e reconhece que qualquer acesso está ao critério exclusivo e absoluto da Cruz Vermelha.", "severability": { "body": "A invalidade ou ilegalidade de qualquer disposição deste documento não deverá afetar a validade de qualquer outra disposição.", "heading": "Disjunção e Renúncia:" }, "suspension": { - "body": "A Cruz Vermelha reserva o direito de suspender ou cancelar o acesso do Usuário se a Cruz Vermelha determinar, a seu exclusivo critério, que O Usuário está envolvido na utilização não autorizada da API ou do Data Feed como descrito nos Termos da API ou que O Usuário está a utilizar a API ou o Data Feed em qualquer atividade que ameaça\/põe em risco a segurança e\/ou proteção de qualquer pessoa ou das redes da Cruz Vermelha.", + "body": "A Cruz Vermelha reserva o direito de suspender ou cancelar o acesso do Usuário se a Cruz Vermelha determinar, a seu exclusivo critério, que O Usuário está envolvido na utilização não autorizada da API ou do Data Feed como descrito nos Termos da API ou que O Usuário está a utilizar a API ou o Data Feed em qualquer atividade que ameaça/põe em risco a segurança e/ou proteção de qualquer pessoa ou das redes da Cruz Vermelha.", "heading": "Suspensão e Cancelamento:" } }, @@ -958,7 +959,7 @@ "email_subject": "Requerer um novo tipo de desastre", "hazard_name": "Nome do desastre", "hazard_name_placeholder": "Introduza o nome do desastre", - "upload_icon": "Carregar\/Adicionar imagem", + "upload_icon": "Carregar/Adicionar imagem", "icon_requirements": "Imagens devem estar em formato .png e terem um tamanho abaixo de 30kb", "requestLink": "Contactar o CGPD para requerer um novo tipo de desastre", "success": "Tipo de desastre criado", diff --git a/resources/lang/ru.json b/resources/lang/ru.json index 7866f9e..2bdad49 100644 --- a/resources/lang/ru.json +++ b/resources/lang/ru.json @@ -441,9 +441,9 @@ "immediate": "Немедленно", "warning": "Предупреждение", "anticipated": "Ожидаемый", - "assess_and_plan":"Оценить и спланировать", - "mitigate_risks":"Смягчить риск", - "prepare_to_respond":"Подготовиться к реагированию", + "assess_and_plan": "Оценить и спланировать", + "mitigate_risks": "Смягчить риск", + "prepare_to_respond": "Подготовиться к реагированию", "recover": "Восстановиться" }, "content": { @@ -526,7 +526,7 @@ "seasonalForecast_extra": "Сезонный прогноз является утвердительным предсказанием опасного события. Принимаемые меры состоят из оценки потенциальных рисков и планировании действий по снижению рисков и защите семьи.", "watch": "Сигнал «Внимание!»", "watch_help": "Подготовьтесь к мерам реагирования", - "watch_extra": "Сигнал «Внимание!» передается когда риск опасного события значительно возрос, но его возникновение, место и \/ или время все еще не определены. Это дает достаточно времени для действий по защите и подготовке к реагированию.", + "watch_extra": "Сигнал «Внимание!» передается когда риск опасного события значительно возрос, но его возникновение, место и / или время все еще не определены. Это дает достаточно времени для действий по защите и подготовке к реагированию.", "warning": "Сигнал «Опасность!»", "warning_help": "Подготовьтесь к мерам реагирования", "warning_extra": "Сигнал «Опасность!» передается когда опасное событие происходит, является неизбежным, или имеет очень высокую вероятность возникновения. Это означает, что условия угрожают жизни или имуществу. Людям, находящимся в зоне действия данной опасности необходимо принимать защитные меры.", @@ -558,7 +558,8 @@ "content_edit_title": "Редактирование контента", "content_add_hazard_title": "Добавить опасность", "key_message_label": "Заголовок ключевого сообщения", - "supporting_message_label": "Вспомогательное сообщение" + "supporting_message_label": "Вспомогательное сообщение", + "mitigate_risk": "Смягчить риск" }, "message_editor": { "title": "Редактор атрибуции", @@ -618,7 +619,7 @@ "bad_request_error_codes": { "30001": "Заголовки столбцов не соответствуют шаблону", "30002": "Название атрибуции, сообщение или url отсутствуют", - "30003": "Недействительный url-адрес атрибуции - убедитесь, что прописан протокол, например https: \/\/", + "30003": "Недействительный url-адрес атрибуции - убедитесь, что прописан протокол, например https: //", "40001": "Недействительный код страны", "40002": "Выбранное общество не соответствует обществу для выбранного файла", "40003": "Дата экспорта выбранного файла неверна, и импорт не может быть завершен" @@ -689,7 +690,7 @@ }, "landing": { "strapline": "Служба базы данных сообщений по безопасности", - "strapline_part_2": "Основные сообщения Международного Красного Креста \/ Красного Полумесяца по безопасности", + "strapline_part_2": "Основные сообщения Международного Красного Креста / Красного Полумесяца по безопасности", "head_1": "Безопасность МФОККиКП", "head_2": "База данных сообщений", "head_text_1": "Сообщения о безопасности, основанные на принципах информирования общественности МФОККиКП и", @@ -785,7 +786,7 @@ }, "data_preview": { "heading": "Сообщения о безопасности", - "sub_heading": "Зарегистрируйтесь и просмотрите основные сообщения о действиях национальных обществ Красного Креста \/ Красного Полумесяца по всему миру" + "sub_heading": "Зарегистрируйтесь и просмотрите основные сообщения о действиях национальных обществ Красного Креста / Красного Полумесяца по всему миру" }, "footer": { "terms_conditions": "Положения и условия", @@ -841,10 +842,10 @@ "industries": { "media": "СМИ", "emergency": "Управление в чрезвычайных ситуациях", - "non_profit": "Некоммерческая \/ НГО", + "non_profit": "Некоммерческая / НГО", "humanitarian": "Гуманитарная организация", - "red_cross": "Красный крест\/ красный полумесяц", - "education": "Образование \/ Академия", + "red_cross": "Красный крест/ красный полумесяц", + "education": "Образование / Академия", "gov": "Федеральное агентство", "other": "Другие" }, @@ -859,9 +860,9 @@ "body": "Законы Округа Колумбия будут регулировать все положения и условия по настоящему Соглашению без применения каких-либо принципов коллизионного права.", "heading": "Применимое право:" }, - "body": "Вы несете ответственность за сохранность своего пароля и регистрационного ключа, предоставленного Красным Крестом. Вы несете ответственность за поддержание совместимости с API, который время от времени обновляется для дальнейшего принятия потоков данных. Красный Крест может выпускать обновленные версии API и потоков данных по своему усмотрению. Новые версии могут быть несовместимы с предыдущими, и вы соглашаетесь всегда использовать самую последнюю обновленную версию потоков данных.\n\nВы обязуетесь не модифицировать, не распространять, не декомпилировать, не демонтировать или не подвергать обратному проектированию любую часть API или иное программное обеспечение Красного Креста.\n\nВы не имеете права использовать API или каналы данных способом, который превышает разумный объем запросов или представляет собой чрезмерное или неправомерное использование по усмотрению Красного Креста.\n\nВы не имеете права использовать API или потоки данных незаконным, вводящим в заблуждение, небрежным, злонамеренным образом, с целью причинения вреда или ущерба Красному Кресту, его подрядчикам, поставщикам контента или любому другому лицу по усмотрению Красного Креста.\n\nКрасный Крест имеет право контролировать использование вами API и потоков данных. Вы не имеете права применять какие-либо технические средства, чтобы помешать такому мониторингу, и Красный Крест может использовать технические средства для преодоления любого такого вмешательства.\n\nСообщения в рамках подготовки, реагирования и восстановления должны быть актуальными или обновленными с учетом текущей настройки срочности оповещения о событии, и вы должны обновлять отдельные сообщения в рамках подготовки, реагирования и восстановления после каждого обновления потоков данных и\/или связанных оповещений о событиях Красного Креста.\n\nОтдельные сообщения в рамках подготовки, реагирования и восстановления должны быть привязаны к географическому региону, для которого они были созданы. Если сообщения в рамках подготовки, реагирования и восстановления содержат ссылку на источник, такой как Американский Красный Крест или другое национальное общество или организацию Красного Креста или Красного Полумесяца (далее по отдельности именуются «Ссылка на источник»), вы обязаны включать ссылку на источник, связанный с каждым сообщением в рамках подготовки, реагирования и восстановления в форме, указанной в потоках данных. Вы не имеете права иным образом использовать ссылки на источники.\n\nВы не имеете права переводить потоки данных, оповещения о событиях и\/или сообщения в рамках подготовки, реагирования и восстановления на любой другой язык, использовать, редактировать или исправлять, или изменять значение потока данных, оповещений о событиях и\/или сообщений в рамках подготовки, реагирования и восстановления.\n\nВы должны убедиться, что потоки данных остаются в вашем личном доступе и\/или под вашим контролем.\n\nВы не имеете права давать разрешение на включение рекламы и спонсорской информации в оповещения о событиях и сообщения в рамках подготовки, реагирования и восстановления, отправляемые конечным пользователям.\n\nВы не имеете права создавать архивы потоков данных, а также их части.", + "body": "Вы несете ответственность за сохранность своего пароля и регистрационного ключа, предоставленного Красным Крестом. Вы несете ответственность за поддержание совместимости с API, который время от времени обновляется для дальнейшего принятия потоков данных. Красный Крест может выпускать обновленные версии API и потоков данных по своему усмотрению. Новые версии могут быть несовместимы с предыдущими, и вы соглашаетесь всегда использовать самую последнюю обновленную версию потоков данных.\n\nВы обязуетесь не модифицировать, не распространять, не декомпилировать, не демонтировать или не подвергать обратному проектированию любую часть API или иное программное обеспечение Красного Креста.\n\nВы не имеете права использовать API или каналы данных способом, который превышает разумный объем запросов или представляет собой чрезмерное или неправомерное использование по усмотрению Красного Креста.\n\nВы не имеете права использовать API или потоки данных незаконным, вводящим в заблуждение, небрежным, злонамеренным образом, с целью причинения вреда или ущерба Красному Кресту, его подрядчикам, поставщикам контента или любому другому лицу по усмотрению Красного Креста.\n\nКрасный Крест имеет право контролировать использование вами API и потоков данных. Вы не имеете права применять какие-либо технические средства, чтобы помешать такому мониторингу, и Красный Крест может использовать технические средства для преодоления любого такого вмешательства.\n\nСообщения в рамках подготовки, реагирования и восстановления должны быть актуальными или обновленными с учетом текущей настройки срочности оповещения о событии, и вы должны обновлять отдельные сообщения в рамках подготовки, реагирования и восстановления после каждого обновления потоков данных и/или связанных оповещений о событиях Красного Креста.\n\nОтдельные сообщения в рамках подготовки, реагирования и восстановления должны быть привязаны к географическому региону, для которого они были созданы. Если сообщения в рамках подготовки, реагирования и восстановления содержат ссылку на источник, такой как Американский Красный Крест или другое национальное общество или организацию Красного Креста или Красного Полумесяца (далее по отдельности именуются «Ссылка на источник»), вы обязаны включать ссылку на источник, связанный с каждым сообщением в рамках подготовки, реагирования и восстановления в форме, указанной в потоках данных. Вы не имеете права иным образом использовать ссылки на источники.\n\nВы не имеете права переводить потоки данных, оповещения о событиях и/или сообщения в рамках подготовки, реагирования и восстановления на любой другой язык, использовать, редактировать или исправлять, или изменять значение потока данных, оповещений о событиях и/или сообщений в рамках подготовки, реагирования и восстановления.\n\nВы должны убедиться, что потоки данных остаются в вашем личном доступе и/или под вашим контролем.\n\nВы не имеете права давать разрешение на включение рекламы и спонсорской информации в оповещения о событиях и сообщения в рамках подготовки, реагирования и восстановления, отправляемые конечным пользователям.\n\nВы не имеете права создавать архивы потоков данных, а также их части.", "contact": "По всем вопросам, касающимся API, просим обращаться в Красный Крест: {0}.", - "disclaimer": "API и потоки данных предоставляются ТОЛЬКО ДЛЯ ИНФОРМАЦИОННЫХ И ОБРАЗОВАТЕЛЬНЫХ ЦЕЛЕЙ И на условиях «как есть» и «по факту». Красный Крест не делает никаких заявлений или гарантий любого рода, явных или подразумеваемых. Красный Крест отказывается от всех гарантий, явных или подразумеваемых, включая подразумеваемые гарантии товарной пригодности и соответствия определенной цели. Красный Крест и его сотрудники, должностные лица, управляющие, агенты и лицензиары не несут ответственности за ущерб любого рода, возникший в результате использования API, потоков данных, оповещений о событиях и\/или сообщений в рамках подготовки, реагирования и восстановления, включая прямые, косвенные, случайные, штрафные и косвенные убытки.\n\nКрасный Крест не гарантирует последовательность, точность, подлинность или полноту API, потока данных, оповещений о событиях и\/или сообщений о подготовке, реагировании и восстановления и не несет ответственности перед вами, вашими конечными пользователями или третьими лицами, включая любые задержки, неточности, ошибки или упущения в отношении API, потоков данных, оповещений о событиях и\/или сообщений в рамках подготовки, реагирования и восстановления, указанных в настоящем документе.", + "disclaimer": "API и потоки данных предоставляются ТОЛЬКО ДЛЯ ИНФОРМАЦИОННЫХ И ОБРАЗОВАТЕЛЬНЫХ ЦЕЛЕЙ И на условиях «как есть» и «по факту». Красный Крест не делает никаких заявлений или гарантий любого рода, явных или подразумеваемых. Красный Крест отказывается от всех гарантий, явных или подразумеваемых, включая подразумеваемые гарантии товарной пригодности и соответствия определенной цели. Красный Крест и его сотрудники, должностные лица, управляющие, агенты и лицензиары не несут ответственности за ущерб любого рода, возникший в результате использования API, потоков данных, оповещений о событиях и/или сообщений в рамках подготовки, реагирования и восстановления, включая прямые, косвенные, случайные, штрафные и косвенные убытки.\n\nКрасный Крест не гарантирует последовательность, точность, подлинность или полноту API, потока данных, оповещений о событиях и/или сообщений о подготовке, реагировании и восстановления и не несет ответственности перед вами, вашими конечными пользователями или третьими лицами, включая любые задержки, неточности, ошибки или упущения в отношении API, потоков данных, оповещений о событиях и/или сообщений в рамках подготовки, реагирования и восстановления, указанных в настоящем документе.", "entire_agreement": { "body": "Условия использования API представляют собой полное и исключительное соглашение между Красным Крестом и вами в отношении предмета настоящего Соглашения и заменяют собой все предыдущие устные или письменные договоренности, сообщения или соглашения, не включенные в настоящий документ. Красный Крест оставляет за собой право изменить или отозвать это соглашение в любое время.", "heading": "Исчерпывающий характер Соглашения:" @@ -869,7 +870,7 @@ "heading": "ЛИЦЕНЗИОННОЕ СОГЛАШЕНИЕ С КОНЕЧНЫМ ПОЛЬЗОВАТЕЛЕМ API", "intro": "СОГЛАСИЕ: ИСПОЛЬЗУЯ УСЛУГУ ИЛИ ПРОВЕРЯЯ ПРЕДОСТАВЛЕННЫЙ ЯЩИК, ПОЛЬЗОВАТЕЛЬ ОБЯЗУЕТСЯ СОБЛЮДАТЬ УСЛОВИЯ НАСТОЯЩЕГО СОГЛАШЕНИЯ.\n\nAPI - это инструмент, который позволяет вам (далее - «вы») получать и использовать потоки данных, предоставленные Красным Крестом, включая поток глобальных предупреждений о погоде и стихийных бедствиях, а также уведомления о наблюдениях (далее - «Оповещения о событиях») и поток действенных и контекстных сообщений о порядке подготовки к локальным угрозам с учетом вида опасности и срочности (далее - «Сообщения в рамках подготовки, реагирования и восстановления»; в совокупности с оповещениями о событиях - «Потоки данных»). Сообщения в рамках подготовки, реагирования и восстановления предназначены для дополнения Оповещений о событиях или других предупреждений и отслеживания уведомлений, связанных с погодой и стихийными бедствиями, в вашем собственном приложении. Использование Потоков данных регулируется Условиями использования API.", "license_limitations": { - "body": "Вы можете использовать Поток данных только в своем собственном приложении, руководствуясь Условиями использования API, а также при соблюдении своевременного обновления, чтобы обеспечить совместимость с API. Вам гарантируется неисключительное, ограниченное и подлежащее отзыву право загружать, использовать, воспроизводить и распространять среди конечных пользователей вашего собственного приложения (далее - «Конечные пользователи») Оповещения о событиях и соответствующие контексту Сообщения подготовки, реагирования и восстановления в сочетании с настройками срочности каждого Оповещения о событии в Потоке данных, согласно Условиям использования API. Вы можете использовать API только для содействия некоммерческому использованию Потоку данных в соответствии с Условиями использования API. Вы ни в коем случае не можете применять API для содействия коммерческому использованию Потоку данных, Оповещений о событиях и\/или Сообщений в рамках подготовки, реагирования и восстановления, включая, без ограничений, перепродажу, взимание платы за доступ к ним, взимание платы за повторное распространение или взимание платы за создание производных разработок на их основе. Организация Красный Крест и ее лицензиары сохраняют за собой права наименования и собственности, а также все права и интересы, связанные с API, а также с Сообщениями в рамках подготовки, реагирования и восстановления, Оповещениями о событиях, Потоками данных и Ссылками на источники (как определяется ниже) в рамках приложения. Все права, не предоставленные пользователям на основании настоящего документа, защищены.", + "body": "Вы можете использовать Поток данных только в своем собственном приложении, руководствуясь Условиями использования API, а также при соблюдении своевременного обновления, чтобы обеспечить совместимость с API. Вам гарантируется неисключительное, ограниченное и подлежащее отзыву право загружать, использовать, воспроизводить и распространять среди конечных пользователей вашего собственного приложения (далее - «Конечные пользователи») Оповещения о событиях и соответствующие контексту Сообщения подготовки, реагирования и восстановления в сочетании с настройками срочности каждого Оповещения о событии в Потоке данных, согласно Условиям использования API. Вы можете использовать API только для содействия некоммерческому использованию Потоку данных в соответствии с Условиями использования API. Вы ни в коем случае не можете применять API для содействия коммерческому использованию Потоку данных, Оповещений о событиях и/или Сообщений в рамках подготовки, реагирования и восстановления, включая, без ограничений, перепродажу, взимание платы за доступ к ним, взимание платы за повторное распространение или взимание платы за создание производных разработок на их основе. Организация Красный Крест и ее лицензиары сохраняют за собой права наименования и собственности, а также все права и интересы, связанные с API, а также с Сообщениями в рамках подготовки, реагирования и восстановления, Оповещениями о событиях, Потоками данных и Ссылками на источники (как определяется ниже) в рамках приложения. Все права, не предоставленные пользователям на основании настоящего документа, защищены.", "heading": "Лицензия и ограничения:" }, "overview": { @@ -888,11 +889,11 @@ "two": "Обход или изменение любых ключей или механизмов безопасности, используемых Красным Крестом или API, в том числе, без ограничений, любых технологий аутентификации.", "three": "Запрос, сбор, вымогание или получение любым другим способом доступа к зарегистрированным именам, паролям или другим учетным данным для входа в систему Красного Креста, кроме тех, что предоставляются вам для вашего собственного аккаунта.", "four": "Заявлять или подразумевать принадлежность, спонсорство или одобрение со стороны Красного Креста или любого другого национального общества или организации Красного Креста либо Красного Полумесяца.", - "five": "Заявлять или подразумевать, что вы являетесь владельцем или создателем API, Потока данных, Оповещений о событиях и\/или Сообщений в рамках подготовки, реагирования и восстановления.", + "five": "Заявлять или подразумевать, что вы являетесь владельцем или создателем API, Потока данных, Оповещений о событиях и/или Сообщений в рамках подготовки, реагирования и восстановления.", "six": "Передача любых вирусов, сетевых червей, троянских программ и любых других вредоносных элементов." } }, - "reserve_rights": "Красный Крест оставляет за собой право изменить и\/или перестать предоставлять доступ к API и Потоку данных полностью или частично, в любое время без уведомления. Во избежание сомнений, ничто, указанное здесь, не обязывает Красный Крест предоставлять вам доступ к API или Потоку данных, и вы согласны и осознаете, что любой доступ к данным услугам находится на единоличном и абсолютном усмотрении Красного Креста.", + "reserve_rights": "Красный Крест оставляет за собой право изменить и/или перестать предоставлять доступ к API и Потоку данных полностью или частично, в любое время без уведомления. Во избежание сомнений, ничто, указанное здесь, не обязывает Красный Крест предоставлять вам доступ к API или Потоку данных, и вы согласны и осознаете, что любой доступ к данным услугам находится на единоличном и абсолютном усмотрении Красного Креста.", "severability": { "body": "Недействительность любого из условий или положений в настоящем списке Условий использования API не нарушает действительности остальных положений.", "heading": "Автономность положений и отказ от прав:" diff --git a/resources/lang/rw.json b/resources/lang/rw.json index 00c81ac..3d16a9d 100644 --- a/resources/lang/rw.json +++ b/resources/lang/rw.json @@ -441,9 +441,9 @@ "immediate": "Ako kanya", "warning": "Iburira", "anticipated": "Byitezwe", - "assess_and_plan":"Gusesengura no Gushyira mu bikorwa gahunda", - "mitigate_risks":"Gukumira Ingaruka mbi", - "prepare_to_respond":"Itegure guhangana n'ibiza", + "assess_and_plan": "Gusesengura no Gushyira mu bikorwa gahunda", + "mitigate_risks": "Gabanya ibyago", + "prepare_to_respond": "Itegure guhangana n'ibiza", "recover": "Gukira" }, "content": { @@ -558,7 +558,8 @@ "content_edit_title": "Guhindura Ibirimo", "content_add_hazard_title": "Ongeraho Ikiza", "key_message_label": "Ubutumwa bw'ingenzi", - "supporting_message_label": "Ubutumwa bushyigikira" + "supporting_message_label": "Ubutumwa bushyigikira", + "mitigate_risk": "Gabanya ibyago" }, "message_editor": { "title": "Umuhinduzi w'Ibitekerezo", @@ -618,7 +619,7 @@ "bad_request_error_codes": { "30001": "Imitwengaruka y'inkingi ntabwo ihura n'inyandikorugero", "30002": "Amazina bijyanye, ubutumwa cyangwa url ntibihari", - "30003": "Url bijyanye si yo; reba neza niba porotokore ihari, urug.: https:\/\/", + "30003": "Url bijyanye si yo; reba neza niba porotokore ihari, urug.: https://", "40001": "Hatanzwe kode y'igihugu itari yo", "40002": "Ishyirahamwe ryatoranyijwe ntabwo rihura n'ishyirahamwe rya dosiye yatoranyijwe", "40003": "Itariki dosiye yatoranyijwe yasohoreweho yanditse nabi kandi kuyizana ntibishobora kurangira" @@ -689,7 +690,7 @@ }, "landing": { "strapline": "Serivisi y'Ububiko bw'Ubutumwa bwo Kwirinda", - "strapline_part_2": "Ubutumwa bw'umutekano wa Global Red Cross \/ Red Crescent", + "strapline_part_2": "Ubutumwa bw'umutekano wa Global Red Cross / Red Crescent", "head_1": "IFRC Kwirinda", "head_2": "Ububiko bw'amakuru y'ubutumwa", "head_text_1": "Ubutumwa bwo kwirinda bushingiye ku IFRC Kumenyesha Abaturage no", @@ -744,7 +745,7 @@ "fake_alert_heading": "Imbuzi y'ubukonje bukabije", "fake_alert_description": "Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est.", "fake_alert_time": "HASHIZE ISAHA 1", - "fake_alert_time_exact": "05\/02\/18 saa 05:15 CT", + "fake_alert_time_exact": "05/02/18 saa 05:15 CT", "use_cases": { "heading": "Menya ibindi", "first_heading": "Uburyo bikora", @@ -785,7 +786,7 @@ }, "data_preview": { "heading": "Ubutumwa bwo Kwirinda", - "sub_heading": "Iyandikishe unarebe ubutumwa bw'amasosiyete ya Kuruwa Ruje\/Kuruwasa Ruje ku isi hose" + "sub_heading": "Iyandikishe unarebe ubutumwa bw'amasosiyete ya Kuruwa Ruje/Kuruwasa Ruje ku isi hose" }, "footer": { "terms_conditions": "Amategeko n'amabwiriza", @@ -841,10 +842,10 @@ "industries": { "media": "Itangazamakuru", "emergency": "Igenzurwa ry'ibiza", - "non_profit": "Umuryango udaharanira inyungu\/utegamiye kuri leta", + "non_profit": "Umuryango udaharanira inyungu/utegamiye kuri leta", "humanitarian": "Umuryango wita ku kiremwamuntu", - "red_cross": "Kuruwa Ruje\/Kuruwasa Ruje", - "education": "Uburezi\/Amashuli", + "red_cross": "Kuruwa Ruje/Kuruwasa Ruje", + "education": "Uburezi/Amashuli", "gov": "Ikigo cya Leta", "other": "Ibindi" }, @@ -869,7 +870,7 @@ "heading": "ISOZWA RY'AMASEZERANO K'URUHUSA RWO GUKORESHA API", "intro": "EMERA: MUGKORESHA IYI SERIVISE CYANGWA KUREBA MUGASANDUGU BAGUHAYE, UMUKORESHA YEMERA KUBA AFATANYE NAYA MASEZERANO.\n\nAPI ni igikoresho kigufasha ( Wowe) mukubona no gukoresha amakuru mashya ahari ya Kuruwa Ruje harimo namakuru y'ikirere n'ibiza bimenyeshwa no gukurikira amabwiriza (Amamenyesha y’Ibikorwa) amakuru y'ibikorwa by'ubutumwa bwanditse kuburyo bwo gutegura kubishobora gutera impanuka, ibyihutirwa ( Itegurwa, Isubizwa n’Igarurabutumwa, byose hamwe n'Amamenyesha y’Ibikorwa,n'Ikigega cy’amakuru). Itegurwa, Isubizwa n'Igarurabutumwa biteganyijwe guherekeza Amamenyesha y'Ibikorwa cyangwa indi mburira ndetse n'ibyitonderwa bigaragara bifitanye isano n'ibyerekeye ikirere n'ibiza muri porogaramu yawe y'ubusabe. Ikoreshwa ry'ikigega cy'amakuru yawe rigengwa n'amahame ya API.", "license_limitations": { - "body": "Ushobora gukoresha ikigega cy'amakuru gusa mu gihe bihuye n'impamvu y'ubusabe bwawe ku mahame ya API, bikanaguha guhama mu bijyanye na API nk'uko byakomeje kugenda bivugururwa. Wizejwe uburenganzira bwo gukura ibyo ushaka ku rubuga, nta guhezwa, kubuzwa cyangwa guhagarikwa, ukabikoresha, ukabibyaza umusaruro ndetse ukabisakaza ku bakoresha porogaramu yawe y'ubusabe (\"Abakoresha porogaramu ba nyuma\") ku Bikorwa by'Imenyesha bifitanye isano n'inyandiko zanditswe zitegura, zigasubiza zikanagarura ubutumwa, bigahura n'igenamiterere ryihuta y'ibikorwa bya muntu biburira bituruka mu makuru, bijyanye n'amahame ya API. Ushobora gukoresha API mu gufasha ku mpamvu zitari iz'ubucuruzi, bijyanye n'amahame ya API. Ntabwo wemerewe gukoresha API mu gufasha mu ikoreshwa ry'ikigega cy'amakuru mu buryo bwo gucuruza, Amamenyesha y'ibikorwa ndetse\/cyangwa Itegurwa, Isubizwa n'Igarurabutumwa, harimo nta rutangira, kongera kugurisha amakuru, gusaba ikiguzi abayakoresha n'abayakwirakwiza cyangwa guca ikiguzi kuri gahunda yo kuyabyaza umusaruro. Kuruwa Ruje n'abatanga uburenganzira babungabunga umutwe wose, ubu nyirubwite, uburenganzira n'inyungu muri no kuri API, Itegurwa, Isubizwa n'Igarurabutumwa, Amamenyesha y'ibikorwa, Ikigega cy'amakuru n'inkomoko y'amakuru (nkuko byasobanuwe hasi). Uburenganzira bwose butagaragajwe burashinganye.", + "body": "Ushobora gukoresha ikigega cy'amakuru gusa mu gihe bihuye n'impamvu y'ubusabe bwawe ku mahame ya API, bikanaguha guhama mu bijyanye na API nk'uko byakomeje kugenda bivugururwa. Wizejwe uburenganzira bwo gukura ibyo ushaka ku rubuga, nta guhezwa, kubuzwa cyangwa guhagarikwa, ukabikoresha, ukabibyaza umusaruro ndetse ukabisakaza ku bakoresha porogaramu yawe y'ubusabe (\"Abakoresha porogaramu ba nyuma\") ku Bikorwa by'Imenyesha bifitanye isano n'inyandiko zanditswe zitegura, zigasubiza zikanagarura ubutumwa, bigahura n'igenamiterere ryihuta y'ibikorwa bya muntu biburira bituruka mu makuru, bijyanye n'amahame ya API. Ushobora gukoresha API mu gufasha ku mpamvu zitari iz'ubucuruzi, bijyanye n'amahame ya API. Ntabwo wemerewe gukoresha API mu gufasha mu ikoreshwa ry'ikigega cy'amakuru mu buryo bwo gucuruza, Amamenyesha y'ibikorwa ndetse/cyangwa Itegurwa, Isubizwa n'Igarurabutumwa, harimo nta rutangira, kongera kugurisha amakuru, gusaba ikiguzi abayakoresha n'abayakwirakwiza cyangwa guca ikiguzi kuri gahunda yo kuyabyaza umusaruro. Kuruwa Ruje n'abatanga uburenganzira babungabunga umutwe wose, ubu nyirubwite, uburenganzira n'inyungu muri no kuri API, Itegurwa, Isubizwa n'Igarurabutumwa, Amamenyesha y'ibikorwa, Ikigega cy'amakuru n'inkomoko y'amakuru (nkuko byasobanuwe hasi). Uburenganzira bwose butagaragajwe burashinganye.", "heading": "Uruhushya n'imbibi:" }, "overview": { diff --git a/resources/lang/sw.json b/resources/lang/sw.json index c010d28..c6c1b63 100644 --- a/resources/lang/sw.json +++ b/resources/lang/sw.json @@ -441,9 +441,9 @@ "immediate": "Mara moja", "warning": "Onyo", "anticipated": "Inatarajiwa", - "assess_and_plan":"Tathmini na Panga", - "mitigate_risks":"Punguza Hatari", - "prepare_to_respond":"Jitayarishe Kujibu", + "assess_and_plan": "Tathmini na Panga", + "mitigate_risks": "Punguza Hatari", + "prepare_to_respond": "Jitayarishe Kujibu", "recover": "Pona" }, "content": { @@ -526,7 +526,7 @@ "seasonalForecast_extra": "Utabiri wa msimu ni taarifa ya utabiri wa tukio lenye hatari. Hatua zilizochukuliwa ni kutathmini uwezekano wa hatari na kupanga shughuli za kupunguza hatari na kulinda kaya.", "watch": "Tazama", "watch_help": "Jitayarishe kujibu", - "watch_extra": "Saa hutolewa wakati hatari ya tukio hatari imeongezeka sana, lakini kutokea kwake, eneo lake, na\/au muda bado haujajulikana. Imekusudiwa kutoa wakati wa kutosha kwa vitendo vya kinga na maandalizi ya kujibu.", + "watch_extra": "Saa hutolewa wakati hatari ya tukio hatari imeongezeka sana, lakini kutokea kwake, eneo lake, na/au muda bado haujajulikana. Imekusudiwa kutoa wakati wa kutosha kwa vitendo vya kinga na maandalizi ya kujibu.", "warning": "Onyo", "warning_help": "Jitayarishe kujibu", "warning_extra": "Onyo linatolewa wakati tukio hatari linatokea, linakaribia, au lina uwezekano mkubwa sana wa kutokea. Inamaanisha hali zinaleta tishio kwa maisha au mali. Watu walio katika njia ya hatari hii wanahitaji kuchukua hatua za kinga.", @@ -558,7 +558,8 @@ "content_edit_title": "Hariri Maudhui", "content_add_hazard_title": "Ongeza Hatari", "key_message_label": "Kichwa cha ujumbe muhimu", - "supporting_message_label": "Ujumbe wa usaidizi" + "supporting_message_label": "Ujumbe wa usaidizi", + "mitigate_risk": "Punguza Hatari" }, "message_editor": { "title": "Mhariri wa Sifa", @@ -618,7 +619,7 @@ "bad_request_error_codes": { "30001": "Vichwa vya safu wima havilingani na kiolezo", "30002": "Jina la sifa, ujumbe au url hazipo", - "30003": "Url isiyo halali - tafadhali hakikisha itifaki iko, kwa mfano https: \/\/", + "30003": "Url isiyo halali - tafadhali hakikisha itifaki iko, kwa mfano https: //", "40001": "Nambari batili ya nchi imetolewa", "40002": "Jamii iliyochaguliwa hailingani na jamii kwa faili iliyochaguliwa", "40003": "Tarehe ambayo faili iliyochaguliwa ilitolewa imekuwa na hitilafu na uingizaji hauwezi kukamilika" @@ -689,7 +690,7 @@ }, "landing": { "strapline": "Huduma ya Hifadhidata ya Ujumbe wa Usalama", - "strapline_part_2": "Ujumbe muhimu wa Usalama wa Msalaba Mwekundu \/ Hilali Nyekundu ya Kimataifa", + "strapline_part_2": "Ujumbe muhimu wa Usalama wa Msalaba Mwekundu / Hilali Nyekundu ya Kimataifa", "head_1": "Usalama wa IFRC", "head_2": "Hifadhidata ya Ujumbe", "head_text_1": "Ujumbe wa usalama unaotegemea Ufahamu wa Umma wa IFRC na", @@ -744,7 +745,7 @@ "fake_alert_heading": "Onyo la Baridi Kali Sana", "fake_alert_description": "Lakini hii inahitaji tofauti rahisi na nyepesi. Kwa wakati wa bure, wakati nguvu zetu.", "fake_alert_time": "SAA 1 ILIYOPITA", - "fake_alert_time_exact": "tarehe 05\/02\/18 saa 05:15 CT", + "fake_alert_time_exact": "tarehe 05/02/18 saa 05:15 CT", "use_cases": { "heading": "Jifunze Zaidi", "first_heading": "Jinsi Inavyofanya Kazi", @@ -785,7 +786,7 @@ }, "data_preview": { "heading": "Ujumbe wa Usalama", - "sub_heading": "Jisajili na uangalie ujumbe muhimu wa hatua kutoka kwa Mashirika ya Kitaiifa ya Msalaba Mwekundu \/ Hilali Nyekundu kote ulimwenguni" + "sub_heading": "Jisajili na uangalie ujumbe muhimu wa hatua kutoka kwa Mashirika ya Kitaiifa ya Msalaba Mwekundu / Hilali Nyekundu kote ulimwenguni" }, "footer": { "terms_conditions": "Sheria na Masharti", @@ -841,10 +842,10 @@ "industries": { "media": "Vyombo vya habari", "emergency": "Usimamizi wa Dharura", - "non_profit": "Lisilo la Faida \/ Shirika Lisilo la Kiserikali", + "non_profit": "Lisilo la Faida / Shirika Lisilo la Kiserikali", "humanitarian": "Shirika Kibinadamu", - "red_cross": "Msalaba Mwekundu \/ Hilali Nyekundu", - "education": "Elimu \/ Taaluma", + "red_cross": "Msalaba Mwekundu / Hilali Nyekundu", + "education": "Elimu / Taaluma", "gov": "Wakala wa Serikali", "other": "Nyingine" }, @@ -859,9 +860,9 @@ "body": "Sheria za Wilaya ya Columbia zitasimamia haki zote na majukumu chini ya Mkataba huu, bila kutekeleza kanuni zozote za mgongano wa sheria.", "heading": "Sheria Inayotumika:" }, - "body": "Una jukumu la kudumisha usiri na usalama wa ufunguo wa usajili uliotolewa na Shirika la Msalaba Mwekundu kwako. Unawajibika kudumisha uwiiano na API, kama inavyosasishwa mara kwa mara, ili kuendelea kupokea Milisho ya Data. Shirika la Msalaba Mwekundu linaweza kutoa toleo zilizosasishwa za API na Milisho ya Data kwa hiari yake. Matoleo mapya yanaweza yasioane na utekelezaji uliopita, na Unakubali kutumia toleo la hivi karibuni la Milisho ya Data wakati wote.\n\nUnakubali kutobadilisha, kusambaza, kutenganisha, au kubadilisha kihandisi sehemu yoyote ya API au programu yoyote ya Shirika la Msalaba Mwekundu.\n\nUsitumie API au Milisho ya Data kwa njia ambayo inazidi kiwango cha ombi kinachofaa au inatumiwa kupindukia au matumizi mabaya, kama ilivyoamuliwa na Shirika la Msalaba Mwekundu kwa hiari yake pekee.\n\nUsitumie API au Milisho ya Data kwa njia isiyo halali, inayopotosha, ya kupuuza, yenye nia mbaya, inayokusudia kusababisha madhara, au inayodhuru Msalaba Mwekundu, watoa huduma wake, watoa huduma wake, au mtu mwingine yeyote, kama ilivyoamuliwa na Shirika la Msalaba Mwekundu kwa hiari yake pekee.\n\nShirila la Msalaba Mwekundu linaweza kufuatilia matumizi yako ya API na Milisho ya Data. Unaweza usitumie njia yoyote ya kiufundi kuingiliana na ufuatiliaji kama huo, na Msalaba Mwekundu inaweza kutumia njia za kiufundi kushinda uingiliaji wowote kama huo.\n\nMatumizi ya utayari, Jibu, na Rudisha Ujumbe itawasilishwa tu kama yalivyo sasa au iliyosasishwa kwa mpangilio wa dharura wa wakati huo wa Tahadhari ya Tukio inayohusiana, na utasasisha binafsi Kutayarisha, Kujibu, na jumbe za kurudi juu ya sasisho lolote la Milisho ya Data na\/au Tahadhari zinazohusiana za Tukio la Msalaba Mwekundu.\n\nUtayari binafsi, Jibu na Ujumbe wa Nafuu Unaotumia utahusishwa tu na eneo la kijiografia ambalo limetolewa. Ikiwa Jumbe za Utayari, Jibu, na Nafuu zinajumuisha marejeleo kwa chanzo kama vile Shirika la Msalaba Mwekundu la Marekani au shirika lingine la kitaifa la Msalaba Mwekundu au Hilali Nyekundu (kila moja likiwa na \"Marejeleo ya Chanzo\"), Utajumuisha Marejeleo ya Chanzo yanayohusishwa na kila Jumbe wa Utayari, Jibu, na Nafuu katika fomu iliyotolewa kwenye Milisho ya Data. Hutatumia tena Marejeleo ya Chanzo chochote.\n\nUnaweza usitafsiri Milisho ya Data, Tahadhari za Tukio, na\/au Jumbe za Utayari, Jibu, na Nafuu zilizorudi katika lugha nyingine yoyote, kufanya matumizi yoyote, uhariri au marekebisho, au kubadilisha maana ya Milisho ya Data, Tahadhari za Tukio na\/au Jumbe za Utayari, Jibu, na Nafuu.\n\nLazima uhakikishe kuwa Malisho ya Takwimu, yanabaki katika milki yako pekee na\/au udhibiti.\n\nUnaweza usiruhusu Tahadhari za Tukio na Andaa, Jibu, na jumbe za kurudi uliowasilishwa kwa Watumiaji wa Mwisho kuingiza matangazo yoyote au udhamini.\n\nUnaweza usifanye kumbukumbu yoyote ya Milisho ya Takwimu nzima au kwa sehemu.", + "body": "Una jukumu la kudumisha usiri na usalama wa ufunguo wa usajili uliotolewa na Shirika la Msalaba Mwekundu kwako. Unawajibika kudumisha uwiiano na API, kama inavyosasishwa mara kwa mara, ili kuendelea kupokea Milisho ya Data. Shirika la Msalaba Mwekundu linaweza kutoa toleo zilizosasishwa za API na Milisho ya Data kwa hiari yake. Matoleo mapya yanaweza yasioane na utekelezaji uliopita, na Unakubali kutumia toleo la hivi karibuni la Milisho ya Data wakati wote.\n\nUnakubali kutobadilisha, kusambaza, kutenganisha, au kubadilisha kihandisi sehemu yoyote ya API au programu yoyote ya Shirika la Msalaba Mwekundu.\n\nUsitumie API au Milisho ya Data kwa njia ambayo inazidi kiwango cha ombi kinachofaa au inatumiwa kupindukia au matumizi mabaya, kama ilivyoamuliwa na Shirika la Msalaba Mwekundu kwa hiari yake pekee.\n\nUsitumie API au Milisho ya Data kwa njia isiyo halali, inayopotosha, ya kupuuza, yenye nia mbaya, inayokusudia kusababisha madhara, au inayodhuru Msalaba Mwekundu, watoa huduma wake, watoa huduma wake, au mtu mwingine yeyote, kama ilivyoamuliwa na Shirika la Msalaba Mwekundu kwa hiari yake pekee.\n\nShirila la Msalaba Mwekundu linaweza kufuatilia matumizi yako ya API na Milisho ya Data. Unaweza usitumie njia yoyote ya kiufundi kuingiliana na ufuatiliaji kama huo, na Msalaba Mwekundu inaweza kutumia njia za kiufundi kushinda uingiliaji wowote kama huo.\n\nMatumizi ya utayari, Jibu, na Rudisha Ujumbe itawasilishwa tu kama yalivyo sasa au iliyosasishwa kwa mpangilio wa dharura wa wakati huo wa Tahadhari ya Tukio inayohusiana, na utasasisha binafsi Kutayarisha, Kujibu, na jumbe za kurudi juu ya sasisho lolote la Milisho ya Data na/au Tahadhari zinazohusiana za Tukio la Msalaba Mwekundu.\n\nUtayari binafsi, Jibu na Ujumbe wa Nafuu Unaotumia utahusishwa tu na eneo la kijiografia ambalo limetolewa. Ikiwa Jumbe za Utayari, Jibu, na Nafuu zinajumuisha marejeleo kwa chanzo kama vile Shirika la Msalaba Mwekundu la Marekani au shirika lingine la kitaifa la Msalaba Mwekundu au Hilali Nyekundu (kila moja likiwa na \"Marejeleo ya Chanzo\"), Utajumuisha Marejeleo ya Chanzo yanayohusishwa na kila Jumbe wa Utayari, Jibu, na Nafuu katika fomu iliyotolewa kwenye Milisho ya Data. Hutatumia tena Marejeleo ya Chanzo chochote.\n\nUnaweza usitafsiri Milisho ya Data, Tahadhari za Tukio, na/au Jumbe za Utayari, Jibu, na Nafuu zilizorudi katika lugha nyingine yoyote, kufanya matumizi yoyote, uhariri au marekebisho, au kubadilisha maana ya Milisho ya Data, Tahadhari za Tukio na/au Jumbe za Utayari, Jibu, na Nafuu.\n\nLazima uhakikishe kuwa Malisho ya Takwimu, yanabaki katika milki yako pekee na/au udhibiti.\n\nUnaweza usiruhusu Tahadhari za Tukio na Andaa, Jibu, na jumbe za kurudi uliowasilishwa kwa Watumiaji wa Mwisho kuingiza matangazo yoyote au udhamini.\n\nUnaweza usifanye kumbukumbu yoyote ya Milisho ya Takwimu nzima au kwa sehemu.", "contact": "Tafadhali wasiliana na Shirika la Msalaba Mwekundu kwa {0} kwa maswali yoyote kuhusu API.", - "disclaimer": "API na Malisho ya Data hutolewa KWA MADHUMUNI YA HABARI NA ELIMU PEKEE, NA kwa msingi wa 'kama ilivyo' na 'kama inapatikana'. Shirika la Msalaba Mwekundu halifanyi uwakilishi au dhamana ya aina yoyote, iliyoelezwa au iliyomaanishwa. Shirika la Msalaba Mwekundu linakataa dhamana zote, zilizoelezwa au kumaanishwa, zikiwemo na lakini haziishii kwa dhamana za kumaanishwa za uuzaji na ubora kwa kusudi fulani. Shirika la Msalaba Mwekundu na wafanyakazi wake, maafisa, magavana na mawakala na watoa leseni hawatawajibika kwa uharibifu wa aina yoyote unaotokana na matumizi ya API, Mlisho wa Data, Tahadhari za Tukio, na\/au jumbe za Utayari, Jibu, na Nafuu ukiwemo lakini usioishia kwa madhara ya moja kwa moja, yasiyo ya moja kwa moja, ya bahati mbaya, ya adhabu na ya matokeo.\n\nShirika la Msalaba Mwekundu halihakiki mfuatano, usahihi, ukweli au ukamilifu wa API, Mlisho ya Data, Tahadhari ya Tukio na\/au Kuandaa, Kujibu, na Jumbe za nafuu na hautawajibika kwa njia yoyote kwako au kwa Watumiaji wako wa mwisho au kwa mtu yeyote, ikiwemo bila kikomo, kwa ucheleweshaji wowote, kukosa usahihi, makosa au upungufu, kwa API husika, Mlisho wa Data, Tahadhari ya Tukio na \/ au Andaa, Jibu, na jumbe za nafuu zilizotolewa hapa chini.", + "disclaimer": "API na Malisho ya Data hutolewa KWA MADHUMUNI YA HABARI NA ELIMU PEKEE, NA kwa msingi wa 'kama ilivyo' na 'kama inapatikana'. Shirika la Msalaba Mwekundu halifanyi uwakilishi au dhamana ya aina yoyote, iliyoelezwa au iliyomaanishwa. Shirika la Msalaba Mwekundu linakataa dhamana zote, zilizoelezwa au kumaanishwa, zikiwemo na lakini haziishii kwa dhamana za kumaanishwa za uuzaji na ubora kwa kusudi fulani. Shirika la Msalaba Mwekundu na wafanyakazi wake, maafisa, magavana na mawakala na watoa leseni hawatawajibika kwa uharibifu wa aina yoyote unaotokana na matumizi ya API, Mlisho wa Data, Tahadhari za Tukio, na/au jumbe za Utayari, Jibu, na Nafuu ukiwemo lakini usioishia kwa madhara ya moja kwa moja, yasiyo ya moja kwa moja, ya bahati mbaya, ya adhabu na ya matokeo.\n\nShirika la Msalaba Mwekundu halihakiki mfuatano, usahihi, ukweli au ukamilifu wa API, Mlisho ya Data, Tahadhari ya Tukio na/au Kuandaa, Kujibu, na Jumbe za nafuu na hautawajibika kwa njia yoyote kwako au kwa Watumiaji wako wa mwisho au kwa mtu yeyote, ikiwemo bila kikomo, kwa ucheleweshaji wowote, kukosa usahihi, makosa au upungufu, kwa API husika, Mlisho wa Data, Tahadhari ya Tukio na / au Andaa, Jibu, na jumbe za nafuu zilizotolewa hapa chini.", "entire_agreement": { "body": "Masharti ya API yanajumuisha makubaliano kamili na ya kipekee kati ya Shirika la Msalaba Mwekundu na Wewe kwa kuzingatia mada hii na inachukua nafasi ya uelewa wa awali wa maongezi au maandishi, mawasiliano, au makubaliano ambayo hayajaingizwa hapa. Shirika la Msalaba Mwekundu lina haki ya kurekebisha au kubatilisha mkataba huu wakati wowote.", "heading": "Mkataba Mzima:" @@ -869,7 +870,7 @@ "heading": "MKATABA WA UTOAJI LESENI KWA MTUMIAJI WA MWISHO WA API", "intro": "KUBALI: KWA KUTUMIA HUDUMA AU KUWEKA ALAMA YA TIKI KWENYE KISANDUKU, MTUMIAJI ANAKUBALI KUFUNGWA NA MKATABA HUU.\n\nAPI ni zana inayokuruhusu (\"Wewe\") kupata na kutumia milisho ya data iliyotolewa na Shirika la Msalaba Mwekundu ikiwemo mlisho wa hali ya hewa ya ulimwengu na onyo la tukio la maafa na arifa za kutazama (\"Tahadhari za Tukio\") na mlisho wa hatua zinazoweza kutekelezwa ujumbe juu ya jinsi ya kujiandaa kwa hatari za mitaa kwa aina ya hatari na dharura (\"Jumbe za Utayari, Jibu, na Nafuu\", na kwa pamoja na Tahadhari za Tukio, \"Milisho ya Data\"). Jumbe za Utayari, Jibu, na Nafuu zimekusudiwa kuandamana na Tahadhari za Tukio au onyo lingine na matangazo ya kutazama yanayohusiana na tukio la hali ya hewa na maafa katika programu yako mwenyewe. Matumizi yako ya Milisho ya Data yanasimamiwa na Masharti ya API.", "license_limitations": { - "body": "Unaweza kutumia Milisho ya Data tu kwa kushirikiana na programu yako mwenyewe kulingana na Masharti ya API, na kama Unadumisha utangamano na API, kama inavyosasishwa mara kwa mara. Umepewa haki isiyo ya kipekee, iliyo na kikomo na inayoweza kukataliwa ya kupakua, kutumia, kuzalisha na kusambaza kwa watumiaji wa mwisho wa programu yako mwenyewe (\"Watumiaji wa Mwisho\") Tahadhari za Tukio na yaliyomo kumuktadhisha Jumbe za Utayari, Kujibu, na Nafuu kushirikiana na upangaji wa dharura wa Arifa za Tukio za kibinafsi kutoka kwa Milisho ya Data, kulingana na Masharti ya API. Unaweza tu kutumia API kuwezesha matumizi yasiyo ya kibiashara ya Milisho ya Data kulingana na Masharti ya API. Kwa tukio lolote huenda usitumie API kuwezesha matumizi ya kibiashara ya Milisho ya Data, Tahadhari za Tukio na \/ au Jumbe za Utayari, Jibu, na Nafuu, ikiwemo bila kikomo, kuziuza tena, kutoza kuzifikia, kutoza kuzisambaza tena, au kutoza kuunda kazi zinazotokana na msingi wao. Shirika la msalaba mwekundu na watoa leseni zake wanadumisha jina, umiliki, haki na maslahi yote kwa API, Jumbe za Utayari, Jibu, na Nafuu, Tahadhari za Tukio, Mlisho wa Data na Marejeleo ya Chanzo (kama ilivyoelezwa hapa chini) ndani yake. Haki zote ambazo hazijatolewa kwa kuelezwa zimehifadhiwa.", + "body": "Unaweza kutumia Milisho ya Data tu kwa kushirikiana na programu yako mwenyewe kulingana na Masharti ya API, na kama Unadumisha utangamano na API, kama inavyosasishwa mara kwa mara. Umepewa haki isiyo ya kipekee, iliyo na kikomo na inayoweza kukataliwa ya kupakua, kutumia, kuzalisha na kusambaza kwa watumiaji wa mwisho wa programu yako mwenyewe (\"Watumiaji wa Mwisho\") Tahadhari za Tukio na yaliyomo kumuktadhisha Jumbe za Utayari, Kujibu, na Nafuu kushirikiana na upangaji wa dharura wa Arifa za Tukio za kibinafsi kutoka kwa Milisho ya Data, kulingana na Masharti ya API. Unaweza tu kutumia API kuwezesha matumizi yasiyo ya kibiashara ya Milisho ya Data kulingana na Masharti ya API. Kwa tukio lolote huenda usitumie API kuwezesha matumizi ya kibiashara ya Milisho ya Data, Tahadhari za Tukio na / au Jumbe za Utayari, Jibu, na Nafuu, ikiwemo bila kikomo, kuziuza tena, kutoza kuzifikia, kutoza kuzisambaza tena, au kutoza kuunda kazi zinazotokana na msingi wao. Shirika la msalaba mwekundu na watoa leseni zake wanadumisha jina, umiliki, haki na maslahi yote kwa API, Jumbe za Utayari, Jibu, na Nafuu, Tahadhari za Tukio, Mlisho wa Data na Marejeleo ya Chanzo (kama ilivyoelezwa hapa chini) ndani yake. Haki zote ambazo hazijatolewa kwa kuelezwa zimehifadhiwa.", "heading": "Leseni na Vikwazo:" }, "overview": { @@ -888,17 +889,17 @@ "two": "Kukwepa au kurekebisha funguo zozote au njia za usalama zilizotumiwa na Shirika la Msalaba Mwekundu au API, ikiwemo bila kikomo teknolojia zozote za uthibitishaji.", "three": "Kuomba, kukusanya, kutafuta au vinginevyo kupata ufikiaji wa majina ya kuingia, nywila au hati zingine za uthibitishaji wa Msalaba Mwekundu isipokuwa ile uliyopewa kwa akaunti yako mwenyewe.", "four": "Kusema au kumaanisha ushirika, udhamini au kuidhinishwa na Shirika la Msalaba Mwekundu au asasi au shirika la kitaifa lingine lolote la Msalaba Mwekundu au Hilali Nyekundu.", - "five": "Kusema au kumaanisha kuwa Unamiliki au umeunda API, Milisho ya Data, Tahadhari za Tukio na\/au Jumbe za Utayari, Jibu, na Nafuu.", + "five": "Kusema au kumaanisha kuwa Unamiliki au umeunda API, Milisho ya Data, Tahadhari za Tukio na/au Jumbe za Utayari, Jibu, na Nafuu.", "six": "Kusambaza virusi vyovyote, kasoro ya minyoo, farasi wa Trojan, au vitu vyovyote vya asili ya uharibifu." } }, - "reserve_rights": "Shirika la Msalaba Mwekundu lina haki ya kubadilisha na\/au kuacha kutoa API na Milisho ya Data nzima au sehemu, iwe kwa muda au kwa kudumu, wakati wowote bila taarifa ya awali. Kwa kuepusha mashaka, hakuna kitu hapa kinacholazimisha Shirika la Msalaba Mwekundu kufanya API yake au Milisho ya Data ipatikane kwako, na Unakubali na kukiri kuwa ufikiaji wowote upo ndani ya hiari pekee na kamili ya Shirika la Msalaba Mwekundu.", + "reserve_rights": "Shirika la Msalaba Mwekundu lina haki ya kubadilisha na/au kuacha kutoa API na Milisho ya Data nzima au sehemu, iwe kwa muda au kwa kudumu, wakati wowote bila taarifa ya awali. Kwa kuepusha mashaka, hakuna kitu hapa kinacholazimisha Shirika la Msalaba Mwekundu kufanya API yake au Milisho ya Data ipatikane kwako, na Unakubali na kukiri kuwa ufikiaji wowote upo ndani ya hiari pekee na kamili ya Shirika la Msalaba Mwekundu.", "severability": { "body": "Ubatili wa muda wowote au utoaji wa Masharti ya API hautaathiri uhalali wa kifungu kingine chochote.", "heading": "Utengamano na Msamaha:" }, "suspension": { - "body": "Shirika la Msalaba Mwekundu lina haki ya kusimamisha au kusitisha ufikiaji wako ikiwa litaona, kwa hiari yake pekee, kwamba Unahusika na matumizi yasiyoruhusiwa ya API au Milisho ya Data kama ilivyoainishwa katika Masharti ya API au kwamba unatumia API au Milisho ya Data katika shughuli yoyote inayotishia \/kuhatarisha usalama na\/au usalama wa mtu yeyote au mitandao ya Msalaba Mwekundu.", + "body": "Shirika la Msalaba Mwekundu lina haki ya kusimamisha au kusitisha ufikiaji wako ikiwa litaona, kwa hiari yake pekee, kwamba Unahusika na matumizi yasiyoruhusiwa ya API au Milisho ya Data kama ilivyoainishwa katika Masharti ya API au kwamba unatumia API au Milisho ya Data katika shughuli yoyote inayotishia /kuhatarisha usalama na/au usalama wa mtu yeyote au mitandao ya Msalaba Mwekundu.", "heading": "Kusimamishwa au Kukomeshwa:" } }, diff --git a/resources/lang/th.json b/resources/lang/th.json index 56f09d5..d0bf1d3 100644 --- a/resources/lang/th.json +++ b/resources/lang/th.json @@ -441,9 +441,9 @@ "immediate": "ทันที", "warning": "คำเตือน", "anticipated": "คาดการณ์", - "assess_and_plan":"ประเมินและวางแผน", - "mitigate_risks":"ลดความเสี่ยง", - "prepare_to_respond":"เตรียมพร้อมตอบสนอง", + "assess_and_plan": "ประเมินและวางแผน", + "mitigate_risks": "ลดความเสี่ยง", + "prepare_to_respond": "เตรียมพร้อมตอบสนอง", "recover": "ฟื้นฟู" }, "content": { @@ -526,7 +526,7 @@ "seasonalForecast_extra": "การพยากรณ์ฤดูกาลเป็นรายงานการทำนายเหตุการณ์อันตราย มีดำเนินการเพื่อประเมินความเสี่ยงที่เป็นไปได้และวางแผนกิจกรรมเพื่อลดความเสี่ยงและปกป้องเคหะสถาน", "watch": "ดู", "watch_help": "เตรียมการตอบสนอง", - "watch_extra": "ออกการดูเมื่อความเสี่ยงของเหตุการณ์อันตรายได้เพิ่มขึ้นอย่างสำคัญ แต่การเกิดเหตุการณ์ สถานที่ตั้ง และ\/หรือเวลา ยังคงไม่แน่นอน ซึ่งมีวัถุประสงค์เพื่อให้เวลาเพียงพอในการปกป้องและเตรียมการตอบสนอง", + "watch_extra": "ออกการดูเมื่อความเสี่ยงของเหตุการณ์อันตรายได้เพิ่มขึ้นอย่างสำคัญ แต่การเกิดเหตุการณ์ สถานที่ตั้ง และ/หรือเวลา ยังคงไม่แน่นอน ซึ่งมีวัถุประสงค์เพื่อให้เวลาเพียงพอในการปกป้องและเตรียมการตอบสนอง", "warning": "คำเตือน", "warning_help": "เตรียมการตอบสนอง", "warning_extra": "ออกการแจ้งเตือนเมื่อเกิดเหตุการณ์อันตรายที่ใกล้เข้ามา หรือการเกิดเหตุการณ์อันตรายมีความเป็นไปได้สูง ซึ่งหมายถึงสภาวะที่แสดงถึงอันตรายต่อชีวิตหรือทรัพย์สิน คนที่อยู่ในเส้นทางอันตรายที่จำเป็นเพื่อใช้มาตรการป้องกัน", @@ -558,7 +558,8 @@ "content_edit_title": "แก้ไขเนื้อหา", "content_add_hazard_title": "เพิ่มอันตราย", "key_message_label": "ชื่อข้อความสำคัญ", - "supporting_message_label": "ข้อความสนับสนุน" + "supporting_message_label": "ข้อความสนับสนุน", + "mitigate_risk": "ลดความเสี่ยง" }, "message_editor": { "title": "ตัวแก้ไขการให้เครดิต", @@ -618,7 +619,7 @@ "bad_request_error_codes": { "30001": "หัวข้อคอลัมน์ไม่ตรงกับแม่แบบ", "30002": "ไม่มีชื่อการระบุแหล่งที่มา ข้อความหรือ ulr", - "30003": "url การระบุแหล่งที่มาไม่ถูกต้อง - โปรดตรวจสอบว่าโพรโตคอลเป็นปัจจุบัน เช่น https:\/\/", + "30003": "url การระบุแหล่งที่มาไม่ถูกต้อง - โปรดตรวจสอบว่าโพรโตคอลเป็นปัจจุบัน เช่น https://", "40001": "รหัสประเทศที่ให้ไว้ไม่ถูกต้อง", "40002": "ชุมชนที่เลือกไม่ตรงกับชุมชนสำหรับไฟล์ที่เลือก", "40003": "การนำออกวันที่ของไฟล์ที่เลือกผิดรูปแบบและการนำเข้าไม่สำเร็จ" @@ -689,7 +690,7 @@ }, "landing": { "strapline": "บริการฐานข้อมูลข้อความความปลอดภัย", - "strapline_part_2": "ข้อความเพื่อความปลอดภัยที่สำคัญของสภากาชาด \/ สภาเสี้ยววงเดือนแดงทั่วโลก", + "strapline_part_2": "ข้อความเพื่อความปลอดภัยที่สำคัญของสภากาชาด / สภาเสี้ยววงเดือนแดงทั่วโลก", "head_1": "IFRC ความปลอดภัย", "head_2": "ฐานข้อมูลข้อความ", "head_text_1": "ข้อความความปลอดภัยตามทรัพยากรการสร้างความตระหนักรู้และการศึกษา", @@ -744,7 +745,7 @@ "fake_alert_heading": "การแจ้งเตือนสภาวะอากาศเย็นจัด", "fake_alert_description": "Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est.", "fake_alert_time": "1 ชั่วโมงที่แล้ว", - "fake_alert_time_exact": "05\/02\/18 เวลา 05:15 CT", + "fake_alert_time_exact": "05/02/18 เวลา 05:15 CT", "use_cases": { "heading": "ข้อมูลเพิ่มเติม", "first_heading": "วิธีการทำงาน", @@ -785,7 +786,7 @@ }, "data_preview": { "heading": "ข้อความความปลอดภัย", - "sub_heading": "ลงทะเบียนและดูข้อความสำคัญในการปฎิบัติจากชุมชนสภากาชาด \/ สภาเสี้ยววงเดือนแดงทั่วโลก" + "sub_heading": "ลงทะเบียนและดูข้อความสำคัญในการปฎิบัติจากชุมชนสภากาชาด / สภาเสี้ยววงเดือนแดงทั่วโลก" }, "footer": { "terms_conditions": "ข้อกำหนดและเงื่อนไข", @@ -859,9 +860,9 @@ "body": "สิทธิและข้อผูกมัดภายใต้ข้อตกลงนี้ล้วนอยู่ในกรอบกฎหมายของเขตโคลัมเบีย โดยที่ไม่มีผลต่อหลักการการขัดกันของกฎหมาย", "heading": "กฎหมายที่บังคับที่ใช้ได้" }, - "body": "คุณมีหน้าที่รับผิดชอบในการรักษาความลับและความปลอดภัยของรหัสการลงทะเบียนที่กาชาดมอบให้คุณ คุณมีหน้าที่รับผิดชอบในการรักษาความสอดคล้องของข้อมูลกับ API ซึ่งจะถูกอัพเดตอยู่เรื่อยๆ เพื่อที่จะรับ Data Feeds ต่อไป กาชาดอาจเปิดเผย API และ Data Feeds เวอร์ชั่นที่อัพเดตแล้ว ตามที่กาชาดเห็นว่าเหมาะสม Data Feeds เวอร์ชั่นใหม่อาจไม่สอดรับกับนโยบายที่ใช้อยู่เดิม และคุณได้ยินยอมที่จะใช้ Data Feeds เวอร์ชั่นอัพเดตล่าสุดตลอดเวลา\n\nคุณยืนยันที่จะไม่แก้ไข แจกจ่าย แยก ถอดชิ้นส่วน หรือใช้วิศวกรรมย้อนกลับกับส่วนหนึ่งส่วนใดของ API หรือซอฟต์แวร์ใดๆ ของกาชาด\n\nคุณไม่อาจใช้ API หรือ Data Feeds ในรูปแบบที่เกินเลยจากขอบเขตที่สมเหตุที่สมผล หรือนำมาใช้อย่างไม่ถูกต้อง ทั้งนี้เป็นไปตามที่กาชาดกำหนด\n\nคุณไม่อาจใช้ API หรือ Data Feeds โดยผิดกฎหมาย ใช้ล่อลวงผู้อื่น ใช้อย่างไม่ระมัดระวัง และใช้โดยมีวัตถุประสงค์ที่เป็นภัย หรือสร้างความเสียหายต่อกาชาด ผู้ให้บริการกาชาด หรือบุคคลอื่นใด ทั้งนี้เป็นไปตามขอบข่ายที่กาชาดกำหนด\n\nกาชาดอาจตรวจสอบการใช้ API และ Data Feeds ของคุณ คุณไม่สามารถใช้เครื่องมือทางเทคโนโลยีใดๆ เพื่อแทรกแซงการตรวจสอบดังกล่าว กาชาดเองอาจใช้เครื่องมือทางเทคโนโลยีเพื่อระงับการแทรกแซงนั้น\n\nการใช้ Prepare, Respond, and Recover Messages ต้องเป็นปัจจุบันและอัพเดตตามที่ระบุไว้ใน Event Alert ที่เกี่ยวข้อง ณ ขณะนั้น และคุณต้องอัพเดต Prepare, Respond, และ Recover Messages ให้สอดคล้องกับการอัพเดต Data Feeds และ\/หรือ Event Alerts ที่เกี่ยวข้องโดยกาชาด\n\nPrepare, Respond, and Recover Messages แต่ละส่วนที่คุณใช้ต้องเกี่ยวข้องเขตพื้นที่ทางภูมิศาสตร์ที่ข้อมูลส่วนนั้นระบุมาเท่านั้น หาก Prepare, Respond, and Recover Messages มีการอ้างถึงแหล่งข้อมูลเช่น กาชาดอเมริกัน หรือองค์กรหรือสมาคมระดับชาติทางกาชาดหรือเสี้ยววงเดือนแดง โดยที่แต่ละส่วนนับถือแหล่งอ้างอิงหนึ่งๆ คุณต้องระบุแหล่งอ้างอิงที่เกี่ยวข้องกับ Prepare, Respond, and Recover Messages แต่ละแหล่งตามรูปแบบที่กำหนดไว้ใน Data Feeds คุณไม่สามารถใช้แหล่งอ้างอิง (Source Reference) เพื่อวัตถุประสงค์อื่น\n\nคุณไม่อาจแปล Data Feeds, Event Alerts และ\/หรือ Prepare, Respond, and Recover Messages เป็นภาษาอื่นใด อีกทั้งยังไม่สามารถใช้ ดัดแปลง หรือเปลี่ยนแปลงความหมายของ Data Feeds Event, Alerts และ\/หรือ Prepare, Respond, and Recover Messages\n\nคุณต้องทำให้แน่ใจว่า Data Feeds อยู่ในครอบครองหรือการควบคุมของคุณแต่ผู้เดียว\n\nคุณไม่อาจอนุญาตให้ส่ง Prepare, Respond, and Recover Messages ไปยังผู้ใช้ขั้นปลายโดยหวังผลทางการโฆษณาหรือการสนับสนุน\n\nคุณไม่อาจจัดเก็บ Data Feeds ไม่ว่าจะเป็นบางส่วนหรือทั้งหมด", + "body": "คุณมีหน้าที่รับผิดชอบในการรักษาความลับและความปลอดภัยของรหัสการลงทะเบียนที่กาชาดมอบให้คุณ คุณมีหน้าที่รับผิดชอบในการรักษาความสอดคล้องของข้อมูลกับ API ซึ่งจะถูกอัพเดตอยู่เรื่อยๆ เพื่อที่จะรับ Data Feeds ต่อไป กาชาดอาจเปิดเผย API และ Data Feeds เวอร์ชั่นที่อัพเดตแล้ว ตามที่กาชาดเห็นว่าเหมาะสม Data Feeds เวอร์ชั่นใหม่อาจไม่สอดรับกับนโยบายที่ใช้อยู่เดิม และคุณได้ยินยอมที่จะใช้ Data Feeds เวอร์ชั่นอัพเดตล่าสุดตลอดเวลา\n\nคุณยืนยันที่จะไม่แก้ไข แจกจ่าย แยก ถอดชิ้นส่วน หรือใช้วิศวกรรมย้อนกลับกับส่วนหนึ่งส่วนใดของ API หรือซอฟต์แวร์ใดๆ ของกาชาด\n\nคุณไม่อาจใช้ API หรือ Data Feeds ในรูปแบบที่เกินเลยจากขอบเขตที่สมเหตุที่สมผล หรือนำมาใช้อย่างไม่ถูกต้อง ทั้งนี้เป็นไปตามที่กาชาดกำหนด\n\nคุณไม่อาจใช้ API หรือ Data Feeds โดยผิดกฎหมาย ใช้ล่อลวงผู้อื่น ใช้อย่างไม่ระมัดระวัง และใช้โดยมีวัตถุประสงค์ที่เป็นภัย หรือสร้างความเสียหายต่อกาชาด ผู้ให้บริการกาชาด หรือบุคคลอื่นใด ทั้งนี้เป็นไปตามขอบข่ายที่กาชาดกำหนด\n\nกาชาดอาจตรวจสอบการใช้ API และ Data Feeds ของคุณ คุณไม่สามารถใช้เครื่องมือทางเทคโนโลยีใดๆ เพื่อแทรกแซงการตรวจสอบดังกล่าว กาชาดเองอาจใช้เครื่องมือทางเทคโนโลยีเพื่อระงับการแทรกแซงนั้น\n\nการใช้ Prepare, Respond, and Recover Messages ต้องเป็นปัจจุบันและอัพเดตตามที่ระบุไว้ใน Event Alert ที่เกี่ยวข้อง ณ ขณะนั้น และคุณต้องอัพเดต Prepare, Respond, และ Recover Messages ให้สอดคล้องกับการอัพเดต Data Feeds และ/หรือ Event Alerts ที่เกี่ยวข้องโดยกาชาด\n\nPrepare, Respond, and Recover Messages แต่ละส่วนที่คุณใช้ต้องเกี่ยวข้องเขตพื้นที่ทางภูมิศาสตร์ที่ข้อมูลส่วนนั้นระบุมาเท่านั้น หาก Prepare, Respond, and Recover Messages มีการอ้างถึงแหล่งข้อมูลเช่น กาชาดอเมริกัน หรือองค์กรหรือสมาคมระดับชาติทางกาชาดหรือเสี้ยววงเดือนแดง โดยที่แต่ละส่วนนับถือแหล่งอ้างอิงหนึ่งๆ คุณต้องระบุแหล่งอ้างอิงที่เกี่ยวข้องกับ Prepare, Respond, and Recover Messages แต่ละแหล่งตามรูปแบบที่กำหนดไว้ใน Data Feeds คุณไม่สามารถใช้แหล่งอ้างอิง (Source Reference) เพื่อวัตถุประสงค์อื่น\n\nคุณไม่อาจแปล Data Feeds, Event Alerts และ/หรือ Prepare, Respond, and Recover Messages เป็นภาษาอื่นใด อีกทั้งยังไม่สามารถใช้ ดัดแปลง หรือเปลี่ยนแปลงความหมายของ Data Feeds Event, Alerts และ/หรือ Prepare, Respond, and Recover Messages\n\nคุณต้องทำให้แน่ใจว่า Data Feeds อยู่ในครอบครองหรือการควบคุมของคุณแต่ผู้เดียว\n\nคุณไม่อาจอนุญาตให้ส่ง Prepare, Respond, and Recover Messages ไปยังผู้ใช้ขั้นปลายโดยหวังผลทางการโฆษณาหรือการสนับสนุน\n\nคุณไม่อาจจัดเก็บ Data Feeds ไม่ว่าจะเป็นบางส่วนหรือทั้งหมด", "contact": "หากคุณมีข้อสงสัยประการใดเกี่ยวกับ API โปรดติดต่อกาชาดที่ {0}", - "disclaimer": "API และ Data Feeds มีเพื่อวัตถุประสงค์การแจ้งข้อมูลและเพื่อการศึกษาเท่านั้น และเป็นไปตามสภาพจริงและตามสภาพที่มีอยู่เท่านั้น กาชาดไม่เป็นตัวแทนหรือให้การรับประกันในรูปแบบใดๆ ไม่ว่าโดยตรงหรือโดยนัย กาชาดขอสงวนสิทธิ์การรับประกันใดๆ ไม่ว่าจะโดยตรงหรือโดยนัย ซึ่งรวมถึงแต่ไม่จำกัดเฉพาะการรับประกันโดยนัยเกี่ยวกับสภาพสินค้าและการใช้งานเพื่อวัตถุประสงค์เฉพาะ กาชาดและลูกจ้าง พนักงาน ผู้ปกครองและตัวเอง และผู้ให้ลิขสิทธิ์จะไม่รับผิดชอบความเสียหายใดๆ ซึ่งเกิดจากการใช้ API, Data Feeds, Event Alerts และ\/หรือ Prepare, Respond, and Recover Messages ซึ่งรวมถึงแต่ไม่จำกัดเฉพาะความเสียหายที่ตามมาทางตรง ทางอ้อม โดยอุบัติเหตุ หรือโทษทัณฑ์\n\nกาชาดไม่รับประกันลำดับ ความแม่นยำ และความถูกต้องหรือความสมบูรณ์ของ API, Data Feed, Event Alert และ\/หรือ Prepare, Respond, and Recover Messages และไม่รับผิดชอบความล่าช้า ความคลาดเคลื่อน หรือข้อบกพร่องใดๆ ใน API, Data Feed, Event Alert และ\/หรือ Prepare, Respond, and Recover Messages ที่แสดงไว้ข้างต้น โดยรวมถึงแต่ไม่จำกัดเฉพาะคุณ ผู้ใช้ปลายทางของคุณ หรือบุคคลที่สาม", + "disclaimer": "API และ Data Feeds มีเพื่อวัตถุประสงค์การแจ้งข้อมูลและเพื่อการศึกษาเท่านั้น และเป็นไปตามสภาพจริงและตามสภาพที่มีอยู่เท่านั้น กาชาดไม่เป็นตัวแทนหรือให้การรับประกันในรูปแบบใดๆ ไม่ว่าโดยตรงหรือโดยนัย กาชาดขอสงวนสิทธิ์การรับประกันใดๆ ไม่ว่าจะโดยตรงหรือโดยนัย ซึ่งรวมถึงแต่ไม่จำกัดเฉพาะการรับประกันโดยนัยเกี่ยวกับสภาพสินค้าและการใช้งานเพื่อวัตถุประสงค์เฉพาะ กาชาดและลูกจ้าง พนักงาน ผู้ปกครองและตัวเอง และผู้ให้ลิขสิทธิ์จะไม่รับผิดชอบความเสียหายใดๆ ซึ่งเกิดจากการใช้ API, Data Feeds, Event Alerts และ/หรือ Prepare, Respond, and Recover Messages ซึ่งรวมถึงแต่ไม่จำกัดเฉพาะความเสียหายที่ตามมาทางตรง ทางอ้อม โดยอุบัติเหตุ หรือโทษทัณฑ์\n\nกาชาดไม่รับประกันลำดับ ความแม่นยำ และความถูกต้องหรือความสมบูรณ์ของ API, Data Feed, Event Alert และ/หรือ Prepare, Respond, and Recover Messages และไม่รับผิดชอบความล่าช้า ความคลาดเคลื่อน หรือข้อบกพร่องใดๆ ใน API, Data Feed, Event Alert และ/หรือ Prepare, Respond, and Recover Messages ที่แสดงไว้ข้างต้น โดยรวมถึงแต่ไม่จำกัดเฉพาะคุณ ผู้ใช้ปลายทางของคุณ หรือบุคคลที่สาม", "entire_agreement": { "body": "ข้อกำหนด API นี้ประกอบด้วยสัญญาที่สมบูรณ์ระหว่างกาชาดกับคุณ และให้ใช้แทนข้อตกลงทั้งหมดระหว่างคู่สัญญาที่จัดทำขึ้นก่อนหน้านี้ ไม่ว่าจะเป็นข้อตกลงทางวาจาหรือลายลักษณ์อักษร การพูดคุย หรือสัญญาใดๆ ที่ไม่รวมอยู่ในข้อกำหนดนี้ กาชาดขอสงวนสิทธิ์ในการแก้ไขหรือเพิกถอนข้อตกลงนี้เมื่อใดก็ได้", "heading": "ข้อตกลงที่สมบูรณ์" @@ -869,7 +870,7 @@ "heading": "ข้อตกลงลิขสิทธิ์ API สำหรับผู้ใช้ขั้นปลาย", "intro": "ข้อตกลง เมื่อใช้บริการหรือทำเครื่องหมายในช่อง ผู้ใช้ยอมรับข้อผูกมัดตามสัญญาฉบับนี้\n\nAPI คือเครื่องมือที่ช่วยให้คุณ (\"คุณ\") เรียกคืนและใช้ฟีดข้อมูลที่กาชาดมอบให้ ซึ่งหมายรวมฟีดเกี่ยวกับสภาพอากาศของโลก การแจ้งเตือนภัยพิบัติและการประกาศแจ้งเตือน (\"Event Alerts\") และฟีดข้อความที่เป็นรูปธรรมเกี่ยวกับการเตรียมพร้อมรับมือภัยพิบัติท้องถิ่นโดยจำแนกตามประเภทของภัยพิบัติและความฉุกเฉิน (\"Prepare, Respond, and Recover Messages”, และยังรวมถึง Event Alerts, “ Data Feeds”) ข้อความการเตรียมความพร้อม การตอบโต้ และการฟื้นฟูมีเจตนาให้ใช้ร่วมกับการแจ้งเตือนอุบัติการณ์หรือคำเตือนอื่นๆ และจับตาดูประกาศแจ้งเตือนเกี่ยวกับเรื่องสภาพอากาศและเหตุการณ์ภัยพิบัติในแอปพลิเคชันของคุณ โดยมีการกำกับดูแลการใช้ฟีดข้อมูลของคุณภายใต้ข้อกำหนด API", "license_limitations": { - "body": "คุณอาจใช้ฟีดข้อมูลร่วมกับแอปพลิเคชันของคุณเองได้ตามข้อกำหนด API เท่านั้นและให้คุณรักษาความเข้ากันได้กับ API ตามที่มีการปรับปรุงเป็นครั้งคราว คุณได้รับสิทธิ์ในการดาวน์โหลด ใช้งาน ทำซ้ำและแจกจ่ายแอปพลิเคชันของตัวคุณเองให้กับผู้ใช้ปลายทาง (“ ผู้ใช้”) ได้ในแบบไม่ผูกขาด จำกัดและสามารถเพิกถอนได้ การแจ้งเตือนอุบัติการณ์และข้อความการเตรียมความพร้อม การตอบโต้และการฟื้นฟูตามบริบทที่เกี่ยวข้องร่วมกับการตั้งค่าความเร่งด่วนในการแจ้งเตือนอุบัติการณ์แต่ละรายการจากฟีดข้อมูลภายใต้ข้อกำหนด API คุณอาจใช้ API เพื่ออำนวยสะดวกในการใช้ฟีดข้อมูลที่มิใช่ในเชิงพาณิชย์ตามข้อกำหนด API เท่านั้น คุณไม่อาจใช้ API เพื่ออำนวยความสะดวกในการใช้ฟีดข้อมูล การแจ้งเตือนอุบัติการณ์ และ\/หรือ ข้อความการเตรียมความพร้อม การตอบโต้ และการฟื้นฟูได้ในทุกกรณี รวมถึงแต่ไม่จำกัดเพียง การจำหน่ายต่อ การเรียกเก็บเงินเพื่อการเข้าใช้บริการ การเรียกเก็บเงินเพื่อการจำหน่ายจ่ายแจก หรือการเรียกเก็บเงินเพื่อสร้างผลงานลอกเลียนแบบตามผลงานเหล่านั้น สภากาชาดและผู้ให้อนุญาตคงรักษาชื่อเสียง กรรมสิทธิ์ สิทธิ์และผลประโยชน์ในและต่อ API ข้อความการเตรียมความพร้อม การตอบโต้ และการฟื้นฟู การแจ้งเตือนอุบัติการณ์ ฟีดข้อมูลและแหล่งอ้างอิงที่มา (ตามที่ระบุไว้ต่อไปนี้) ในที่นี้ ขอสงวนสิทธิ์ทั้งปวงที่ไม่ได้รับอนุญาตไว้อย่างชัดแจ้ง", + "body": "คุณอาจใช้ฟีดข้อมูลร่วมกับแอปพลิเคชันของคุณเองได้ตามข้อกำหนด API เท่านั้นและให้คุณรักษาความเข้ากันได้กับ API ตามที่มีการปรับปรุงเป็นครั้งคราว คุณได้รับสิทธิ์ในการดาวน์โหลด ใช้งาน ทำซ้ำและแจกจ่ายแอปพลิเคชันของตัวคุณเองให้กับผู้ใช้ปลายทาง (“ ผู้ใช้”) ได้ในแบบไม่ผูกขาด จำกัดและสามารถเพิกถอนได้ การแจ้งเตือนอุบัติการณ์และข้อความการเตรียมความพร้อม การตอบโต้และการฟื้นฟูตามบริบทที่เกี่ยวข้องร่วมกับการตั้งค่าความเร่งด่วนในการแจ้งเตือนอุบัติการณ์แต่ละรายการจากฟีดข้อมูลภายใต้ข้อกำหนด API คุณอาจใช้ API เพื่ออำนวยสะดวกในการใช้ฟีดข้อมูลที่มิใช่ในเชิงพาณิชย์ตามข้อกำหนด API เท่านั้น คุณไม่อาจใช้ API เพื่ออำนวยความสะดวกในการใช้ฟีดข้อมูล การแจ้งเตือนอุบัติการณ์ และ/หรือ ข้อความการเตรียมความพร้อม การตอบโต้ และการฟื้นฟูได้ในทุกกรณี รวมถึงแต่ไม่จำกัดเพียง การจำหน่ายต่อ การเรียกเก็บเงินเพื่อการเข้าใช้บริการ การเรียกเก็บเงินเพื่อการจำหน่ายจ่ายแจก หรือการเรียกเก็บเงินเพื่อสร้างผลงานลอกเลียนแบบตามผลงานเหล่านั้น สภากาชาดและผู้ให้อนุญาตคงรักษาชื่อเสียง กรรมสิทธิ์ สิทธิ์และผลประโยชน์ในและต่อ API ข้อความการเตรียมความพร้อม การตอบโต้ และการฟื้นฟู การแจ้งเตือนอุบัติการณ์ ฟีดข้อมูลและแหล่งอ้างอิงที่มา (ตามที่ระบุไว้ต่อไปนี้) ในที่นี้ ขอสงวนสิทธิ์ทั้งปวงที่ไม่ได้รับอนุญาตไว้อย่างชัดแจ้ง", "heading": "ผู้ให้อนุญาตและข้อจำกัด" }, "overview": { @@ -888,17 +889,17 @@ "two": "เพื่อหลีกเลี่ยงหรือแก้ไขคีย์หรือกลไกการรักษาความปลอดภัยใดๆ ที่ใช้โดยสภากาชาดหรือ API รวมถึงแต่ไม่จำกัดเพียงเทคโนโลยีการตรวจสอบสิทธิ์ใดๆ", "three": "เพื่อร้องขอ เก็บรวบรวม หรือขอรับสิทธิ์เข้าถึงชื่อ รหัสผ่าน หรือข้อมูลรับรองสิทธิ์เพื่อยืนยันตัวตนอื่นๆ ในการลงชื่อเข้าใช้สำหรับสภากาชาดนอกเหนือจากสิ่งที่คุณได้รับให้กับบัญชีของคุณเอง", "four": "เพื่อระบุหรือบอกเป็นนัยถึงความเกี่ยวข้อง การสนับสนุนหรือการรับรองโดยสภากาชาดหรือและสภาเสี้ยววงเดือนแดงอื่นๆ", - "five": "เพื่อระบุหรือบอกเป็นนัยว่าคุณเป็นเจ้าของหรือสร้าง API ฟีดข้อมูล การแจ้งเตือนอุบัติการณ์และ\/หรือการเตรียมความพร้อม การโต้ตอบ และการฟื้นฟู", + "five": "เพื่อระบุหรือบอกเป็นนัยว่าคุณเป็นเจ้าของหรือสร้าง API ฟีดข้อมูล การแจ้งเตือนอุบัติการณ์และ/หรือการเตรียมความพร้อม การโต้ตอบ และการฟื้นฟู", "six": "เพื่อส่งไวรัส ความบกพร่องจากเวิร์ม ม้าโทรจัน หรือสิ่งใดก็ตามที่มีลักษณะทำลายล้าง" } }, - "reserve_rights": "สภากาชาดขอสงวนสิทธิ์ในการเปลี่ยนแปลงและ\/หรือจัดเตรียม API และฟีดข้อมูลให้ทั้งหมดหรือบางส่วนอีกต่อไปไม่ว่าจะเป็นการชั่วคราวหรือถาวรเมื่อใดก็ตามโดยไม่ต้องแจ้งให้ทราบล่วงหน้า เพื่อการหลีกเลี่ยงข้อสงสัย ไม่มีสิ่งใดในที่นี้บังคับให้สภากาชาดต้องทำให้ API หรือฟีดข้อมูลพร้อมใช้งานสำหรับคุณ และคุณยินยอมและรับทราบว่าการเข้าถึงใดๆ จะอยู่ภายใต้ดุลยพินิจของสภากาชาดแต่เพียงผู้เดียว", + "reserve_rights": "สภากาชาดขอสงวนสิทธิ์ในการเปลี่ยนแปลงและ/หรือจัดเตรียม API และฟีดข้อมูลให้ทั้งหมดหรือบางส่วนอีกต่อไปไม่ว่าจะเป็นการชั่วคราวหรือถาวรเมื่อใดก็ตามโดยไม่ต้องแจ้งให้ทราบล่วงหน้า เพื่อการหลีกเลี่ยงข้อสงสัย ไม่มีสิ่งใดในที่นี้บังคับให้สภากาชาดต้องทำให้ API หรือฟีดข้อมูลพร้อมใช้งานสำหรับคุณ และคุณยินยอมและรับทราบว่าการเข้าถึงใดๆ จะอยู่ภายใต้ดุลยพินิจของสภากาชาดแต่เพียงผู้เดียว", "severability": { "body": "ความไม่สมบูรณ์หรือไม่สามารถใช้บังคับของข้อกำหนด API นั้นจะไม่ส่งผลกระทบต่อความสมบูรณ์ของบทบัญญัติอื่นใด", "heading": "การเป็นโมฆะและการสละสิทธิ์" }, "suspension": { - "body": "สภากาชาดขอสงวนสิทธิ์โดยใช้ดุลยพินิจแต่เพียงผู้เดียวในการระงับหรือยุติการเข้าใช้งานของคุณหากสภากาชาดพิจารณาเห็นว่าคุณมีส่วนเกี่ยวข้องกับการใช้ API หรือฟีดข้อมูลโดยไม่ได้รับอนุญาตตามที่ระบุไว้ในข้อกำหนด API หรือคุณกำลังใช้ API หรือฟีดข้อมูล ในกิจกรรมใดๆ ที่เป็นการคุกคาม\/ลดทอนความปลอดภัย และ\/หรือ ความมั่นคงปลอดภัยของบุคคลใดหรือเครือข่ายของสภากาชาด", + "body": "สภากาชาดขอสงวนสิทธิ์โดยใช้ดุลยพินิจแต่เพียงผู้เดียวในการระงับหรือยุติการเข้าใช้งานของคุณหากสภากาชาดพิจารณาเห็นว่าคุณมีส่วนเกี่ยวข้องกับการใช้ API หรือฟีดข้อมูลโดยไม่ได้รับอนุญาตตามที่ระบุไว้ในข้อกำหนด API หรือคุณกำลังใช้ API หรือฟีดข้อมูล ในกิจกรรมใดๆ ที่เป็นการคุกคาม/ลดทอนความปลอดภัย และ/หรือ ความมั่นคงปลอดภัยของบุคคลใดหรือเครือข่ายของสภากาชาด", "heading": "การระงับหรือการยกเลิกบริการ" } }, diff --git a/resources/lang/tr.json b/resources/lang/tr.json index 4d037b0..275b64c 100644 --- a/resources/lang/tr.json +++ b/resources/lang/tr.json @@ -441,9 +441,9 @@ "immediate": "Acil", "warning": "Uyarı", "anticipated": "Beklenen", - "assess_and_plan":"Değerlendirin ve Planlayın", - "mitigate_risks":"Riski Azaltın", - "prepare_to_respond":"Yanıt Vermeye Hazırlanın", + "assess_and_plan": "Değerlendirin ve Planlayın", + "mitigate_risks": "Riski Azaltın", + "prepare_to_respond": "Yanıt Vermeye Hazırlanın", "recover": "İyileş" }, "content": { @@ -558,7 +558,8 @@ "content_edit_title": "İçerik Düzenleme", "content_add_hazard_title": "Tehlike Ekle", "key_message_label": "Anahtar mesaj başlığı", - "supporting_message_label": "Destek mesajı" + "supporting_message_label": "Destek mesajı", + "mitigate_risk": "Riski Azaltın" }, "message_editor": { "title": "Atıf Editörü", @@ -618,7 +619,7 @@ "bad_request_error_codes": { "30001": "Sütun başlıkları şablonla eşleşmiyor", "30002": "Özellik adı, mesaj veya URL eksik", - "30003": "Özellik adı geçersiz. Lütfen protokolün var olduğunu kontrol edin, https:\/\/ gibi", + "30003": "Özellik adı geçersiz. Lütfen protokolün var olduğunu kontrol edin, https:// gibi", "40001": "Geçersiz ülke kodu girildi", "40002": "Seçilen dernek seçilen dernek dosyası ile eşleşmiyor", "40003": "Seçilen dosyanın dışa aktarım tarihi hatalı olduğu için içe aktarım tamamlanamadı" @@ -689,7 +690,7 @@ }, "landing": { "strapline": "Güvenlik Mesajı Veritabanı Hizmeti", - "strapline_part_2": "Küresel Kızılhaç \/ Kızılay Güvenlik Mesajları", + "strapline_part_2": "Küresel Kızılhaç / Kızılay Güvenlik Mesajları", "head_1": "IFRC Güvenlik", "head_2": "Mesaj Veritabanı", "head_text_1": "IFRC Halkı Bilinçlendirme ve Bilinçlendirmeye dayalı güvenlik mesajları", @@ -744,7 +745,7 @@ "fake_alert_heading": "Dondurucu Soğuk Uyarısı", "fake_alert_description": "Et harum quidem rerum facilis est et expedita distinctio. Nam libero temporare, cum soluta nobis est.", "fake_alert_time": "1 SAAT ÖNCE", - "fake_alert_time_exact": "05\/02\/18 saat 05:15 (GMT-5)", + "fake_alert_time_exact": "05/02/18 saat 05:15 (GMT-5)", "use_cases": { "heading": "Daha Fazla Bilgi", "first_heading": "Nasıl Çalışır", @@ -785,7 +786,7 @@ }, "data_preview": { "heading": "Güvenlik Mesajları", - "sub_heading": "Üye Olun ve dünya genelindeki Kızılhaç \/ Kızılay derneklerinden önemli mesajları görüntüleyin" + "sub_heading": "Üye Olun ve dünya genelindeki Kızılhaç / Kızılay derneklerinden önemli mesajları görüntüleyin" }, "footer": { "terms_conditions": "Hüküm ve Koşullar", @@ -841,10 +842,10 @@ "industries": { "media": "Medya", "emergency": "Afet ve Acil Durum Yönetimi", - "non_profit": "Kar amacı gütmeyen\/Sivil Toplum Kuruluşu", + "non_profit": "Kar amacı gütmeyen/Sivil Toplum Kuruluşu", "humanitarian": "İnsani Yardım Kuruluşu", - "red_cross": "Kızılhaç\/Kızılay", - "education": "Eğitim\/Akademi", + "red_cross": "Kızılhaç/Kızılay", + "education": "Eğitim/Akademi", "gov": "Devlet kurumu", "other": "Diğer" }, @@ -859,9 +860,9 @@ "body": "Columbia Bölgesi yasaları, herhangi bir kanun ihtilafı ilkesini yürürlüğe koymaksızın, işbu Sözleşme kapsamındaki tüm hak ve yükümlülükleri yönetecektir.", "heading": "Geçerli Kanun:" }, - "body": " Kızılhaç'ın size sağladığı giriş anahtarının gizliliği ve güvenliğinden sorumlusunuz. Yüklenen verileri almaya devam etmek için zaman zaman güncellenen arayüzün uyumluluğunu devam ettirmekten sorumlusunuz. Kızıl Haç, arayüz ve verileri güncelleme hakkını saklı tutar. Yeni sürümler önceki uygulamalarla uyumlu olmayabilir, en son güncellenen sürümünü her zaman kullanmayı kabul edersiniz.\n\nArayüzün ve Kızılhaç'ın herhangi bir parçasını ya da yazılımını değiştirmeyeceğinizi, yaymayacağınızı, kaynak koduna dönmeyeceğinizi, parçalarına ayırmayacağınızı ya da tersine mühendislik yapmayacağınızı kabul edersiniz.\n\nArayüzü ya da verileri, makul talep hacmini aşacak şekilde ya da aşırı veya kötüye kullanamazsınız. Kızılhaç bu haklarını saklı tutar.\n\nArayüzü ya da verileri, kanunsuz, yanıltıcı, ihmalkar, kötü niyetli veyahut Kızıl Haç'a ya da sağlayıcılarıcına, içerik üreticilerine, ya da başka kişilere zarar verecek şekilde kullanamazsınız. Kızıl Haç bu haklarını saklı tutar.\n\nKızıl Haç arayüzü ve verileri kullanış biçiminizi denetleyebilir. Bu denetlemeyi herhangi bir teknolojik araç ile engelleyemezsiniz ve Kızılhaç bu tür engelleri aşabilmek için başka teknik araçlar kullanabilir.\n\nHazırlık, Müdahale ve Kurtarma mesajları yalnızca ilişkili olay ikazının bir önceki aciliyet durumuna göre geçerli ya da güncellenmiş olarak sunulur, ve siz de Kızılhaç'tan gelen herhangi bir veri güncellemesi ve\/veya ilişkili olay ikazına göre bireysel olarak Hazırlık, Müdahale ve Kurtarma mesajlarında güncelleme yapmalısınız.\n\nBireysel Hazırlık, Müdahale ve Kurtarma mesajları, yalnızca belirtilen coğrafi bölge ile ilişkilendirilir. Eğer bir Hazırlık, Müdahale ve Kurtarma mesajı, Amerika Kızıl Haç ya da başka bir Kızılhaç ya da Kızılay veyahut bir milli topluluğa dair (hepsi birer \"Kaynak Referansı\"dır) bir referans içerirse, bu Kaynak Referansını her bir Hazırlık, Müdahale ve Kurtarma mesajı ile ilişkilendirerek, verilerde gösterilen şekilde belirtmelisiniz. Bu Kaynak Referansını başka şekillerde kullanamazsınız.\n\nVerileri, olay ikazlarını ve\/veya Hazırlık, Müdahale, Kurtarma mesajlarını başka bir dile çeviremez, kullanamaz, üzerinde düzenleme ya da uyarlama yapamaz, veya anlamlarını değiştiremezsiniz.\n\nVerilerin yalnızca sizin kontrolünüzde olduğundan ve güvenliğinden emin olmalısınız.\n\nOlay ikazlarının ve Hazırlık, Müdahale, Kurtarma mesajlarının, reklam ya da sponsorluk amacı ile son kullanıcıya ulaşmasına izin veremezsiniz.\n\nVerilerin tamamından ya da bir kısmından arşiv oluşturamazsınız.", + "body": " Kızılhaç'ın size sağladığı giriş anahtarının gizliliği ve güvenliğinden sorumlusunuz. Yüklenen verileri almaya devam etmek için zaman zaman güncellenen arayüzün uyumluluğunu devam ettirmekten sorumlusunuz. Kızıl Haç, arayüz ve verileri güncelleme hakkını saklı tutar. Yeni sürümler önceki uygulamalarla uyumlu olmayabilir, en son güncellenen sürümünü her zaman kullanmayı kabul edersiniz.\n\nArayüzün ve Kızılhaç'ın herhangi bir parçasını ya da yazılımını değiştirmeyeceğinizi, yaymayacağınızı, kaynak koduna dönmeyeceğinizi, parçalarına ayırmayacağınızı ya da tersine mühendislik yapmayacağınızı kabul edersiniz.\n\nArayüzü ya da verileri, makul talep hacmini aşacak şekilde ya da aşırı veya kötüye kullanamazsınız. Kızılhaç bu haklarını saklı tutar.\n\nArayüzü ya da verileri, kanunsuz, yanıltıcı, ihmalkar, kötü niyetli veyahut Kızıl Haç'a ya da sağlayıcılarıcına, içerik üreticilerine, ya da başka kişilere zarar verecek şekilde kullanamazsınız. Kızıl Haç bu haklarını saklı tutar.\n\nKızıl Haç arayüzü ve verileri kullanış biçiminizi denetleyebilir. Bu denetlemeyi herhangi bir teknolojik araç ile engelleyemezsiniz ve Kızılhaç bu tür engelleri aşabilmek için başka teknik araçlar kullanabilir.\n\nHazırlık, Müdahale ve Kurtarma mesajları yalnızca ilişkili olay ikazının bir önceki aciliyet durumuna göre geçerli ya da güncellenmiş olarak sunulur, ve siz de Kızılhaç'tan gelen herhangi bir veri güncellemesi ve/veya ilişkili olay ikazına göre bireysel olarak Hazırlık, Müdahale ve Kurtarma mesajlarında güncelleme yapmalısınız.\n\nBireysel Hazırlık, Müdahale ve Kurtarma mesajları, yalnızca belirtilen coğrafi bölge ile ilişkilendirilir. Eğer bir Hazırlık, Müdahale ve Kurtarma mesajı, Amerika Kızıl Haç ya da başka bir Kızılhaç ya da Kızılay veyahut bir milli topluluğa dair (hepsi birer \"Kaynak Referansı\"dır) bir referans içerirse, bu Kaynak Referansını her bir Hazırlık, Müdahale ve Kurtarma mesajı ile ilişkilendirerek, verilerde gösterilen şekilde belirtmelisiniz. Bu Kaynak Referansını başka şekillerde kullanamazsınız.\n\nVerileri, olay ikazlarını ve/veya Hazırlık, Müdahale, Kurtarma mesajlarını başka bir dile çeviremez, kullanamaz, üzerinde düzenleme ya da uyarlama yapamaz, veya anlamlarını değiştiremezsiniz.\n\nVerilerin yalnızca sizin kontrolünüzde olduğundan ve güvenliğinden emin olmalısınız.\n\nOlay ikazlarının ve Hazırlık, Müdahale, Kurtarma mesajlarının, reklam ya da sponsorluk amacı ile son kullanıcıya ulaşmasına izin veremezsiniz.\n\nVerilerin tamamından ya da bir kısmından arşiv oluşturamazsınız.", "contact": "Arayüz ile ilgili sorularınız için lütfen Kızılhaç'a {0} buradan ulaşınız.", - "disclaimer": "Arayüz ve veriler YALNIZCA BİLGİ VE EĞİTİM AMAÇLI, 'olduğu gibi' ve 'mevcut olduğu gibi' sağlanmaktadır. Kızıl Haç, açık veya zımni hiçbir tür beyanda bulunmaz veya garanti vermez. Kızıl Haç açık veya zımni tüm garantileri reddeder, buna satılabilirlik ve belirli bir amaca uygunluk ile ilgili zımni garantiler de dahildir ancak bunlarla sınırlı değildir. Kızıl Haç ve çalışanları, memurları, yöneticileri ve acenteleri ve lisans verenleri, arayüzün, verilerin, olay ikazlarının ve\/veya Hazırlık, Müdahale ve Kurtarma mesajları dahil ancak bunlarla sınırlı olmamak üzere kullanımından kaynaklanan herhangi bir doğrudan, dolaylı, arızi, cezai ve sonuç olarak ortaya çıkan zarardan sorumlu olmayacaktır.\n\nKızılhaç, API'nin, Veri Beslemesinin, arayüzün, verilerin, olay ikazlarının ve\/veya Hazırlık, Müdahale ve Kurtarma mesajlarının sırasını, doğruluğunu, orijinalliğini veya eksiksizliğini garanti etmez ve size veya Son Kullanıcılarınıza veya herhangi bir üçüncü kişiye karşı hiçbir şekilde sorumlu tutulamaz. Bunlarla sınırlı olmaksızın, burada belirtildiği üzere, arayüzler, veriler, olay ikazları ve\/veya Hazırlık, Müdahale ve Kurtarma mesajları hususunda, herhangi bir gecikmeden, yanlışlıktan, hatalar ve ihmallerden sorumlu tutulamaz.", + "disclaimer": "Arayüz ve veriler YALNIZCA BİLGİ VE EĞİTİM AMAÇLI, 'olduğu gibi' ve 'mevcut olduğu gibi' sağlanmaktadır. Kızıl Haç, açık veya zımni hiçbir tür beyanda bulunmaz veya garanti vermez. Kızıl Haç açık veya zımni tüm garantileri reddeder, buna satılabilirlik ve belirli bir amaca uygunluk ile ilgili zımni garantiler de dahildir ancak bunlarla sınırlı değildir. Kızıl Haç ve çalışanları, memurları, yöneticileri ve acenteleri ve lisans verenleri, arayüzün, verilerin, olay ikazlarının ve/veya Hazırlık, Müdahale ve Kurtarma mesajları dahil ancak bunlarla sınırlı olmamak üzere kullanımından kaynaklanan herhangi bir doğrudan, dolaylı, arızi, cezai ve sonuç olarak ortaya çıkan zarardan sorumlu olmayacaktır.\n\nKızılhaç, API'nin, Veri Beslemesinin, arayüzün, verilerin, olay ikazlarının ve/veya Hazırlık, Müdahale ve Kurtarma mesajlarının sırasını, doğruluğunu, orijinalliğini veya eksiksizliğini garanti etmez ve size veya Son Kullanıcılarınıza veya herhangi bir üçüncü kişiye karşı hiçbir şekilde sorumlu tutulamaz. Bunlarla sınırlı olmaksızın, burada belirtildiği üzere, arayüzler, veriler, olay ikazları ve/veya Hazırlık, Müdahale ve Kurtarma mesajları hususunda, herhangi bir gecikmeden, yanlışlıktan, hatalar ve ihmallerden sorumlu tutulamaz.", "entire_agreement": { "body": "Bu Sözleşme, burada kapsanan konularla ilgili olarak Kızılhaç ile sizin aranızdaki anlaşmanın tamamını teşkil eder ve burada özellikle yer almayan önceki sözlü veya yazılı anlaşmaların, beyanların veya anlayışların yerini alır. Kızılhaç, iş bu sözleşmeyi istediği herhangi bir zamanda herhangi bir gerekçe göstermeksizin feshetme hakkına sahiptir.", "heading": "Sözleşmenin Tamamı:" @@ -869,7 +870,7 @@ "heading": "ARAYÜZ VE KULLANICI LİSANS ANLAŞMASI", "intro": "HİZMET KULLANARAK VEYA KUTUCUĞU İŞARETLEYEREK, BU SÖZLEŞMENİN KAYIT VE KOŞULLARINA BAĞLI KALMAYI KABUL EDERSİNİZ.\n\nArayüz, size (\"Siz\"), küresel hava durumu ve afet olay uyarısı beslemesi ve izleme bildirimleri (\"Olay Uyarıları\") dahil olmak üzere Kızıl Haç tarafından sunulan veri akışlarını almanıza, tehlike türüne, aciliyetine göre yerel tehlikelere nasıl hazırlanılacağına dair eyleme geçirilebilir ve bağlamsallaştırılmış mesajlar beslemesini kullanmanıza olanak tanıyan bir araç sağlayacaktır. (\"Hazırlık, Müdahale ve Kurtarma Mesajları\" ve toplu olarak Olay Uyarıları, \"Veri Beslemeleri\"). Hazırla, Yanıtla ve Kurtar Mesajları, kendi uygulamanızda Etkinlik Uyarılarına veya hava durumu ve felaket olaylarıyla ilişkili diğer uyarılara eşlik etmek ve bildirimleri izlemek için tasarlanmıştır. Veri Beslemelerini kullanımınız API Koşullarına tabidir.", "license_limitations": { - "body": "Veri Akışını yalnızca, API hükümlerine bağlı olarak kendi uygulamanız ile zaman zaman güncellenen API'ye uygunluğunuz göz önünde bulundurularak kullanabilirsiniz. Olay ikazlarını ve arayüz şartlarına tabi olarak verilerden gelen bireysel olay ikazlarının aciliyet ayarıyla ilgili, bağlamsal Hazırlık, Müdahale ve Kurtarma mesajlarınızı, son kullanıcılarınıza, özel olmayan, sınırlı ve iptal edilebilir indirme, kullanım, çoğaltma ve dağıtma hakkına sahipsiniz. API'yi yalnızca Veri Akışlarının ticari olmayan kullanımlarını API Koşullarına uygun olarak kolaylaştırmak için kullanabilirsiniz. Veri Beslemelerinin, Olay Uyarılarının ve \/ veya Mesajların Hazırlanması, Yanıtlanması ve Kurtarılması gibi ticari kullanımlarını kolaylaştırmak için arayüzü hiçbir durumda kullanamazsınız; bunlarla sınırlı olmamak kaydı ile, bunları yeniden satmak, bunlara erişmek için ücret almak, yeniden dağıtmak için ücret almak veya bunlara dayalı türev çalışmalar oluşturmak amaçlı ücret almak da dahildir. Kızıl Haç ve lisans verenleri, API, Hazırlama, Yanıtlama ve Kurtarma Mesajları, olay ikazları, Veri Beslemeleri ve Kaynak Referansları (aşağıda tanımlandığı gibi) ile ilgili tüm unvan, mülkiyet, hak ve menfaatleri elinde tutar. Açıkça verilmeyen tüm haklar saklıdır.", + "body": "Veri Akışını yalnızca, API hükümlerine bağlı olarak kendi uygulamanız ile zaman zaman güncellenen API'ye uygunluğunuz göz önünde bulundurularak kullanabilirsiniz. Olay ikazlarını ve arayüz şartlarına tabi olarak verilerden gelen bireysel olay ikazlarının aciliyet ayarıyla ilgili, bağlamsal Hazırlık, Müdahale ve Kurtarma mesajlarınızı, son kullanıcılarınıza, özel olmayan, sınırlı ve iptal edilebilir indirme, kullanım, çoğaltma ve dağıtma hakkına sahipsiniz. API'yi yalnızca Veri Akışlarının ticari olmayan kullanımlarını API Koşullarına uygun olarak kolaylaştırmak için kullanabilirsiniz. Veri Beslemelerinin, Olay Uyarılarının ve / veya Mesajların Hazırlanması, Yanıtlanması ve Kurtarılması gibi ticari kullanımlarını kolaylaştırmak için arayüzü hiçbir durumda kullanamazsınız; bunlarla sınırlı olmamak kaydı ile, bunları yeniden satmak, bunlara erişmek için ücret almak, yeniden dağıtmak için ücret almak veya bunlara dayalı türev çalışmalar oluşturmak amaçlı ücret almak da dahildir. Kızıl Haç ve lisans verenleri, API, Hazırlama, Yanıtlama ve Kurtarma Mesajları, olay ikazları, Veri Beslemeleri ve Kaynak Referansları (aşağıda tanımlandığı gibi) ile ilgili tüm unvan, mülkiyet, hak ve menfaatleri elinde tutar. Açıkça verilmeyen tüm haklar saklıdır.", "heading": "Müsaade ve Sınırlamalar:" }, "overview": { @@ -892,13 +893,13 @@ "six": "Herhangi bir virüs, truva atı veya yıkıcı nitelikteki bir öğeyi bulaştırmak." } }, - "reserve_rights": "Kızılhaç, önceden bildirimde bulunmaksızın herhangi bir zamanda geçici veya kalıcı olarak API ve verileri tamamen veya kısmen değiştirme ve \/ veya artık sağlamama hakkını saklı tutar. Şüpheye mahal vermemek adına, buradaki hiçbir şey Kızılhaç'ın API veya verilerini size sunma zorunluluğunu taşımaz ve siz, herhangi bir erişimin Kızılhaç'ın yegane ve mutlak takdir yetkisi dahilinde olduğunu kabul edip onaylarsınız.", + "reserve_rights": "Kızılhaç, önceden bildirimde bulunmaksızın herhangi bir zamanda geçici veya kalıcı olarak API ve verileri tamamen veya kısmen değiştirme ve / veya artık sağlamama hakkını saklı tutar. Şüpheye mahal vermemek adına, buradaki hiçbir şey Kızılhaç'ın API veya verilerini size sunma zorunluluğunu taşımaz ve siz, herhangi bir erişimin Kızılhaç'ın yegane ve mutlak takdir yetkisi dahilinde olduğunu kabul edip onaylarsınız.", "severability": { "body": "API Hükümlerinin herhangi bir şartının veya hükmünün geçersizliği, diğer herhangi bir hükmün geçerliliğini etkilemeyecektir.", "heading": "Bölünebilirlik ve Feragat:" }, "suspension": { - "body": "Kızılhaç, tamamen kendi takdirine bağlı olarak arayüz koşullarında belirtildiği gibi, herhangi bir kişinin veya Kızılhaç ağlarının güvenliğini ve \/ veya güvenliğini tehdit eden \/ tehlikeye atan herhangi bir faaliyette, arayüz veya verileri yetkisiz olarak kullandığınızı veya arayüz veya verileri kullandığınızı tespit ederse, Kızılhaç erişiminizi askıya alma veya sonlandırma hakkını saklı tutar.", + "body": "Kızılhaç, tamamen kendi takdirine bağlı olarak arayüz koşullarında belirtildiği gibi, herhangi bir kişinin veya Kızılhaç ağlarının güvenliğini ve / veya güvenliğini tehdit eden / tehlikeye atan herhangi bir faaliyette, arayüz veya verileri yetkisiz olarak kullandığınızı veya arayüz veya verileri kullandığınızı tespit ederse, Kızılhaç erişiminizi askıya alma veya sonlandırma hakkını saklı tutar.", "heading": "Askıya Alma veya Sonlandırma:" } }, diff --git a/resources/lang/ur.json b/resources/lang/ur.json index 0c01a40..63ee043 100644 --- a/resources/lang/ur.json +++ b/resources/lang/ur.json @@ -441,9 +441,9 @@ "immediate": "فوری", "warning": "انتباہ", "anticipated": "متوقع", - "assess_and_plan":"جائزہ لیں اور منصوبہ بنائیں", - "mitigate_risks":"خطرے کو کم کریں", - "prepare_to_respond":"جواب دینے کے لیے تیار رہیں", + "assess_and_plan": "جائزہ لیں اور منصوبہ بنائیں", + "mitigate_risks": "خطرے کو کم کریں", + "prepare_to_respond": "جواب دینے کے لیے تیار رہیں", "recover": "بحال کریں" }, "content": { @@ -526,7 +526,7 @@ "seasonalForecast_extra": "ایک موسمیاتی پیش گوئی ایک خطرناک واقعہ کی پیشن گوئی کا بیان ہے۔ کیئے گئے اقدامات ممکنہ خطرے کو کم کرنا اور سرگرمیوں کی منصوبہ بندی کرنا تاکہ خطرے کو کم کر کے کنبوں کو بچایا جا سکے۔", "watch": "نگرانی", "watch_help": "ردِعمل دینے کے لیے تیار رہیں", - "watch_extra": "ایک خطرے کی اطلاع اس وقت جاری کی جاتی ہے جب خطرناک واقعے کے وقوع پذیر ہونے کے خطرے میں نمایاں طور پر اضافہ ہوچکا ہو، لیکن اس کا وقوع، مقام، اور\/ یا وقت ابھی تک غیر یقینی ہے۔ اس کا مقصد حفاظتی اقدامات اور جواب دینے کی تیاری کے لئے کافی وقت فراہم کرنا ہے۔", + "watch_extra": "ایک خطرے کی اطلاع اس وقت جاری کی جاتی ہے جب خطرناک واقعے کے وقوع پذیر ہونے کے خطرے میں نمایاں طور پر اضافہ ہوچکا ہو، لیکن اس کا وقوع، مقام، اور/ یا وقت ابھی تک غیر یقینی ہے۔ اس کا مقصد حفاظتی اقدامات اور جواب دینے کی تیاری کے لئے کافی وقت فراہم کرنا ہے۔", "warning": "انتباہ", "warning_help": "ردِعمل دینے کے لیے تیار رہیں", "warning_extra": "ایک انتباہ کسی خطرناک واقعہ کے رونما پذیر ہونے، متوقع ہونے، یا واقع ہو جانے کے بہت زیادہ امکانات ہونے کی صورت میں دیا جاتا ہے۔ اس کا مطلب یہ ہے کہ حالات زندگی یا املاک کیلئے خطرہ ہیں۔ اس خطرے سے دوچار لوگوں کو حفاظتی اقدامات کرنے کی ضرورت ہے۔", @@ -558,7 +558,8 @@ "content_edit_title": "مواد میں ترمیم", "content_add_hazard_title": "خطرہ شامل کریں", "key_message_label": "کلیدی پیغام کا عنوان", - "supporting_message_label": "معاون پیغام" + "supporting_message_label": "معاون پیغام", + "mitigate_risk": "خطرے کو کم کریں" }, "message_editor": { "title": "ایٹریبیوشن ایڈیٹر", @@ -618,7 +619,7 @@ "bad_request_error_codes": { "30001": "کالم کی سرخیاں نمونے سے مماثل نہیں ہیں", "30002": "صفات کے نام، پیغام اور یو آر ایل گُم ہیں", - "30003": "غیر لاگو صفات یو آر ایل - براہِ مہربانی یقینی بنائیں کہ پروٹوکول موجود ہے، مثلاً http\/\/: وغیرہ", + "30003": "غیر لاگو صفات یو آر ایل - براہِ مہربانی یقینی بنائیں کہ پروٹوکول موجود ہے، مثلاً http//: وغیرہ", "40001": "ناموزوں ملکی کوڈ فراہم کیا گیا", "40002": "منتخب کی گئی سوسائٹی منتخب کی گئی فائل سے مماثلت نہیں رکھتی", "40003": "وہ تاریخ جس کو منتخب شدہ فائل برآمد کی تھی ناقص ہو چکی ہے اور درآمد مکمل نہیں ہو سکی" @@ -689,7 +690,7 @@ }, "landing": { "strapline": "سیفٹی میسج ڈیٹابیس سروس", - "strapline_part_2": "عالمی ریڈ کراس \/ ہلالِ احمر کے کلیدی حفاظتی پیغامات", + "strapline_part_2": "عالمی ریڈ کراس / ہلالِ احمر کے کلیدی حفاظتی پیغامات", "head_1": "آئی ایف آر سی سیفٹی", "head_2": "پیغامات کا ڈیٹابیس", "head_text_1": "سیفٹی میسجز آئی ایف آر سی کی عوامی بیداری اور", @@ -744,7 +745,7 @@ "fake_alert_heading": "انتباہ برائے شدید سردی", "fake_alert_description": "Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est.", "fake_alert_time": "1 گھنٹہ قبل", - "fake_alert_time_exact": "05\/02\/18 کو 05:15 سی ٹی پر", + "fake_alert_time_exact": "05/02/18 کو 05:15 سی ٹی پر", "use_cases": { "heading": "مزید جانیں", "first_heading": "یہ کیسے کام کرتا ہے", @@ -785,7 +786,7 @@ }, "data_preview": { "heading": "سیفٹی میسجز", - "sub_heading": "سائن اپ کریں اور دنیا بھر میں ریڈ کراس \/ ہلالِ احمر قومی سوسائٹی کے کلیدی پیغامات دیکھیں" + "sub_heading": "سائن اپ کریں اور دنیا بھر میں ریڈ کراس / ہلالِ احمر قومی سوسائٹی کے کلیدی پیغامات دیکھیں" }, "footer": { "terms_conditions": "شرائط و ضوابط", @@ -841,10 +842,10 @@ "industries": { "media": "میڈیا", "emergency": "ہنگامی حالات کے انتظامات", - "non_profit": "غیر منافع بخش\/این جی او", + "non_profit": "غیر منافع بخش/این جی او", "humanitarian": "انسان دوست تنظیم", - "red_cross": "ریڈ کراس\/ ہلالِ احمر", - "education": "تعلیم\/ تعلیمی ادارے", + "red_cross": "ریڈ کراس/ ہلالِ احمر", + "education": "تعلیم/ تعلیمی ادارے", "gov": "سرکاری ایجنسی", "other": "دیگر" }, @@ -859,9 +860,9 @@ "body": "اس معاہدے کے تحت کولمبیا کے ضلع کے قوانین میں اختلافات کے اصولوں کو اثر دیئے بغیر تمام حقوق اور ذمہ داریوں پر عمل کریں گے۔", "heading": "قابل اطلاق قانون:" }, - "body": "آپ ریڈ کراس کی طرف سے فراہم کی گئی رجسٹریشن کی کلید کی رازداری اور سلامتی کو برقرار رکھنے کے ذمہ دار ہیں۔ ڈیٹا فیڈ کے حصول کو جاری رکھنے کے لیئے آپ اے پی ای کے ساتھ مطابقت برقرار رکھنے کے ذمہ دار ہیں ، جیسا کہ وقت بہ وقت تازہ کیا جاتا ہے۔ ریڈ کراس اس کی واحد صوابدید پر اے پی ای اور ڈیٹا فیڈ کے تازہ ترین ورژن جاری کر سکتے ہیں۔ ہو سکتا ہے کہ نئے ورژن پچھلے نفاذات کے ساتھ ہم آہنگ نہ ہوں, اور آپ ڈیٹا فیڈ کے تازہ ترین ورژن کے استعمال پر اتفاق کرتے ہیں۔\n\nآپ اے پی آئی کے کسی بھی حصے یا ہلالِ احمر کے کسی بھی سافٹ وئیر میں ترمیم، تقسیم، غیر مرتب، بکھراؤ، یا ریورس انجئینرنگ۔\n\nآپ اے پی ای یا ڈیٹا فیڈ کو اس طرح استعمال نہیں کر سکتے کہ وہ قابلِ جواز درخواست کردہ حجم سے زیادہ ہو، یا ضرورت سے زیادہ استعمال یا غلط استعمال شامل ہے جیسا کہ ہلالَ احمر اپنی واحد صوابدید پر مقرر کرتا ہے۔\n\nآپ اے پی آئی یا ڈیٹا فیڈ کو اس انداز میں استعمال نہیں کر سکتے ہیں کہ وہ غیر قانونی ، گمراہ کن ، غیر محتاط ، بامقصد نقصان پہنچانے والا ، یا یہ نقصان ریڈ کراس، اس کی خدمات پہنچانے والے، اس کا مواد پہنچانے والے، یا دیگر کوئی شخص، جو کہ ریڈ کراس کی واحد صوابدید پر مقرر کیا گیا ہے۔\n\nریڈ کراس آپ کے پی آئی اور ڈیٹا فیڈ کو استعمال کرنے کی نگرانی کر سکتا ہے۔ آپ اس طرح کی نگرانی کے ساتھ مداخلت کرنے کے لئے کسی بھی تکنیکی ذریعہ کا استعمال نہیں کر سکتے ہیں ، اور ریڈ کراس کسی بھی ایسی مداخلت پر قابو پانے کے لئے تکنیکی وسائل کا استعمال کرسکتا ہے۔\n\nتیار کرنے ، جواب دینے اور پیغامات کی وصولی کے استعمال سے مربوط ایونٹ الرٹ کے اس وقت کے موجودہ فوری ترتیب میں صرف موجودہ یا اپ ڈیٹ کیا جائے گا ، اور آپ کو انفرادی تیاری ، جواب دینے ، اور کسی بھی اپ ڈیٹ پر پیغامات کو اپ ڈیٹ کرنے کی ضرورت ہوگی ڈیٹا فیڈ اور\/یا اس سے مربوط واقعہ انتباہات ریڈ کراس کی طرف سے۔\n\nانفرادی طور پر تیاری ، ردعمل، اور بحالی پیغامات جو کہ آپ استعمال کرتے ہیں، صرف اور صرف ان جغرافیائی علاقوں سے متعلق کرنا چاہیئے جن کے لیئے یہ پیغامات جاری کیئے گئے ہیں۔ اگر ایک تیاری، ردعمل، اور بحالی پیغامات میں کسی ذریعے کا حوالہ شامل ہو، جیسا کہ امریکن ریڈ کراس، یا دیگر ریڈ کراس یا ہلالِ احمر قومی سوسائٹی یا تنظیم (ہر ایک \"ذریعے کا حوالہ\")، تو آپ کو ڈیٹا فیڈ میں فراہم کی گئی شکل میں ذریعے کے حوالے کو تیاری، ردعمل، اور بحالی کے پیغامات میں شامل کرنا ہو گا۔ آپ کو کسی بھی ذریعے کے حوالے کا مزید استعمال نہیں کرنا چاہیئے۔\n\nآپ ڈیٹا فیڈز، ایونٹ کے انتباہ، اور\/یا تیاری، ردعمل، اور بحالی کے پیغامات کا کسی دوسری زبان میں ترجمہ نہیں کر سکتے، ڈیٹا فیڈز، ایونٹ کے انتباہ اور\/یا تیاری، ردعمل اور بحالی کے پیغامات کا کسی قسم کا استعمال، ترمیم یا نظر ثانی، یا ان کے مفہوم تبدیل نہیں کر سکتے۔\n\nآپ کو لازمی طور پر یہ یقینی بنانا چاہیئے کہ ڈیٹا فیڈز، آپ کی واحد ملکیت اور\/یا انضباط میں رہیں۔\n\nآپ آخری صارفین کو ایونٹ کے انتباہ اور تیاری، ردعمل اور بحالی کے پیغامات، کسی قسم کی اشتہار بازی یا ضمانت کے لیئے استعمال کرنے کی اجازت نہیں دے سکتے۔\n\nآپ مکمل طور پر یا جزوی طور پر اعداد و شمار کو محفوظ نہیں کر سکتے ہیں۔", + "body": "آپ ریڈ کراس کی طرف سے فراہم کی گئی رجسٹریشن کی کلید کی رازداری اور سلامتی کو برقرار رکھنے کے ذمہ دار ہیں۔ ڈیٹا فیڈ کے حصول کو جاری رکھنے کے لیئے آپ اے پی ای کے ساتھ مطابقت برقرار رکھنے کے ذمہ دار ہیں ، جیسا کہ وقت بہ وقت تازہ کیا جاتا ہے۔ ریڈ کراس اس کی واحد صوابدید پر اے پی ای اور ڈیٹا فیڈ کے تازہ ترین ورژن جاری کر سکتے ہیں۔ ہو سکتا ہے کہ نئے ورژن پچھلے نفاذات کے ساتھ ہم آہنگ نہ ہوں, اور آپ ڈیٹا فیڈ کے تازہ ترین ورژن کے استعمال پر اتفاق کرتے ہیں۔\n\nآپ اے پی آئی کے کسی بھی حصے یا ہلالِ احمر کے کسی بھی سافٹ وئیر میں ترمیم، تقسیم، غیر مرتب، بکھراؤ، یا ریورس انجئینرنگ۔\n\nآپ اے پی ای یا ڈیٹا فیڈ کو اس طرح استعمال نہیں کر سکتے کہ وہ قابلِ جواز درخواست کردہ حجم سے زیادہ ہو، یا ضرورت سے زیادہ استعمال یا غلط استعمال شامل ہے جیسا کہ ہلالَ احمر اپنی واحد صوابدید پر مقرر کرتا ہے۔\n\nآپ اے پی آئی یا ڈیٹا فیڈ کو اس انداز میں استعمال نہیں کر سکتے ہیں کہ وہ غیر قانونی ، گمراہ کن ، غیر محتاط ، بامقصد نقصان پہنچانے والا ، یا یہ نقصان ریڈ کراس، اس کی خدمات پہنچانے والے، اس کا مواد پہنچانے والے، یا دیگر کوئی شخص، جو کہ ریڈ کراس کی واحد صوابدید پر مقرر کیا گیا ہے۔\n\nریڈ کراس آپ کے پی آئی اور ڈیٹا فیڈ کو استعمال کرنے کی نگرانی کر سکتا ہے۔ آپ اس طرح کی نگرانی کے ساتھ مداخلت کرنے کے لئے کسی بھی تکنیکی ذریعہ کا استعمال نہیں کر سکتے ہیں ، اور ریڈ کراس کسی بھی ایسی مداخلت پر قابو پانے کے لئے تکنیکی وسائل کا استعمال کرسکتا ہے۔\n\nتیار کرنے ، جواب دینے اور پیغامات کی وصولی کے استعمال سے مربوط ایونٹ الرٹ کے اس وقت کے موجودہ فوری ترتیب میں صرف موجودہ یا اپ ڈیٹ کیا جائے گا ، اور آپ کو انفرادی تیاری ، جواب دینے ، اور کسی بھی اپ ڈیٹ پر پیغامات کو اپ ڈیٹ کرنے کی ضرورت ہوگی ڈیٹا فیڈ اور/یا اس سے مربوط واقعہ انتباہات ریڈ کراس کی طرف سے۔\n\nانفرادی طور پر تیاری ، ردعمل، اور بحالی پیغامات جو کہ آپ استعمال کرتے ہیں، صرف اور صرف ان جغرافیائی علاقوں سے متعلق کرنا چاہیئے جن کے لیئے یہ پیغامات جاری کیئے گئے ہیں۔ اگر ایک تیاری، ردعمل، اور بحالی پیغامات میں کسی ذریعے کا حوالہ شامل ہو، جیسا کہ امریکن ریڈ کراس، یا دیگر ریڈ کراس یا ہلالِ احمر قومی سوسائٹی یا تنظیم (ہر ایک \"ذریعے کا حوالہ\")، تو آپ کو ڈیٹا فیڈ میں فراہم کی گئی شکل میں ذریعے کے حوالے کو تیاری، ردعمل، اور بحالی کے پیغامات میں شامل کرنا ہو گا۔ آپ کو کسی بھی ذریعے کے حوالے کا مزید استعمال نہیں کرنا چاہیئے۔\n\nآپ ڈیٹا فیڈز، ایونٹ کے انتباہ، اور/یا تیاری، ردعمل، اور بحالی کے پیغامات کا کسی دوسری زبان میں ترجمہ نہیں کر سکتے، ڈیٹا فیڈز، ایونٹ کے انتباہ اور/یا تیاری، ردعمل اور بحالی کے پیغامات کا کسی قسم کا استعمال، ترمیم یا نظر ثانی، یا ان کے مفہوم تبدیل نہیں کر سکتے۔\n\nآپ کو لازمی طور پر یہ یقینی بنانا چاہیئے کہ ڈیٹا فیڈز، آپ کی واحد ملکیت اور/یا انضباط میں رہیں۔\n\nآپ آخری صارفین کو ایونٹ کے انتباہ اور تیاری، ردعمل اور بحالی کے پیغامات، کسی قسم کی اشتہار بازی یا ضمانت کے لیئے استعمال کرنے کی اجازت نہیں دے سکتے۔\n\nآپ مکمل طور پر یا جزوی طور پر اعداد و شمار کو محفوظ نہیں کر سکتے ہیں۔", "contact": "اے پی ای کے بارے میں کسی بھی سوال کے ساتھ {0} پر ریڈ کراس سے رابطہ کریں۔", - "disclaimer": "اے پی آئی اور اعداد و شمار صرف معلومات اور تعلیمی مقاصد کے لئے فراہم کیئے جاتے ہیں، اور 'جیسا ہے' اور 'جیسا دستیاب ہے' کی بنیاد پر میسر ہیں۔ ہلالِ احمر کسی بھی قسم، نظر آتی یا مضمر کی کوئی نمائندگی یا ضمانت نہیں دیتا۔ ہلالِ احمر تمام قسم کی ضمانتوں سے لاعلمی کا اظہار کرتا ہے، نظر آتی یا مضمر، بشمول لیکن مضمر ضمانتیں برائے فروختگی اور مخصوص مقصد کے لیئے قابلیت تک محدود نہ ہیں۔ ہلالِ احمر اور اس کے ملازمین، افسران ، گورنر اور ایجنٹوں اور لائسنس کے اے پی ای کے استعمال سے پیدا ہونے والے کسی بھی قسم کے نقصانات کے لئے ذمہ دار نہیں ہوں گے، ڈیٹا فیڈ ، ایونٹ الرٹ ، اور\/یا تیار کرنے ، جواب دینے ، اور پیغامات کی وصولی ، بشمول براہ راست ، بالواسطہ ، اتفاقی ، تادیبی اور نتیجے میں نقصانات تک محدود نہیں۔\n\nہلالِ احمر ترتیب ، درستگی ، صداقت یا اے پی آئی کے مکمل ہونے، ڈیٹا فیڈ, ایونٹ الرٹ اور\/یا تیاری, ردعمل, اور پیغامات کی وصولی اور آپ یا آپ کے صارفین یا کسی بھی تیسرے فریق کے لئے کسی بھی طرح سے ذمہ دار تصور نہیں کیا جائے گا, بشمول بغیر حد کے، کسی بھی تاخیر کے لئے, غلطیوں یا بھول چوک کے لیئے, اے پی آئی کے سلسلے میں, ڈیٹا فیڈ, ایونٹ الرٹ اور\/یا تیار, ردعمل اور بحالی پیغامات آگے چل کر فراہم کیئے گئے ہیں۔", + "disclaimer": "اے پی آئی اور اعداد و شمار صرف معلومات اور تعلیمی مقاصد کے لئے فراہم کیئے جاتے ہیں، اور 'جیسا ہے' اور 'جیسا دستیاب ہے' کی بنیاد پر میسر ہیں۔ ہلالِ احمر کسی بھی قسم، نظر آتی یا مضمر کی کوئی نمائندگی یا ضمانت نہیں دیتا۔ ہلالِ احمر تمام قسم کی ضمانتوں سے لاعلمی کا اظہار کرتا ہے، نظر آتی یا مضمر، بشمول لیکن مضمر ضمانتیں برائے فروختگی اور مخصوص مقصد کے لیئے قابلیت تک محدود نہ ہیں۔ ہلالِ احمر اور اس کے ملازمین، افسران ، گورنر اور ایجنٹوں اور لائسنس کے اے پی ای کے استعمال سے پیدا ہونے والے کسی بھی قسم کے نقصانات کے لئے ذمہ دار نہیں ہوں گے، ڈیٹا فیڈ ، ایونٹ الرٹ ، اور/یا تیار کرنے ، جواب دینے ، اور پیغامات کی وصولی ، بشمول براہ راست ، بالواسطہ ، اتفاقی ، تادیبی اور نتیجے میں نقصانات تک محدود نہیں۔\n\nہلالِ احمر ترتیب ، درستگی ، صداقت یا اے پی آئی کے مکمل ہونے، ڈیٹا فیڈ, ایونٹ الرٹ اور/یا تیاری, ردعمل, اور پیغامات کی وصولی اور آپ یا آپ کے صارفین یا کسی بھی تیسرے فریق کے لئے کسی بھی طرح سے ذمہ دار تصور نہیں کیا جائے گا, بشمول بغیر حد کے، کسی بھی تاخیر کے لئے, غلطیوں یا بھول چوک کے لیئے, اے پی آئی کے سلسلے میں, ڈیٹا فیڈ, ایونٹ الرٹ اور/یا تیار, ردعمل اور بحالی پیغامات آگے چل کر فراہم کیئے گئے ہیں۔", "entire_agreement": { "body": "اے پی آئی کی شرائط متن کے موضوع کے حوالے سے ہلالِ احمر اور آپ کے درمیان مکمل اور خصوصی معاہدے کی حامل ہیں اور پہلے سے موجود تمام زبانی اور لکھی گئی تفہیم، بات چیت اور سمجھوتوں جو خاص طور پر یہاں شامل نہیں ہیں پر فوقیت رکھتی ہیں۔ ریڈ کراس کسی بھی وقت اس معاہدے میں ترمیم یا منسوخی کا حق محفوظ رکھتا ہے۔", "heading": "مکمل معاہدہ:" @@ -869,7 +870,7 @@ "heading": "اے پی آئی اختتامی صارف لائسنسنگ معاہدہ", "intro": "اتفاق کریں: سروس کو استعمال کرتے ہوئے یا فراہم کردہ ڈبے پر نشان لگا کر ، صارف اس معاہدے کی طرف سے پابند ہونے سے متفق ہے۔\n\nاے پی آئی ایک ایسا آلہ ہے جو آپ (\"آپ\") کو ڈیٹا فیڈز بازیافت کرنے اور استعمال کرنے کی اجازت دیتا ہے جو ہلالِ احمر کی طرف سے دستیاب ہے بشمول ایک عالمی موسمیاتی اور آفاتی واقعے سے متعلق انتباہ اور یاداشتیں (\"ایونٹ الرٹ\") اور مقامی خطرات کو خطرے کی قسم اور فوری ضرورت (\"تیاری، ردعمل، اور بحالی پیغامات\"، اور مجموعی طور پر ایونٹ الرٹ اور \"ڈیٹا فیڈ\") پر قابل عمل اور پسِ منظر سے مربوط پیغامات فراہم کرتا ہے۔ تیاری ، جواب اور بحالی پیغامات کا مقصد واقعات کی تنبیہات یا دیگر انتباہات کے ساتھ ہونا ہے اور اپنی درخواست میں موسم اور تباہی کے واقعات سے وابستہ یاداشتیں دیکھنا ہے۔ آپ کا ڈیٹا فیڈ کا استعمال اے پی آئی کی شرائط کے تحت ہے۔", "license_limitations": { - "body": "آپ صرف اے پی آئی کی شرائط کے تحت اپنی درخواست کے ساتھ مل کر ڈیٹا فیڈز کا استعمال کرسکتے ہیں ، بشرطیکہ آپ وقتا فوقتا اپ ڈیٹ کے مطابق اے پی آئی کے ساتھ مطابقت برقرار رکھیں۔ آپ کو ایک غیر مخصوص، محدود اور قابلِ تنسیخ حق دیا گیا ہے کہ آپ ڈاؤنلوڈ کر سکیں، استعمال کر سکیں، دوبارہ بنا سکیں اور آپ کی اپنی اپلیکیشن کے آخری صارفین کو بانٹ سکیں (\"آخری صارفین\") واقعہ کا انتباہ اور اس کے متعلقہ سیاق و سباق میں تیاری، ردعمل اور بحالی کے پیغامات بمع ڈیٹا فیڈ سے فوری انفرادی واقعہ کے انتباہ کی ترتیب، اے پی آئی کی شرائط سے مشروط ہیں۔ آپ اے پی آئی کی شرائط کے مطابق ڈیٹا فیڈ کے غیر تجارتی استعمال میں آسانی کے لئے صرف اے پی آئی کا استعمال کرسکتے ہیں۔ آپ کسی بھی واقعہ میں ڈیٹا فیڈز کے تجارتی استعمال کو سہولت دینے کے لیئے اے پی آئی استعمال نہیں کر سکتے، واقعہ کے انتباہات اور\/یا تیاری، ردعمل، اور بحالی کے پیغامات، بشمول بغیر حد، انہیں بیچنا، ان تک رسائی کا معاوضہ لینا، ان کو بانٹنے کا معاوضہ لینا، یا ان پر مشتمل ماخوذ کاموں کو تخلیق کرنے کا معاوضہ لینا۔ ریڈ کراس اور اس کے لائسنس دینے والے تمام عنوان، ملکیت، اے پی آئی میں اور اے پی آئی کے حقوق اور مفاد، تیاری، ردعمل ، اور بحالی پیغامات، واقعہ کی انتباہات، ڈیٹا فیڈز اور ماخذ حوالہ جات (جیسا کہ ذیل میں بیان کردہ ہیں) محفوظ رکھتے ہیں۔ تمام حقوق جو واضح طور پر نہیں دیئے جاتے ہیں وہ محفوظ ہیں۔", + "body": "آپ صرف اے پی آئی کی شرائط کے تحت اپنی درخواست کے ساتھ مل کر ڈیٹا فیڈز کا استعمال کرسکتے ہیں ، بشرطیکہ آپ وقتا فوقتا اپ ڈیٹ کے مطابق اے پی آئی کے ساتھ مطابقت برقرار رکھیں۔ آپ کو ایک غیر مخصوص، محدود اور قابلِ تنسیخ حق دیا گیا ہے کہ آپ ڈاؤنلوڈ کر سکیں، استعمال کر سکیں، دوبارہ بنا سکیں اور آپ کی اپنی اپلیکیشن کے آخری صارفین کو بانٹ سکیں (\"آخری صارفین\") واقعہ کا انتباہ اور اس کے متعلقہ سیاق و سباق میں تیاری، ردعمل اور بحالی کے پیغامات بمع ڈیٹا فیڈ سے فوری انفرادی واقعہ کے انتباہ کی ترتیب، اے پی آئی کی شرائط سے مشروط ہیں۔ آپ اے پی آئی کی شرائط کے مطابق ڈیٹا فیڈ کے غیر تجارتی استعمال میں آسانی کے لئے صرف اے پی آئی کا استعمال کرسکتے ہیں۔ آپ کسی بھی واقعہ میں ڈیٹا فیڈز کے تجارتی استعمال کو سہولت دینے کے لیئے اے پی آئی استعمال نہیں کر سکتے، واقعہ کے انتباہات اور/یا تیاری، ردعمل، اور بحالی کے پیغامات، بشمول بغیر حد، انہیں بیچنا، ان تک رسائی کا معاوضہ لینا، ان کو بانٹنے کا معاوضہ لینا، یا ان پر مشتمل ماخوذ کاموں کو تخلیق کرنے کا معاوضہ لینا۔ ریڈ کراس اور اس کے لائسنس دینے والے تمام عنوان، ملکیت، اے پی آئی میں اور اے پی آئی کے حقوق اور مفاد، تیاری، ردعمل ، اور بحالی پیغامات، واقعہ کی انتباہات، ڈیٹا فیڈز اور ماخذ حوالہ جات (جیسا کہ ذیل میں بیان کردہ ہیں) محفوظ رکھتے ہیں۔ تمام حقوق جو واضح طور پر نہیں دیئے جاتے ہیں وہ محفوظ ہیں۔", "heading": "لائسنس اور حدود:" }, "overview": { @@ -888,7 +889,7 @@ "two": "ریڈ کراس یا اے پی آئی کے ذریعہ استعمال کردہ کوئی بھی کلیدیں یا سیکیورٹی میکانزم کو روکنے یا ان میں ترمیم کرنا ، بشمول کسی حد تک تصدیق کے ٹیکنالوجی کو شامل کرنا۔", "three": "آپ کے اپنے اکاؤنٹ کے لئے جو چیز آپ کو فراہم کی جاتی ہے اس کے علاوہ ، ریڈ کراس کے لئے سائن ان نام ، پاس ورڈ یا تصدیق نامہ کے دیگر سندوں سے درخواست کرنے ، جمع کرنے ، مانگنے یا دوسری صورت میں رسائی حاصل کرنے کے لئے۔", "four": "ریڈ کراس یا کسی دوسرے ریڈ کراس یا ہلالِ احمر قومی سوسائٹی یا تنظیم کے ذریعہ وابستگی ، اس کی کفالت یا توثیق کرنا۔", - "five": "یہ بیان کرنا یا دلالت کرنا کہ آپ اے پی آئی، ڈیٹا فیڈز، واقعہ کے انتباہات اور\/یا تیاری، ردعمل، اور بحالی پیغامات کی ملکیت رکھتے ہیں۔", + "five": "یہ بیان کرنا یا دلالت کرنا کہ آپ اے پی آئی، ڈیٹا فیڈز، واقعہ کے انتباہات اور/یا تیاری، ردعمل، اور بحالی پیغامات کی ملکیت رکھتے ہیں۔", "six": "کوئی بھی وائرس، وارم نقائص، تروجن ہارسز، یا کوئی بھی تخریبی فطرت کی چیز ڈالنا۔" } }, @@ -898,7 +899,7 @@ "heading": "علیٰحدگی پزیری اور دستبرداری:" }, "suspension": { - "body": "اگر ریڈ کراس کو لگتا ہے کہ آپ اے پی آئی یا ڈیٹا فیڈز کے ناجائز استعمال میں مصروف ہیں جیسا کہ اے پی آئی کی شرائط میں واضح کیا گیا ہے یا یہ کہ آپ اے پی آئی یا ڈیٹا فیڈز کا استعمال ایسی سرگرمی میں کر رہے ہیں جو کسی شخص یا ریڈ کراس کے نیٹ ورک کی سلامتی اور\/یا حفاظت کے لیئے خطرہ ہے تو ریڈ کراس اپنی واحد صوابدید میں حق محفوظ رکھتا ہے کہ وہ آپ کی رسائی ختم کر دے۔", + "body": "اگر ریڈ کراس کو لگتا ہے کہ آپ اے پی آئی یا ڈیٹا فیڈز کے ناجائز استعمال میں مصروف ہیں جیسا کہ اے پی آئی کی شرائط میں واضح کیا گیا ہے یا یہ کہ آپ اے پی آئی یا ڈیٹا فیڈز کا استعمال ایسی سرگرمی میں کر رہے ہیں جو کسی شخص یا ریڈ کراس کے نیٹ ورک کی سلامتی اور/یا حفاظت کے لیئے خطرہ ہے تو ریڈ کراس اپنی واحد صوابدید میں حق محفوظ رکھتا ہے کہ وہ آپ کی رسائی ختم کر دے۔", "heading": "معطلی یا خاتمہ:" } }, diff --git a/resources/lang/vi.json b/resources/lang/vi.json index d861dcf..782ae7e 100644 --- a/resources/lang/vi.json +++ b/resources/lang/vi.json @@ -40,7 +40,7 @@ "name": "Tên", "first_name": "Tên", "last_name": "Họ", - "toggle_navigation": "Bật\/tắt điều hướng", + "toggle_navigation": "Bật/tắt điều hướng", "you_are_logged_in": "Bạn đã đăng nhập!", "reset_password": "Cài lại mật khẩu", "set_password": "Cài mật khẩu", @@ -197,13 +197,15 @@ "steps": { "one": { "heading": "Bước 1: Đăng ký", - "body": "Để bắt đầu sử dụng dữ liệu từ API Cơ sở dữ liệu Tin nhắn An toàn, trước tiên {0} vào Cổng thông tin Cơ sở dữ liệu Tin nhắn An toàn.\n\nBạn có thể sử dụng tài khoản Facebook & Google hoặc địa chỉ email để tạo tài khoản.", "create_account_alt": "tạo tài khoản", + "body": "Để bắt đầu sử dụng dữ liệu từ API Cơ sở dữ liệu Tin nhắn An toàn, trước tiên {0} vào Cổng thông tin Cơ sở dữ liệu Tin nhắn An toàn.\n\nBạn có thể sử dụng tài khoản Facebook & Google hoặc địa chỉ email để tạo tài khoản.", + "create_account_alt": "tạo tài khoản", "existing_account": "Nếu bạn đã có tài khoản, hãy {0}.", "login_cta": "đăng nhập", "sign_up_cta": "đăng ký" }, "two": { - "body": "Để sử dụng API, bạn phải tạo một ứng dụng trong Cổng thông tin Cơ sở dữ liệu Tin nhắn An toàn. Hãy cho chúng tôi biết một chút về những gì bạn đang xây dựng.", "create_app_alt": "tạo ứng dụng", + "body": "Để sử dụng API, bạn phải tạo một ứng dụng trong Cổng thông tin Cơ sở dữ liệu Tin nhắn An toàn. Hãy cho chúng tôi biết một chút về những gì bạn đang xây dựng.", + "create_app_alt": "tạo ứng dụng", "heading": "Bước 2: Tạo ứng dụng" }, "three": { @@ -214,7 +216,8 @@ }, "four": { "api_docs_cta": "Tài liệu API", - "body": "API Cơ sở dữ liệu Tin nhắn An toàn sử dụng HTTP(S) và cung cấp các điểm cuối RESTful để lấy dữ liệu đã xuất bản.\n\nMỗi yêu cầu phải được xác thực bằng khóa API được tạo ở bước trước.", "example_title": "Ví dụ yêu cầu", + "body": "API Cơ sở dữ liệu Tin nhắn An toàn sử dụng HTTP(S) và cung cấp các điểm cuối RESTful để lấy dữ liệu đã xuất bản.\n\nMỗi yêu cầu phải được xác thực bằng khóa API được tạo ở bước trước.", + "example_title": "Ví dụ yêu cầu", "heading": "Bước 4: Làm yêu cầu", "moreInfo": "Xem {0} để biết thêm thông tin về tất cả điểm cuối API." } @@ -438,9 +441,9 @@ "immediate": "Ngay lập tức", "warning": "Cảnh báo", "anticipated": "Dự kiến", - "assess_and_plan":"Đánh giá và Lập kế hoạch", - "mitigate_risks":"Giảm thiểu Rủi ro", - "prepare_to_respond":"Chuẩn bị ứng phó", + "assess_and_plan": "Đánh giá và Lập kế hoạch", + "mitigate_risks": "Giảm thiểu Rủi ro", + "prepare_to_respond": "Chuẩn bị ứng phó", "recover": "Phục hồi" }, "content": { @@ -555,7 +558,8 @@ "content_edit_title": "Chỉnh sửa nội dung", "content_add_hazard_title": "Thêm nguy hiểm", "key_message_label": "Tiêu đề tin nhắn chính", - "supporting_message_label": "Tin nhắn hỗ trợ" + "supporting_message_label": "Tin nhắn hỗ trợ", + "mitigate_risk": "Giảm thiểu Rủi ro" }, "message_editor": { "title": "Trình chỉnh sửa Ghi công", @@ -615,7 +619,7 @@ "bad_request_error_codes": { "30001": "Tiêu đề cột không khớp với tiêu bản", "30002": "Tên đặc tính, tin nhắn hoặc url bị thiếu", - "30003": "Đặc tính Url không hợp lệ - hãy đảm bảo rằng giao thức có sẵn, ví dụ: https: \/\/", + "30003": "Đặc tính Url không hợp lệ - hãy đảm bảo rằng giao thức có sẵn, ví dụ: https: //", "40001": "Mã quốc gia không hợp lệ", "40002": "Hiệp hội được chọn không khớp với hiệp hội trong tệp đã chọn", "40003": "Ngày xuất tệp đã chọn không đúng nên không thể hoàn tất việc nhập vào" @@ -686,7 +690,7 @@ }, "landing": { "strapline": "Dịch vụ Cơ sở dữ liệu Tin nhắn An toàn", - "strapline_part_2": "Thông điệp an toàn chính của hội Chữ thập đỏ \/ Trăng lưỡi liềm đỏ toàn cầu", + "strapline_part_2": "Thông điệp an toàn chính của hội Chữ thập đỏ / Trăng lưỡi liềm đỏ toàn cầu", "head_1": "An toàn IFRC", "head_2": "Cơ sở dữ liệu Tin nhắn", "head_text_1": "Tin nhắn an toàn dựa trên Nhận thức Cộng đồng của IFRC và", @@ -741,7 +745,7 @@ "fake_alert_heading": "Cảnh báo cực lạnh", "fake_alert_description": "Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est.", "fake_alert_time": "CÁCH ĐÂY 1 GIỜ", - "fake_alert_time_exact": "05\/02\/2018 lúc 05:15 CT", + "fake_alert_time_exact": "05/02/2018 lúc 05:15 CT", "use_cases": { "heading": "Tìm hiểu thêm", "first_heading": "Cách nó hoạt động", @@ -782,7 +786,7 @@ }, "data_preview": { "heading": "Tin nhắn An toàn", - "sub_heading": "Đăng ký và xem các thông điệp hành động chính của các Hiệp hội quốc gia Chữ thập đỏ \/ Trăng lưỡi liềm đỏ trên toàn thế giới" + "sub_heading": "Đăng ký và xem các thông điệp hành động chính của các Hiệp hội quốc gia Chữ thập đỏ / Trăng lưỡi liềm đỏ trên toàn thế giới" }, "footer": { "terms_conditions": "Điều khoản & điều kiện", @@ -838,10 +842,10 @@ "industries": { "media": "Đa phương tiện", "emergency": "Quản lý khẩn cấp", - "non_profit": "Phi lợi nhuận \/ NGO", + "non_profit": "Phi lợi nhuận / NGO", "humanitarian": "Tổ chức Nhân đạo", - "red_cross": "Chữ thập đỏ \/ Trăng lưỡi liềm đỏ", - "education": "Giáo dục \/ Học viện", + "red_cross": "Chữ thập đỏ / Trăng lưỡi liềm đỏ", + "education": "Giáo dục / Học viện", "gov": "Cơ quan chính phủ", "other": "Khác" }, @@ -856,9 +860,9 @@ "body": "Luật của Đặc khu Columbia sẽ điều chỉnh tất cả các quyền và nghĩa vụ theo Thỏa thuận này, mà không ảnh hưởng đến bất kỳ nguyên tắc xung đột pháp luật nào.", "heading": "Luật áp dụng:" }, - "body": "Bạn có trách nhiệm duy trì tính bí mật và bảo mật của khóa đăng ký do Hội Chữ thập Đỏ cung cấp cho Bạn. Bạn chịu trách nhiệm duy trì khả năng tương thích với API, được cập nhật theo thời gian, để tiếp tục nhận được Nguồn cấp dữ liệu. Hội Chữ thập Đỏ có thể phát hành các phiên bản cập nhật của API và Nguồn cấp dữ liệu theo quyết định riêng của mình. Các phiên bản mới có thể không tương thích với các triển khai trước đó và Bạn đồng ý sử dụng phiên bản cập nhật gần đây nhất của Nguồn cấp dữ liệu.\n\nBạn đồng ý không sửa đổi, phân phối, dịch ngược, tháo rời hoặc thiết kế đối chiếu bất kỳ phần nào của API hoặc bất kỳ phần mềm nào của Hội Chữ thập Đỏ.\n\nBạn không được sử dụng API hoặc Nguồn cấp dữ liệu theo cách vượt quá khối lượng yêu cầu hợp lý hoặc cấu thành việc sử dụng quá mức hoặc lạm dụng, theo quyết định riêng của Hội Chữ thập đỏ.\n\nBạn không được sử dụng API hoặc Nguồn cấp dữ liệu theo cách bất hợp pháp, gây hiểu lầm, cẩu thả, độc hại, có ý định gây hại hoặc gây hại cho Hội Chữ thập đỏ, các nhà cung cấp dịch vụ, nhà cung cấp nội dung của Hội chữ thập đỏ hoặc bất kỳ người nào khác, theo quyết định của Hội Chữ thập Đỏ theo quyết định của riêng mình.\n\n\nChữ thập đỏ có thể giám sát việc sử dụng API và Nguồn cấp dữ liệu của bạn. Bạn không được sử dụng bất kỳ phương tiện kỹ thuật nào để can thiệp vào việc giám sát đó, và Hội Chữ thập đỏ có thể sử dụng các phương tiện kỹ thuật để khắc phục bất kỳ sự can thiệp nào như vậy.\n\nViệc sử dụng các Thông báo Chuẩn bị, Trả lời và Khôi phục sẽ chỉ được trình bày dưới dạng hiện tại hoặc được cập nhật theo cài đặt khẩn cấp hiện tại của Cảnh báo sự kiện tương ứng và bạn sẽ cập nhật các Thông báo Chuẩn bị, Trả lời và Khôi phục riêng lẻ khi có bất kỳ bản cập nhật nào của Nguồn cấp dữ liệu và \/ hoặc Cảnh báo sự kiện tương quan của Hội Chữ thập đỏ.\n\nCác Tin nhắn Soạn thảo, Trả lời và Khôi phục Cá nhân Bạn sử dụng sẽ chỉ được liên kết với khu vực địa lý mà nó được phát hành. Nếu một Thông báo Chuẩn bị, Trả lời và Phục hồi bao gồm tham chiếu đến một nguồn như Hội Chữ thập đỏ Hoa Kỳ hoặc một tổ chức hoặc xã hội quốc gia Chữ thập đỏ hoặc Trăng lưỡi liềm đỏ khác (mỗi một \"Nguồn tham khảo\"), Bạn sẽ bao gồm Tham chiếu Nguồn được liên kết với mỗi Chuẩn bị, Trả lời và Khôi phục Thư ở dạng được cung cấp trong Nguồn cấp dữ liệu. Bạn sẽ không sử dụng thêm bất kỳ Tham chiếu Nguồn nào.\n\nBạn không được dịch Nguồn cấp dữ liệu, Cảnh báo sự kiện và \/ hoặc Chuẩn bị, Trả lời và Khôi phục thông báo sang bất kỳ ngôn ngữ nào khác, sử dụng, chỉnh sửa hoặc sửa đổi hoặc thay đổi (các) ý nghĩa của Nguồn cấp dữ liệu, Cảnh báo sự kiện và \/ hoặc Chuẩn bị, Trả lời và Khôi phục Tin nhắn.\n\nBạn phải đảm bảo rằng Nguồn cấp dữ liệu, vẫn thuộc quyền sở hữu và \/ hoặc quyền kiểm soát duy nhất của bạn.\n\nBạn không thể cho phép Thông báo Sự kiện và Chuẩn bị, Trả lời và Khôi phục Thông báo được gửi đến Người dùng Cuối để kết hợp bất kỳ quảng cáo hoặc tài trợ nào.\n\nBạn không được phép lưu trữ toàn bộ hoặc một phần Nguồn cấp dữ liệu.", + "body": "Bạn có trách nhiệm duy trì tính bí mật và bảo mật của khóa đăng ký do Hội Chữ thập Đỏ cung cấp cho Bạn. Bạn chịu trách nhiệm duy trì khả năng tương thích với API, được cập nhật theo thời gian, để tiếp tục nhận được Nguồn cấp dữ liệu. Hội Chữ thập Đỏ có thể phát hành các phiên bản cập nhật của API và Nguồn cấp dữ liệu theo quyết định riêng của mình. Các phiên bản mới có thể không tương thích với các triển khai trước đó và Bạn đồng ý sử dụng phiên bản cập nhật gần đây nhất của Nguồn cấp dữ liệu.\n\nBạn đồng ý không sửa đổi, phân phối, dịch ngược, tháo rời hoặc thiết kế đối chiếu bất kỳ phần nào của API hoặc bất kỳ phần mềm nào của Hội Chữ thập Đỏ.\n\nBạn không được sử dụng API hoặc Nguồn cấp dữ liệu theo cách vượt quá khối lượng yêu cầu hợp lý hoặc cấu thành việc sử dụng quá mức hoặc lạm dụng, theo quyết định riêng của Hội Chữ thập đỏ.\n\nBạn không được sử dụng API hoặc Nguồn cấp dữ liệu theo cách bất hợp pháp, gây hiểu lầm, cẩu thả, độc hại, có ý định gây hại hoặc gây hại cho Hội Chữ thập đỏ, các nhà cung cấp dịch vụ, nhà cung cấp nội dung của Hội chữ thập đỏ hoặc bất kỳ người nào khác, theo quyết định của Hội Chữ thập Đỏ theo quyết định của riêng mình.\n\n\nChữ thập đỏ có thể giám sát việc sử dụng API và Nguồn cấp dữ liệu của bạn. Bạn không được sử dụng bất kỳ phương tiện kỹ thuật nào để can thiệp vào việc giám sát đó, và Hội Chữ thập đỏ có thể sử dụng các phương tiện kỹ thuật để khắc phục bất kỳ sự can thiệp nào như vậy.\n\nViệc sử dụng các Thông báo Chuẩn bị, Trả lời và Khôi phục sẽ chỉ được trình bày dưới dạng hiện tại hoặc được cập nhật theo cài đặt khẩn cấp hiện tại của Cảnh báo sự kiện tương ứng và bạn sẽ cập nhật các Thông báo Chuẩn bị, Trả lời và Khôi phục riêng lẻ khi có bất kỳ bản cập nhật nào của Nguồn cấp dữ liệu và / hoặc Cảnh báo sự kiện tương quan của Hội Chữ thập đỏ.\n\nCác Tin nhắn Soạn thảo, Trả lời và Khôi phục Cá nhân Bạn sử dụng sẽ chỉ được liên kết với khu vực địa lý mà nó được phát hành. Nếu một Thông báo Chuẩn bị, Trả lời và Phục hồi bao gồm tham chiếu đến một nguồn như Hội Chữ thập đỏ Hoa Kỳ hoặc một tổ chức hoặc xã hội quốc gia Chữ thập đỏ hoặc Trăng lưỡi liềm đỏ khác (mỗi một \"Nguồn tham khảo\"), Bạn sẽ bao gồm Tham chiếu Nguồn được liên kết với mỗi Chuẩn bị, Trả lời và Khôi phục Thư ở dạng được cung cấp trong Nguồn cấp dữ liệu. Bạn sẽ không sử dụng thêm bất kỳ Tham chiếu Nguồn nào.\n\nBạn không được dịch Nguồn cấp dữ liệu, Cảnh báo sự kiện và / hoặc Chuẩn bị, Trả lời và Khôi phục thông báo sang bất kỳ ngôn ngữ nào khác, sử dụng, chỉnh sửa hoặc sửa đổi hoặc thay đổi (các) ý nghĩa của Nguồn cấp dữ liệu, Cảnh báo sự kiện và / hoặc Chuẩn bị, Trả lời và Khôi phục Tin nhắn.\n\nBạn phải đảm bảo rằng Nguồn cấp dữ liệu, vẫn thuộc quyền sở hữu và / hoặc quyền kiểm soát duy nhất của bạn.\n\nBạn không thể cho phép Thông báo Sự kiện và Chuẩn bị, Trả lời và Khôi phục Thông báo được gửi đến Người dùng Cuối để kết hợp bất kỳ quảng cáo hoặc tài trợ nào.\n\nBạn không được phép lưu trữ toàn bộ hoặc một phần Nguồn cấp dữ liệu.", "contact": "Vui lòng liên hệ với Hội Chữ thập đỏ tại {0} nếu có bất kỳ câu hỏi nào liên quan đến API.", - "disclaimer": "API và Nguồn cấp dữ liệu được cung cấp CHỈ CHO CÁC MỤC ĐÍCH VỀ THÔNG TIN VÀ GIÁO DỤC VÀ trên cơ sở 'nguyên trạng' và 'nếu có'. Hội Chữ thập Đỏ không tuyên bố hoặc bảo đảm dưới bất kỳ hình thức nào, rõ ràng hay ngụ ý. Hội chữ thập đỏ từ chối mọi bảo đảm, rõ ràng hay ngụ ý, bao gồm nhưng không giới hạn ở những bảo đảm ngụ ý về khả năng bán được và tính phù hợp cho một mục đích cụ thể. Hội Chữ thập Đỏ và các nhân viên, viên chức, thống đốc và các đại lý và người cấp phép sẽ không chịu trách nhiệm về những thiệt hại dưới bất kỳ hình thức nào phát sinh từ việc sử dụng API, Nguồn cấp dữ liệu, Cảnh báo sự kiện và \/ hoặc Chuẩn bị, Trả lời và Khôi phục Thông báo bao gồm nhưng không giới hạn đối với các thiệt hại trực tiếp, gián tiếp, ngẫu nhiên, trừng phạt và do hậu quả.\n\nHội Chữ thập Đỏ không đảm bảo trình tự, độ chính xác, tính xác thực hoặc tính hoàn chỉnh của API, Nguồn cấp dữ liệu, Cảnh báo sự kiện và \/ hoặc Chuẩn bị, Trả lời và Khôi phục Thông báo và sẽ không chịu trách nhiệm pháp lý dưới bất kỳ hình thức nào đối với Bạn hoặc Người dùng cuối của bạn hoặc bất kỳ bên thứ ba nào bên, bao gồm nhưng không giới hạn, đối với bất kỳ sự chậm trễ, không chính xác, lỗi hoặc thiếu sót nào, liên quan đến API, Nguồn cấp dữ liệu, Cảnh báo sự kiện và \/ hoặc Chuẩn bị, Trả lời và Khôi phục Thông báo được cung cấp dưới đây.", + "disclaimer": "API và Nguồn cấp dữ liệu được cung cấp CHỈ CHO CÁC MỤC ĐÍCH VỀ THÔNG TIN VÀ GIÁO DỤC VÀ trên cơ sở 'nguyên trạng' và 'nếu có'. Hội Chữ thập Đỏ không tuyên bố hoặc bảo đảm dưới bất kỳ hình thức nào, rõ ràng hay ngụ ý. Hội chữ thập đỏ từ chối mọi bảo đảm, rõ ràng hay ngụ ý, bao gồm nhưng không giới hạn ở những bảo đảm ngụ ý về khả năng bán được và tính phù hợp cho một mục đích cụ thể. Hội Chữ thập Đỏ và các nhân viên, viên chức, thống đốc và các đại lý và người cấp phép sẽ không chịu trách nhiệm về những thiệt hại dưới bất kỳ hình thức nào phát sinh từ việc sử dụng API, Nguồn cấp dữ liệu, Cảnh báo sự kiện và / hoặc Chuẩn bị, Trả lời và Khôi phục Thông báo bao gồm nhưng không giới hạn đối với các thiệt hại trực tiếp, gián tiếp, ngẫu nhiên, trừng phạt và do hậu quả.\n\nHội Chữ thập Đỏ không đảm bảo trình tự, độ chính xác, tính xác thực hoặc tính hoàn chỉnh của API, Nguồn cấp dữ liệu, Cảnh báo sự kiện và / hoặc Chuẩn bị, Trả lời và Khôi phục Thông báo và sẽ không chịu trách nhiệm pháp lý dưới bất kỳ hình thức nào đối với Bạn hoặc Người dùng cuối của bạn hoặc bất kỳ bên thứ ba nào bên, bao gồm nhưng không giới hạn, đối với bất kỳ sự chậm trễ, không chính xác, lỗi hoặc thiếu sót nào, liên quan đến API, Nguồn cấp dữ liệu, Cảnh báo sự kiện và / hoặc Chuẩn bị, Trả lời và Khôi phục Thông báo được cung cấp dưới đây.", "entire_agreement": { "body": "Các Điều Khoản này là thỏa thuận cuối cùng, đầy đủ và độc quyền của các bên liên quan đến vấn đề này và thay thế và hợp nhất tất cả các thảo luận trước đó giữa các bên liên quan đến vấn đề này. Hội Chữ thập đỏ có quyền sửa đổi hoặc thu hồi thỏa thuận này bất kỳ lúc nào.", "heading": "Toàn bộ thỏa thuận:" @@ -866,7 +870,7 @@ "heading": "API KẾT THÚC THỎA THUẬN CẤP PHÉP NGƯỜI DÙNG", "intro": "THỎA THUẬN: BẰNG CÁCH SỬ DỤNG DỊCH VỤ HOẶC KIỂM TRA HỘP ĐƯỢC CUNG CẤP, NGƯỜI DÙNG ĐỒNG Ý BỊ TRẢ LẠI THEO THỎA THUẬN NÀY.\n\nAPI là một công cụ cho phép bạn (“Bạn”) truy xuất và sử dụng nguồn cấp dữ liệu do Hội Chữ Thập Đỏ cung cấp, bao gồm nguồn cấp dữ liệu về cảnh báo thời tiết và thảm họa toàn cầu và thông báo xem (“Cảnh báo sự kiện”) và nguồn cấp dữ liệu có thể hành động và theo ngữ cảnh thông báo về cách chuẩn bị đối phó với các mối nguy hiểm cục bộ theo loại nguy cơ và mức độ khẩn cấp (“Chuẩn bị, Phản hồi và Khôi phục Thông báo” và gọi chung là Cảnh báo Sự kiện, “Nguồn cấp dữ liệu”). Thông báo Chuẩn bị, Phản hồi và Khôi phục được tạo ra nhằm mục đích đi kèm với Cảnh báo sự kiện hoặc các cảnh báo và theo dõi khác có kiên quan đến thời tiết hoặc thảm hoạ trong ứng dụng riêng của bạn. Việc sử dụng Nguồn cấp dữ liệu của bạn được quản lý bởi các điều khoản API.", "license_limitations": { - "body": "Bạn chỉ có thể sử dụng Nguồn cấp dữ liệu liên quan đến ứng dụng của bạn được quản lý bới các điều khoản API, và miễn là bạn duy trì khả năng tương thích với API được cập nhật theo thời gian. \nBạn được cấp một quyền không độc quyền, có giới hạn và có thể thu hồi để tải về, sử dụng và phân phát đến người dùng ứng dụng chính của bạn (\"Người dùng chính\") những Thông tin Cảnh báo và những ngữ cảnh có liên quan đến việc Chuẩn bị, Phản hồi và Khôi phục liên quan đến thiết lập khẩn cấp của Cảnh báo Sự kiện cá nhân từ Nguồn cung cấp dữ liệu, tuân theo điểu khoản API. Bạn chỉ có thể sử dụng API để sử dụng Nguồn cung cấp dữ liệu cho các mục đích phi thương mại phù hợp với các điều khoản của API. Trong bất kỳ trường hợp nào, bạn không được dùng API để sử dụng Nguồn cung cấp dữ liệu, Thông tin cảnh báo, hoặc\/và tin nhắn Chuẩn bị, Phản hồi và Khôi phục cho mục đích thương mại, bao gồm nhưng không giới hạn, bán lại, tính phí để truy cập, phân phối hoặc tạo ra các tác phẩm khác dựa nào nó. Hội Chữ Thập Đỏ và người cấp phép của Hội duy trì tất cả chứng thư, quyền sở hữu, quyền và lợi ích trong và đối với API, tin nhắn Chuẩn bị, Phản hồi và Khôi phục, Thông tin cảnh báo, Nguồn cung cấp dữ liệu, và Nguồn Tham Khảo (như được định nghĩa bên dưới). \nTất cả các quyền không được cung cấp rõ ràng đều được bảo lưu.", + "body": "Bạn chỉ có thể sử dụng Nguồn cấp dữ liệu liên quan đến ứng dụng của bạn được quản lý bới các điều khoản API, và miễn là bạn duy trì khả năng tương thích với API được cập nhật theo thời gian. \nBạn được cấp một quyền không độc quyền, có giới hạn và có thể thu hồi để tải về, sử dụng và phân phát đến người dùng ứng dụng chính của bạn (\"Người dùng chính\") những Thông tin Cảnh báo và những ngữ cảnh có liên quan đến việc Chuẩn bị, Phản hồi và Khôi phục liên quan đến thiết lập khẩn cấp của Cảnh báo Sự kiện cá nhân từ Nguồn cung cấp dữ liệu, tuân theo điểu khoản API. Bạn chỉ có thể sử dụng API để sử dụng Nguồn cung cấp dữ liệu cho các mục đích phi thương mại phù hợp với các điều khoản của API. Trong bất kỳ trường hợp nào, bạn không được dùng API để sử dụng Nguồn cung cấp dữ liệu, Thông tin cảnh báo, hoặc/và tin nhắn Chuẩn bị, Phản hồi và Khôi phục cho mục đích thương mại, bao gồm nhưng không giới hạn, bán lại, tính phí để truy cập, phân phối hoặc tạo ra các tác phẩm khác dựa nào nó. Hội Chữ Thập Đỏ và người cấp phép của Hội duy trì tất cả chứng thư, quyền sở hữu, quyền và lợi ích trong và đối với API, tin nhắn Chuẩn bị, Phản hồi và Khôi phục, Thông tin cảnh báo, Nguồn cung cấp dữ liệu, và Nguồn Tham Khảo (như được định nghĩa bên dưới). \nTất cả các quyền không được cung cấp rõ ràng đều được bảo lưu.", "heading": "Giấy phép và những điều khoản hạn chế:" }, "overview": { @@ -885,17 +889,17 @@ "two": "Phá vỡ hoặc sửa đổi bất kỳ mã khóa hoặc cơ chế bảo mật được sử dụng bởi Hội Chữ Thập Đỏ hoặc API, bao gồm nhưng không giới hạn bất kỳ công nghệ xác thực nào.", "three": "Yêu cầu, thu thập, gạ gẫm để có được quyền truy cập vào tên đăng nhập, mật khẩu và những thông tin xác thực khác của Hội Chữ Thập Đỏ ngoài những gì được cung cấp cho Bạn và tài khoản của bạn.", "four": "Tuyên bố hoặc ngụ ý rằng bạn có liên kết, được tài trợ hoặc ủng hội bởi Hội Chữ Thập Đỏ hoặc những cộng đồng quốc qua và tổ chức của Hội Chữ Thập Đỏ và Trăng Lưỡi Liềm.", - "five": "Tuyên bố hoặc ngụ ý rằng bạn sở hữu hoặc tạo ra API, Nguồn cấp dữ liệu, Cảnh báo sự kiện hoặc\/và những tin nhắn Chuẩn bị, Phản hồi và Khôi phục.", + "five": "Tuyên bố hoặc ngụ ý rằng bạn sở hữu hoặc tạo ra API, Nguồn cấp dữ liệu, Cảnh báo sự kiện hoặc/và những tin nhắn Chuẩn bị, Phản hồi và Khôi phục.", "six": "Truyền tải virus, sâu máy tính, Trojan, hoặc bất kỳ phần tử có tính chất gây hại nào." } }, - "reserve_rights": "Hội Chữ Thập Đỏ có quyền thay đổi hoặc\/và ngừng cung cấp một phần hoặc toàn bộ API và Nguồn cấp dữ liệu, tạm thời hoặc vĩnh viễn mà không cần thông báo trước. Để tránh nghi ngờ, Hội Chữ Thập Đỏ không có nghĩa vụ phải cung cấp API và Nguồn cấp dữ liệu cho Bạn, và Bạn hiểu và chấp thuận rằng quyền truy cập thuộc quyền quyết định duy nhất và tuyệt đối của Hội Chữ Thập Đỏ", + "reserve_rights": "Hội Chữ Thập Đỏ có quyền thay đổi hoặc/và ngừng cung cấp một phần hoặc toàn bộ API và Nguồn cấp dữ liệu, tạm thời hoặc vĩnh viễn mà không cần thông báo trước. Để tránh nghi ngờ, Hội Chữ Thập Đỏ không có nghĩa vụ phải cung cấp API và Nguồn cấp dữ liệu cho Bạn, và Bạn hiểu và chấp thuận rằng quyền truy cập thuộc quyền quyết định duy nhất và tuyệt đối của Hội Chữ Thập Đỏ", "severability": { "body": "\nTính không hợp lệ của bất kỳ điều khoản nào của Điều khoản API sẽ không ảnh hưởng đến hiệu lực của bất kỳ điều khoản nào khác", "heading": "Hiệu lực pháp lý và Quyền tự bỏ kiện tụng:" }, "suspension": { - "body": "Hội Chữ Thập Đỏ có quyền đình chỉ hoặc chấm dứt quyền truy cập của bạn nếu Hội Chữ Thập Đỏ xác định, quyền quyết địch duy nhất của Hội Chữ Thập Đỏ, là Bạn đang tham gia vào việc sử dụng trái phép các API hoặc Nguồn cung cấp dữ liệu như được nêu trong các điều khoản API hoặc Bạn đang sử dụng API hoặc Nguồn cung cấp dữ liệu trong bất kỳ hoạt động đe dọa \/ xâm phạm đến sự an toàn hoặc\/và bảo mật của bất kỳ người nào hoặc của mạng lưới Chữ Thập Đỏ", + "body": "Hội Chữ Thập Đỏ có quyền đình chỉ hoặc chấm dứt quyền truy cập của bạn nếu Hội Chữ Thập Đỏ xác định, quyền quyết địch duy nhất của Hội Chữ Thập Đỏ, là Bạn đang tham gia vào việc sử dụng trái phép các API hoặc Nguồn cung cấp dữ liệu như được nêu trong các điều khoản API hoặc Bạn đang sử dụng API hoặc Nguồn cung cấp dữ liệu trong bất kỳ hoạt động đe dọa / xâm phạm đến sự an toàn hoặc/và bảo mật của bất kỳ người nào hoặc của mạng lưới Chữ Thập Đỏ", "heading": "Quyền đình chỉ hoặc thu hồi giấy phép:" } }, diff --git a/resources/lang/zh.json b/resources/lang/zh.json index 3bd651f..5f255ce 100644 --- a/resources/lang/zh.json +++ b/resources/lang/zh.json @@ -236,25 +236,25 @@ }, "languages": { "am": "አማርኛ", - "ar": "阿拉伯语\/عربى", + "ar": "阿拉伯语/عربى", "bn": "বাংলা", "de": "Deutsch", - "en": "英语\/English", - "es": "西班牙语\/Español", - "fr": "法语\/Français", + "en": "英语/English", + "es": "西班牙语/Español", + "fr": "法语/Français", "ht": "Kreyòl", - "id": "印度尼西亚语\/bahasa Indonesia", + "id": "印度尼西亚语/bahasa Indonesia", "it": "Italiano", "ja": "日本語", "my": "ဗမာ", "ne": "नेपाली", - "pt": "葡萄牙语\/\nPortuguês (UE)", - "ru": "俄语\/русский", + "pt": "葡萄牙语/\nPortuguês (UE)", + "ru": "俄语/русский", "rw": "Ikinyarwanda", "sw": "Kiswahili", "th": "ภาษาไทย", "tr": "Türkçe", - "ur": "乌尔都语\/اردو", + "ur": "乌尔都语/اردو", "vi": "Tiếng Việt" }, "sidebar": { @@ -441,9 +441,9 @@ "immediate": "立即", "warning": "警告", "anticipated": "预期", - "assess_and_plan":"评估与计划", - "mitigate_risks":"降低风险", - "prepare_to_respond":"准备回应", + "assess_and_plan": "评估与计划", + "mitigate_risks": "降低风险", + "prepare_to_respond": "准备回应", "recover": "恢复" }, "content": { @@ -526,7 +526,7 @@ "seasonalForecast_extra": "季节性预报是声明所預測到的危险事件。所采取的措施是评估潜在风险并计划旨在降低风险和保护家庭的活动。", "watch": "观察", "watch_help": "准备回应", - "watch_extra": "当危险事件的风险显着增加,但其发生,位置和\/或时间仍不确定时,将发出预警。目的是为保护措施和准备响应提供足够的时间。", + "watch_extra": "当危险事件的风险显着增加,但其发生,位置和/或时间仍不确定时,将发出预警。目的是为保护措施和准备响应提供足够的时间。", "warning": "警告", "warning_help": "准备回应", "warning_extra": "当危险事件正在发生,迫在眉睫或极有可能发生时,发出警告。这意味着事态对生命或财产构成威胁。处于危险中的人们需要采取保护措施。", @@ -558,7 +558,8 @@ "content_edit_title": "内容编辑", "content_add_hazard_title": "添加危害", "key_message_label": "关键信息标题", - "supporting_message_label": "支持信息" + "supporting_message_label": "支持信息", + "mitigate_risk": "降低风险" }, "message_editor": { "title": "署名编辑", @@ -618,7 +619,7 @@ "bad_request_error_codes": { "30001": "列标题与模板不匹配", "30002": "属性名称,消息或网址缺失", - "30003": "无效的网址属性-请确保規程存在,例如https:\/\/", + "30003": "无效的网址属性-请确保規程存在,例如https://", "40001": "无效的国家代码", "40002": "所选的社团与所选文件的社团不匹配", "40003": "所选文件的导出日期格式不正确,导入无法完成" @@ -689,7 +690,7 @@ }, "landing": { "strapline": "安全信息数据库服务", - "strapline_part_2": "全球红十字会\/红新月会重要安全信息", + "strapline_part_2": "全球红十字会/红新月会重要安全信息", "head_1": "红十字与红新月联会安全", "head_2": "信息数据库", "head_text_1": "基于红十字与红新月联会《公众意识与安全》的安全信息", @@ -744,7 +745,7 @@ "fake_alert_heading": "极寒警告", "fake_alert_description": "但这需要简单和容易的区分。争取自由时我们的力量。", "fake_alert_time": "一小时前", - "fake_alert_time_exact": "05\/02\/18于05:15中部时间", + "fake_alert_time_exact": "05/02/18于05:15中部时间", "use_cases": { "heading": "了解更多", "first_heading": "如何运作", @@ -785,7 +786,7 @@ }, "data_preview": { "heading": "安全信息", - "sub_heading": "注册并查看来自世界各地的红十字会\/红新月会的主要行动消息" + "sub_heading": "注册并查看来自世界各地的红十字会/红新月会的主要行动消息" }, "footer": { "terms_conditions": "条款及细则", @@ -836,15 +837,15 @@ "industry": "行业领域", "create_account": "创建帐户", "last_name": "姓", - "select_country": "选择国家\/地区", + "select_country": "选择国家/地区", "select_industry": "选择行业", "industries": { "media": "媒体", "emergency": "应急管理", - "non_profit": "非营利\/非政府组织", + "non_profit": "非营利/非政府组织", "humanitarian": "人道主义援助组织", "red_cross": "红十字会和红新月会运动", - "education": "教育\/学术界", + "education": "教育/学术界", "gov": "官方机关", "other": "其他" }, @@ -859,9 +860,9 @@ "body": "哥伦比亚特区的法律适用于本协议项下的所有权利和义务,但不适用任何法律冲突原则。", "heading": "适用法律:" }, - "body": "您有责任维护红十字会向您提供的注册密钥的机密性和安全性。您有责任保持与API的兼容性,如不时更新,以继续接收数据提要。红十字会可自行决定发布API和数据提要的更新版本。新版本可能与以前的实现不兼容,您同意在任何时候使用数据提要的最新更新版本。您同意不修改、分发、反编译、反汇编或反向工程API的任何部分或红十字会的任何软件。您不得以超出合理要求量的方式使用API或数据提要,或构成由红十字会自行决定的过度或滥用使用。您不得以非法、误导、疏忽、恶意、意图造成伤害的方式使用API或数据提要,或红十字会根据其自行决定的方式伤害红十字会、其服务提供商、其内容提供商或任何其他人士。红十字会可能会监控您使用API和数据提要。您不得使用任何技术手段干扰这种监测,红十字会可以使用技术手段克服任何这种干扰。“准备”、“响应”和“恢复”消息的使用应仅以当前或更新到相关事件警报的当前紧急设置为准,并且您应在红十字会更新任何数据源和\/或相关事件警报时更新个人“准备”、“响应”和“恢复”消息。您使用的个人准备、响应和恢复消息应仅与发布该消息的地理区域相关联。如果准备、响应和恢复消息包含一个引用来源,如美国红十字会或另一个红十字会或红新月会国家社会或组织(每一个“源引用”),您应包括源引用与每个相关准备、响应和恢复消息的形式提供的数据提要。你不得再使用任何参考资料。您不得将“数据提要”、“事件警报”和\/或“准备、响应和恢复消息”翻译成任何其他语言,不得使用、编辑或修订或更改“数据提要”、“事件警报”和\/或“准备、响应和恢复消息”的含义。您必须确保本资料源由您单独拥有和\/或控制。您不得允许发送给最终用户的“事件警报”和“准备、响应和恢复消息”包含任何广告或赞助。您不可以对全部或部分数据提要进行任何存档。", + "body": "您有责任维护红十字会向您提供的注册密钥的机密性和安全性。您有责任保持与API的兼容性,如不时更新,以继续接收数据提要。红十字会可自行决定发布API和数据提要的更新版本。新版本可能与以前的实现不兼容,您同意在任何时候使用数据提要的最新更新版本。您同意不修改、分发、反编译、反汇编或反向工程API的任何部分或红十字会的任何软件。您不得以超出合理要求量的方式使用API或数据提要,或构成由红十字会自行决定的过度或滥用使用。您不得以非法、误导、疏忽、恶意、意图造成伤害的方式使用API或数据提要,或红十字会根据其自行决定的方式伤害红十字会、其服务提供商、其内容提供商或任何其他人士。红十字会可能会监控您使用API和数据提要。您不得使用任何技术手段干扰这种监测,红十字会可以使用技术手段克服任何这种干扰。“准备”、“响应”和“恢复”消息的使用应仅以当前或更新到相关事件警报的当前紧急设置为准,并且您应在红十字会更新任何数据源和/或相关事件警报时更新个人“准备”、“响应”和“恢复”消息。您使用的个人准备、响应和恢复消息应仅与发布该消息的地理区域相关联。如果准备、响应和恢复消息包含一个引用来源,如美国红十字会或另一个红十字会或红新月会国家社会或组织(每一个“源引用”),您应包括源引用与每个相关准备、响应和恢复消息的形式提供的数据提要。你不得再使用任何参考资料。您不得将“数据提要”、“事件警报”和/或“准备、响应和恢复消息”翻译成任何其他语言,不得使用、编辑或修订或更改“数据提要”、“事件警报”和/或“准备、响应和恢复消息”的含义。您必须确保本资料源由您单独拥有和/或控制。您不得允许发送给最终用户的“事件警报”和“准备、响应和恢复消息”包含任何广告或赞助。您不可以对全部或部分数据提要进行任何存档。", "contact": "如有任何有关API的问题,请致电{0}与红十字会联系。", - "disclaimer": "本网站提供的API和数据仅供参考和教育用途,并在“现有”和“可用”的基础上提供。红十字会不作任何明示或默示的陈述或保证。红十字会不提供任何明示或暗示的保证,包括但不限于有关适销性和适合某一特定用途的暗示保证。红十字会及其员工、高级职员、理事、代理和许可人不承担因使用API、数据传送、事件警报和\/或准备、响应和恢复信息(包括但不限于直接、间接、附带、惩罚性和相应的损害赔偿)。红十字会并不保证序列、准确性、真实性和完整性的API、数据提要、事件警报和\/或准备、回应、和恢复信息;不得承担责任以任何方式对你或你的最终用户或任何第三方,包括但不限于,任何延迟、不准确、错误或遗漏。", + "disclaimer": "本网站提供的API和数据仅供参考和教育用途,并在“现有”和“可用”的基础上提供。红十字会不作任何明示或默示的陈述或保证。红十字会不提供任何明示或暗示的保证,包括但不限于有关适销性和适合某一特定用途的暗示保证。红十字会及其员工、高级职员、理事、代理和许可人不承担因使用API、数据传送、事件警报和/或准备、响应和恢复信息(包括但不限于直接、间接、附带、惩罚性和相应的损害赔偿)。红十字会并不保证序列、准确性、真实性和完整性的API、数据提要、事件警报和/或准备、回应、和恢复信息;不得承担责任以任何方式对你或你的最终用户或任何第三方,包括但不限于,任何延迟、不准确、错误或遗漏。", "entire_agreement": { "body": "API条款构成了红十字会与您之间关于本协议主题事项的完整和排他性协议,并取代所有先前的口头或书面谅解、沟通或协议,这些协议未在本协议中明确纳入。红十字会保留随时修改或撤销此协议的权利。", "heading": "完整协议:" @@ -869,7 +870,7 @@ "heading": "API最终用户许可协议", "intro": "同意:用户使用本服务或勾选所提供的方框,即表示同意受本协议约束。API是一个工具,它允许您(“你”)来检索和使用数据提提要供红十字会包括一个提要全球天气和灾难事件的预警和看通知(“事件警报”)和可操作的、更符合实际的消息如何准备当地的灾害风险类型和紧迫性(“准备、回应、和恢复消息”,以及与事件警报一起的“数据提要”)。在您個人的应用中,准备、回应和信息的恢复應用于警报事件或其他警告,和用於與天气和灾难事件相關的监察通知。您对数据傳送的使用受API条款的監管。", "license_limitations": { - "body": "若果你想將你的應用程序和數據傳送一起使用,你必須謹遵API条款,並確保您与API的兼容性是與時並進的。根据API条款,您被授予非独家的,有限的和可撤销的权利去下载自己程序的警报事件和与数据传送中各个事件警报的紧急设置相关的信息的准备,回应和恢复,你可以使用它,复制它和发放给你的使用者(\"用户端\")。根据API条款,您只能将API用于非商业用途的數據傳送。在任何情况下,您都不得使用API促进数据傳送、事件提醒和\/或准备、回应和恢复消息的商业使用,包括但不限于转售、访问收费、轉發收费或基于此而衍生的服務的收费。红十字会及其许可方保留对API的名称,所有权,权利, 利益。准备, 回应信息,紧急事件,数据傳送和引用的恢复。保留所有未明确授予的权利。", + "body": "若果你想將你的應用程序和數據傳送一起使用,你必須謹遵API条款,並確保您与API的兼容性是與時並進的。根据API条款,您被授予非独家的,有限的和可撤销的权利去下载自己程序的警报事件和与数据传送中各个事件警报的紧急设置相关的信息的准备,回应和恢复,你可以使用它,复制它和发放给你的使用者(\"用户端\")。根据API条款,您只能将API用于非商业用途的數據傳送。在任何情况下,您都不得使用API促进数据傳送、事件提醒和/或准备、回应和恢复消息的商业使用,包括但不限于转售、访问收费、轉發收费或基于此而衍生的服務的收费。红十字会及其许可方保留对API的名称,所有权,权利, 利益。准备, 回应信息,紧急事件,数据傳送和引用的恢复。保留所有未明确授予的权利。", "heading": "许可和限制:" }, "overview": { @@ -888,17 +889,17 @@ "two": "规避或修改红十字会或API所使用的任何密钥或安全机制,包括但不限于任何身份验证技术。", "three": "请求、收集、恳求或以其他方式获取红十字会的登录名、密码或其他身份验证凭证,而不是为您自己的帐户提供的。", "four": "声明或暗示红十字会或任何其他红十字会或红新月会国家协会或组织的隶属关系、赞助或认可。", - "five": "声明或暗示您拥有或创建了API、数据傳送、事件警报和\/或准备、响应和恢复信息。", + "five": "声明或暗示您拥有或创建了API、数据傳送、事件警报和/或准备、响应和恢复信息。", "six": "传播任何病毒、蠕虫缺陷、特洛伊木马或任何具有破坏性的東西。" } }, - "reserve_rights": "红十字会保留随时更改和\/或不再提供全部或部分API和数据傳送的权利,暂时或永久,无需事先通知。为免生疑义,本协议没有义务要求红十字会向您提供API或数据傳送,您同意并承认,红十字会有权自行决定对其进行任何访问。", + "reserve_rights": "红十字会保留随时更改和/或不再提供全部或部分API和数据傳送的权利,暂时或永久,无需事先通知。为免生疑义,本协议没有义务要求红十字会向您提供API或数据傳送,您同意并承认,红十字会有权自行决定对其进行任何访问。", "severability": { "body": "API条款的任何条款或规定的无效不影响任何其他条款的效力。", "heading": "可分割性和豁免:" }, "suspension": { - "body": "如果红十字会認為您如API条款所提及的在未经授权的情况下使用API或数据傳送,或您在任何活动中使用API或数据提要威胁\/损害任何人或红十字会网络的安全和\/或安全,紅十字會將保留暂停或终止您的访问的权利。", + "body": "如果红十字会認為您如API条款所提及的在未经授权的情况下使用API或数据傳送,或您在任何活动中使用API或数据提要威胁/损害任何人或红十字会网络的安全和/或安全,紅十字會將保留暂停或终止您的访问的权利。", "heading": "暂停或终止:" } }, @@ -994,7 +995,7 @@ "role": "角色", "society": "社会", "date": "日期", - "country": "国家\/地区", + "country": "国家/地区", "email": "电子邮件", "created_at": "创建于", "last_logged_in_at": "最近登录", diff --git a/resources/lang/zh_CN.json b/resources/lang/zh_CN.json index 910eb91..ce42967 100644 --- a/resources/lang/zh_CN.json +++ b/resources/lang/zh_CN.json @@ -441,9 +441,9 @@ "immediate": "立即", "warning": "警告", "anticipated": "预期", - "assess_and_plan":"评估与计划", - "mitigate_risks":"降低风险", - "prepare_to_respond":"准备回应", + "assess_and_plan": "评估与计划", + "mitigate_risks": "降低风险", + "prepare_to_respond": "准备回应", "recover": "恢复" }, "content": { @@ -526,7 +526,7 @@ "seasonalForecast_extra": "季節預報是對災害事件的預測聲明。所採取的行動包括評估潛在的風險和計劃活動,為了減低風險和保護家人。", "watch": "關注", "watch_help": "準備好回應", - "watch_extra": "當災害事件的風險顯著增加,但其發生、地點和\/或時間仍不確定時,就會發佈警報。其目的是為保護行動和應對準備提供足夠的時間。", + "watch_extra": "當災害事件的風險顯著增加,但其發生、地點和/或時間仍不確定時,就會發佈警報。其目的是為保護行動和應對準備提供足夠的時間。", "warning": "警告", "warning_help": "準備好回應", "warning_extra": "当災害事件正在发生、即将发生或发生概率很高时,将发出警告。這意味著情況對生命或財產構成威脅。在這災害帶上的人們需要採取保護措施。", @@ -558,7 +558,8 @@ "content_edit_title": "内容编辑", "content_add_hazard_title": "添加危害", "key_message_label": "关键信息标题", - "supporting_message_label": "支持信息" + "supporting_message_label": "支持信息", + "mitigate_risk": "降低风险" }, "message_editor": { "title": "署名编辑", @@ -618,7 +619,7 @@ "bad_request_error_codes": { "30001": "欄目標題與範本不一致", "30002": "標題屬性、資訊或網址缺失", - "30003": "無效的網址屬性 - 請確保規程的存在,例如:https:\/\/", + "30003": "無效的網址屬性 - 請確保規程的存在,例如:https://", "40001": "提供的國家代碼無效", "40002": "所選社群與選定檔案的社群不匹配", "40003": "所選文件匯出的日期格式不正確,導入無法完成" @@ -744,7 +745,7 @@ "fake_alert_heading": "極端寒冷警告", "fake_alert_description": "Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est.", "fake_alert_time": "一小時前", - "fake_alert_time_exact": "05\/02\/18 05:15美國中部時間", + "fake_alert_time_exact": "05/02/18 05:15美國中部時間", "use_cases": { "heading": "了解更多", "first_heading": "運作方式", @@ -785,7 +786,7 @@ }, "data_preview": { "heading": "安全信息", - "sub_heading": "註冊並查看來自世界各地紅十字會\/紅新月會的關鍵行動資訊" + "sub_heading": "註冊並查看來自世界各地紅十字會/紅新月會的關鍵行動資訊" }, "footer": { "terms_conditions": "條款 & 條件", @@ -843,8 +844,8 @@ "emergency": "緊急應變管理", "non_profit": "非牟利機構 (Non Profit)", "humanitarian": "人道主義組織", - "red_cross": "紅十字會\/紅新月會", - "education": "教育\/學術機構", + "red_cross": "紅十字會/紅新月會", + "education": "教育/學術機構", "gov": "政府委托的代理機構", "other": "其他" }, @@ -859,9 +860,9 @@ "body": "本協議項下的所有權利和義務均受哥倫比亞特區法律的管轄,但不適用任何法律衝突原則。", "heading": "適用法律:" }, - "body": "您有責任維護紅十字會提供給您的註冊要鑰的保密性和安全性。你有責任保持與API的相容性,並不時進行更新,以便繼續接收數據源。紅十字會可自主決定發佈API和數據源的更新版本。新版本可能與之前的履行不相容,您同意在任何時候使用數據源的最新更新版本。你同意不對API的任何部分或紅十字會的任何軟體進行修改、分發、反編譯、反彙編或反向工程。你不得以超出合理請求量或構成過度或濫用的方式使用API或資料饋送,情形由紅十字會自主決定。你不得以非法、誤導、疏忽、惡意、意圖造成傷害或傷害紅十字會、其服務供應商、其內容供應商或任何其他人士的方式使用API或数据源,情形由紅十字會自主決定。紅十字會可能會監測你對API和数据源的使用情況。您不得使用任何技術手段干擾這種監察,紅十字會可以使用技術手段攻克任何這種干擾。準備、回應和恢復信息使用應僅以當前或更新到相關事件警報的當前緊急設置為准,並且您應在紅十字會更新任何資料來源和\/或相關事件警報時更新個人準備、回應和恢復信息。您所使用的個人\n準備、回應和恢復信息應只與它所發佈的地理區域相關聯。如果準備、回應和恢復信息包含一個引用來源,如美國紅十字會,或另一個紅十字會,或紅新月會國家社會團體或組織(此為,每一個“資料來源參考” ),您應在資料源所提供的格式中包括每個相關準備、回應和恢復信息相關聯的資料來源參考。您不得再进一步使用任何參考資料來源。您不得將“資料源”、“事件警報”和\/或“準備、回應和恢復信息”翻譯成任何其他語言,不得對 “ 資料源”、“事件警報”和\/或“準備、回應和恢復信息”進行任何使用、編輯或修訂,或改變其含義。您必須確保資料饋送仍由您獨自擁有和\/或控制。您不得允許向用戶端發送的事件警報和準備、回應和恢復信息包含任何廣告或贊助\n\n您不可以對全部或部分資料饋送進行任何存檔。", + "body": "您有責任維護紅十字會提供給您的註冊要鑰的保密性和安全性。你有責任保持與API的相容性,並不時進行更新,以便繼續接收數據源。紅十字會可自主決定發佈API和數據源的更新版本。新版本可能與之前的履行不相容,您同意在任何時候使用數據源的最新更新版本。你同意不對API的任何部分或紅十字會的任何軟體進行修改、分發、反編譯、反彙編或反向工程。你不得以超出合理請求量或構成過度或濫用的方式使用API或資料饋送,情形由紅十字會自主決定。你不得以非法、誤導、疏忽、惡意、意圖造成傷害或傷害紅十字會、其服務供應商、其內容供應商或任何其他人士的方式使用API或数据源,情形由紅十字會自主決定。紅十字會可能會監測你對API和数据源的使用情況。您不得使用任何技術手段干擾這種監察,紅十字會可以使用技術手段攻克任何這種干擾。準備、回應和恢復信息使用應僅以當前或更新到相關事件警報的當前緊急設置為准,並且您應在紅十字會更新任何資料來源和/或相關事件警報時更新個人準備、回應和恢復信息。您所使用的個人\n準備、回應和恢復信息應只與它所發佈的地理區域相關聯。如果準備、回應和恢復信息包含一個引用來源,如美國紅十字會,或另一個紅十字會,或紅新月會國家社會團體或組織(此為,每一個“資料來源參考” ),您應在資料源所提供的格式中包括每個相關準備、回應和恢復信息相關聯的資料來源參考。您不得再进一步使用任何參考資料來源。您不得將“資料源”、“事件警報”和/或“準備、回應和恢復信息”翻譯成任何其他語言,不得對 “ 資料源”、“事件警報”和/或“準備、回應和恢復信息”進行任何使用、編輯或修訂,或改變其含義。您必須確保資料饋送仍由您獨自擁有和/或控制。您不得允許向用戶端發送的事件警報和準備、回應和恢復信息包含任何廣告或贊助\n\n您不可以對全部或部分資料饋送進行任何存檔。", "contact": "如有任何關於API的問題,請聯繫紅十字會,電話:{0}。", - "disclaimer": "API和資料僅供參考和教育用途,並在“現有”和“可用” 的基礎上提供。紅十字會不做任何形式的明示或暗示的陳述或保證。紅十字會不提供任何明示或暗示的保證,包括但不限於有關適銷性和某一特定用途的適用性的暗示保證。紅十字會及其員工、高級職員、理事、代理和許可人不承擔因使用API、資料傳送、事件警報和\/或準備、回應和恢復信息而產生的任何類型(包括但不限於直接、間接、附帶、懲罰性和相應的)損害賠償。紅十字會不保證API、資料來源、事件警報和\/或準備、回應和恢復資訊的順序、準確性、真實性或完整性,並且不以任何方式對您或您的最終用戶或任何協力廠商負責,包括但不限於就 API、資料來源、事件警報和\/或準備、回應和恢復信息提供的任何延誤、不準確、錯誤或遺漏。", + "disclaimer": "API和資料僅供參考和教育用途,並在“現有”和“可用” 的基礎上提供。紅十字會不做任何形式的明示或暗示的陳述或保證。紅十字會不提供任何明示或暗示的保證,包括但不限於有關適銷性和某一特定用途的適用性的暗示保證。紅十字會及其員工、高級職員、理事、代理和許可人不承擔因使用API、資料傳送、事件警報和/或準備、回應和恢復信息而產生的任何類型(包括但不限於直接、間接、附帶、懲罰性和相應的)損害賠償。紅十字會不保證API、資料來源、事件警報和/或準備、回應和恢復資訊的順序、準確性、真實性或完整性,並且不以任何方式對您或您的最終用戶或任何協力廠商負責,包括但不限於就 API、資料來源、事件警報和/或準備、回應和恢復信息提供的任何延誤、不準確、錯誤或遺漏。", "entire_agreement": { "body": "API條款構成紅十字會與您之間關於本協定主題事項的完整和排他性協議,並取代所有先前的口頭或書面諒解、溝通或在此未具體納入的協議。公司保留隨時修改本政策的權利,恕不另行通知。", "heading": "完整協議:" @@ -869,7 +870,7 @@ "heading": "API終端使用者授權合約", "intro": "同意:通過使用服務或勾選所提供的方框,使用者同意接受本協議的約束。API是一個工具,允許您(“您”)檢索和使用紅十字會提供的資料源,包括資訊饋送全球天氣和災害事件警告和觀察通知(“事件警報”),以及關於如何按災害類型和緊急程度準備應對當地災害的可操作和背景化資訊 (“準備、回應和恢復信息”,與事件警報合稱“資料源”)。準備、回應和恢復信息是計畫與事件警報和您手機上的其他天氣及災難警示軟體共同工作。您對資料來源的使用會被API條款所約束。", "license_limitations": { - "body": "在您遵守不斷更新的API條款的前提下,您僅可以使用資料來源與您自己的受API條款限制的應用進行交互。在API條款的約束下和個人事件警報的資料來源緊急設定下,您被給予非獨享、有限的和可被撤回的權力去下載、使用、複製和傳播給您的應用軟體的終端使用者(“終端使用者”)事件警報和相關的準備、回應和恢復信息。在API條款的約束下,您僅可以以非商業目的使用數據源服務。在任何情況下,您不可以使用數據源、事件警報和\/或準備、回應和恢復信息以服務非商業目的包括但不限於二次出售他們,收費以訪問他們,收費以分發他們或收費以製作基於他們的衍生產品。紅十字會和其許可人保留API、準備、回應和恢復信息、事件警報、數據源和參考源(如上文所定義)中的一切稱謂、所有權、權利和利益。本節未明確授予之權力皆為協會所保留。", + "body": "在您遵守不斷更新的API條款的前提下,您僅可以使用資料來源與您自己的受API條款限制的應用進行交互。在API條款的約束下和個人事件警報的資料來源緊急設定下,您被給予非獨享、有限的和可被撤回的權力去下載、使用、複製和傳播給您的應用軟體的終端使用者(“終端使用者”)事件警報和相關的準備、回應和恢復信息。在API條款的約束下,您僅可以以非商業目的使用數據源服務。在任何情況下,您不可以使用數據源、事件警報和/或準備、回應和恢復信息以服務非商業目的包括但不限於二次出售他們,收費以訪問他們,收費以分發他們或收費以製作基於他們的衍生產品。紅十字會和其許可人保留API、準備、回應和恢復信息、事件警報、數據源和參考源(如上文所定義)中的一切稱謂、所有權、權利和利益。本節未明確授予之權力皆為協會所保留。", "heading": "授權與限制:" }, "overview": { @@ -888,17 +889,17 @@ "two": "繞開或修改紅十字會或API使用的任何密鑰和安全設置,包括但不限於任何認證技術。", "three": "要求、收集、請求或使用其他方式獲取非紅十字會提供給您本人賬戶的用戶名、密碼或其他識別認證信息。", "four": "表明或暗示與美國紅十字會或任何紅十字會或紅新月會組織的從屬關係,資助關係或被資助關係。", - "five": "表明或暗示您擁有或創建了API、數據源、事件警報和\/或準備、回應和恢復信息。", + "five": "表明或暗示您擁有或創建了API、數據源、事件警報和/或準備、回應和恢復信息。", "six": "傳播任何病毒、蠕蟲病毒、木馬病毒或任何含破壞性質的項目。" } }, - "reserve_rights": "紅十字會保留在任何時間無提前通知的情況下暫時或永久改變和\/或停止部分或全部API和數據源服務的權力。為消除疑惑,紅十字會沒有為您提供API和數據源的義務,並且您同意並承認一切訪問均在紅十字會的單獨和絕對審查下進行。", + "reserve_rights": "紅十字會保留在任何時間無提前通知的情況下暫時或永久改變和/或停止部分或全部API和數據源服務的權力。為消除疑惑,紅十字會沒有為您提供API和數據源的義務,並且您同意並承認一切訪問均在紅十字會的單獨和絕對審查下進行。", "severability": { "body": "任何API服務中的條款不影響任何其他服務的有效性。", "heading": "效力瑕疵條款及免責聲明:" }, "suspension": { - "body": "紅十字會保留暫停或終止您的訪問權限的權力,如果在其獨立審查中認定您參與了API條款中列舉的未被授權的對API或數據源的使用,或您對API或數據源的任何使用行為威脅到\/削弱了任何人或紅十字會網絡的安全性。", + "body": "紅十字會保留暫停或終止您的訪問權限的權力,如果在其獨立審查中認定您參與了API條款中列舉的未被授權的對API或數據源的使用,或您對API或數據源的任何使用行為威脅到/削弱了任何人或紅十字會網絡的安全性。", "heading": "暫停或終止服務:" } },